在python altair(版本4.1.0)中,是否可以进行带有误差线的堆积条形图? 类似于以下matplotlib示例:https://matplotlib.org/3.2.1/gallery/lines_bars_and_markers/bar_stacked.html
即使知道这是根本不可能的,因为使用 vega-ligt版本2.X 不可能做到这一点!
到目前为止,这是我的尝试:
# library
import altair as alt
import pandas as pd
# generate data
df = pd.DataFrame(
[
['pertu1', 'pertu1', 'pertu1', 'pertu1', 'pertu2', 'pertu2', 'pertu2', 'pertu2'], # perturbation
['state1', 'state2', 'state1', 'state2', 'state1', 'state2', 'state1', 'state2'], # state
[0.5, 0.5, 0.6, 0.4, 0.2, 0.8, 0.4, 0.6], # fraction
],
index = ['perturbation','state','fraction']
).T
# plot
o_chart_bar = alt.Chart(df).mark_bar().encode(
x='perturbation',
y=alt.Y(
'fraction',
aggregate='mean',
),
color=alt.Color(
'state',
scale=alt.Scale(domain=['state1','state2'], range=['orange','red']),
),
)
o_chart_error = alt.Chart(df).mark_errorbar(extent='ci').encode(
x='perturbation',
y='fraction',
color=alt.Color(
'state',
scale=alt.Scale(domain=['state1','state2'], range=['maroon','black']),
),
)
o_chart_error.save('error.png')
o_chart_bar.save('stackedbar.png')
o_chart = o_chart_bar + o_chart_error
o_chart.save('stackedbar_error.png')
如您所见,它实际上并不是这样工作的。 我不确定是否有可能。