Python 在altair的layerd图表中添加图例

Python 在altair的layerd图表中添加图例,python,legend,altair,Python,Legend,Altair,考虑以下示例: 将altair导入为alt 从vega_数据集导入数据 df=数据。西雅图天气() temp\u max=alt.Chart(df)。标记线(color='blue')。编码( x='yearmonth(日期):T', y='max(temp_max)', ) temp\u min=alt.Chart(df)。标记线(color='red')。编码( x='yearmonth(日期):T', y='max(temp_min)', ) 最高温度+最低温度 在生成的图表中,我想添加

考虑以下示例:

将altair导入为alt
从vega_数据集导入数据
df=数据。西雅图天气()
temp\u max=alt.Chart(df)。标记线(color='blue')。编码(
x='yearmonth(日期):T',
y='max(temp_max)',
)
temp\u min=alt.Chart(df)。标记线(color='red')。编码(
x='yearmonth(日期):T',
y='max(temp_min)',
)
最高温度+最低温度
在生成的图表中,我想添加一个图例,显示蓝线表示最高温度,红线表示最低温度。实现这一目标最简单的方法是什么

我看到(例如,在这个问题的解决方案中:)altair只添加了一个图例,如果在编码中,您设置了颜色或大小,通常带有一个分类列,但这在这里是不可能的,因为我正在绘制整个列,标签应该是列名(现在显示在y轴标签中).

我会做一个测试,使变量能够正确编码

将altair导入为alt
从vega_数据集导入数据
df=数据。西雅图天气()
alt.Chart(df).标记线().变换折叠(
折叠=[“最高温度”,“最低温度”],
as.['variable','value']
).编码(
x='yearmonth(日期):T',
y='max(值):Q',
颜色变量:N'
)

如果将两个具有相同列的图表分层,并告诉它们使用相同的列着色,则图例将出现。不知道这是否有帮助,但是

例如,我有:


范围、数量、类型

0_5,3,“私人”

5_1 0,5,“私人”


范围、数量、类型

0_5,3,“公共”

5_1 0,5,“公共”



我用“color=”Type“和alt.layer(chart1,chart2)绘制了两张图表,它显示了一个合适的图例

用分层图表可以做到这一点吗?建议的方法适用于数据位于同一数据帧中的情况,但情况并非总是如此。@Karim如果不指定图例将表示的编码,则无法添加图例。这里将进一步讨论这个问题