awa*_*ing 2 python legend altair
考虑以下示例:
import altair as alt
from vega_datasets import data
df = data.seattle_weather()
temp_max = alt.Chart(df).mark_line(color='blue').encode(
x='yearmonth(date):T',
y='max(temp_max)',
)
temp_min = alt.Chart(df).mark_line(color='red').encode(
x='yearmonth(date):T',
y='max(temp_min)',
)
temp_max + temp_min
Run Code Online (Sandbox Code Playgroud)
在生成的图表中,我想添加一个图例,显示蓝线显示最高温度,红线显示最低温度。实现这一目标的最简单方法是什么?
我看到(例如在这个问题的解决方案中:Labeling Layered Charts in Altair (Python)),如果在编码中设置颜色或大小左右,通常使用分类列,那么altair 只会添加图例,但事实并非如此在这里可能是因为我正在绘制整列,标签应该是列名(现在显示在 y 轴标签中)。
我会做一个折叠变换,以便可以正确编码变量。
import altair as alt
from vega_datasets import data
df = data.seattle_weather()
alt.Chart(df).mark_line().transform_fold(
fold=['temp_max', 'temp_min'],
as_=['variable', 'value']
).encode(
x='yearmonth(date):T',
y='max(value):Q',
color='variable:N'
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4355 次 |
| 最近记录: |