gpt4 book ai didi

Python Altair 绘制两个偏差标准

转载 作者:行者123 更新时间:2023-12-05 02:01:56 30 4
gpt4 key购买 nike

有没有办法让 Python Altair 绘图显示两个偏差标准?使用 mark_errorbar(extent='stdev') 仅显示一个标准偏差。

# Only shows one standard deviation.
alt.Chart(data).mark_errorbar(extent='stdev').encode(
x=alt.X('quantity:O', title='Quantity'),
y=alt.Y('value:Q', title='Value')
)

enter image description here

最佳答案

mark_errorbar 没有允许您执行此操作的参数值,但您可以在 pandas 中预先计算它并使用 mark_ruley + y2:

import altair as alt
from vega_datasets import data

source = data.cars()

hp_agg = (
source
.groupby('Origin')
['Horsepower']
.agg(['mean', 'std'])
.assign(error_lower = lambda df: df['mean'] - 2 * df['std'],
error_upper = lambda df: df['mean'] + 2 * df['std'])
.reset_index())

error_bars = alt.Chart(hp_agg).mark_rule().encode(
x='Origin',
y='error_lower',
y2='error_upper')

means = alt.Chart(hp_agg).mark_circle(color='black').encode(
x='Origin',
y='mean')

error_bars + means

enter image description here


您也可以使用 Altair 中的转换而不是使用 pandas 来获得相同的结果。

import altair as alt
from vega_datasets import data

source = data.cars()

error_bars = (
alt.Chart(source).mark_rule().encode(
x='Origin',
y='error_lower:Q',
y2='error_upper:Q')
.transform_aggregate(
mean = 'mean(Horsepower)',
stdev = 'stdev(Horsepower)',
groupby=['Origin'])
.transform_calculate(
error_lower = 'datum.mean - 2 * datum.stdev',
error_upper = 'datum.mean + 2 * datum.stdev'))

means = alt.Chart(source).mark_circle(color='black').encode(
x='Origin',
y='mean(Horsepower)')

error_bars + means

enter image description here

关于Python Altair 绘制两个偏差标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66199816/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com