Altair:分离串联图表中的配色方案
Posted
技术标签:
【中文标题】Altair:分离串联图表中的配色方案【英文标题】:Altair: Separate the color schemes in concatenated charts 【发布时间】:2021-05-12 07:46:14 【问题描述】:对于下面的示例,我想对导出使用绿色配色方案,对导入使用红色配色方案。 当我单独创建图表时,一切都很好,他们得到了我分配给他们的配色方案。然而, 当我连接图表时,它们都得到了红色方案。
import pandas as pd
fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
years = ["2015", "2016", "2017"]
exports = 'fruits' : fruits,
'2015' : [2, 1, 4, 3, 2, 4],
'2016' : [5, 3, 4, 2, 4, 6],
'2017' : [3, 2, 4, 4, 5, 3]
imports = 'fruits' : fruits,
'2015' : [-1, 0, -1, -3, -2, -1],
'2016' : [-2, -1, -3, -1, -2, -2],
'2017' : [-1, -2, -1, 0, -2, -2]
df_exp = pd.DataFrame(exports)
df_imp = pd.DataFrame(imports)
import altair as alt
cols_year_imp = df_imp.columns[1:]
cols_year_exp = df_exp.columns[1:]
imp = alt.Chart(df_imp).transform_fold(
list(cols_year_imp)
).mark_bar(
tooltip=True
).encode(
x='value:Q',
y='fruits:N',
color=alt.Color('key:O', scale=alt.Scale(scheme='reds'))
)
exp = alt.Chart(df_exp).transform_fold(
list(cols_year_exp)
).mark_bar(
tooltip=True
).encode(
x=alt.X('value:Q',title="Export"),
y='fruits:N',
color=alt.Color('key:O', scale=alt.Scale(scheme='greens', reverse=True)),
order=alt.Order('key:O', sort='ascending')
)
# imp | exp
imp
exp
alt.hconcat(imp, exp)
输出:https://i.stack.imgur.com/jFvu6.png
【问题讨论】:
见altair-viz.github.io/user_guide/scale_resolve.html 【参考方案1】:您可以在串联图上使用resolve_scale
:
alt.hconcat(imp, exp).resolve_scale(color='independent')
【讨论】:
以上是关于Altair:分离串联图表中的配色方案的主要内容,如果未能解决你的问题,请参考以下文章
如何进入幻灯片配色方案 设置蓝色为背景配色方案 应用于所有幻灯片