如何解决如何调整多重图Altair的比例并添加图例?
我的代码:
size = alt.datum.confirmed > 0
testplot1 = alt.Chart(df_ww_ru).transform_filter(
size
).mark_line(color='red').encode(
x=alt.X('date:T',type='temporal',title='Дата'),y=alt.Y('sum(confirmed):Q',title='aboba'),tooltip='sum(confirmed)'
)
testplot2 = alt.Chart(df_ru_ru).transform_filter(
size
).mark_line(color='blue').encode(
x=alt.X('date:T',tooltip='sum(confirmed)'
)
testplot_rez = alt.layer(testplot1,testplot2).configure_view(
).properties(
width=820,height=500
).configure_axis(
labelFontSize=17,titleFontSize=20
)
结果,我得到了这样一个规模巨大的图表。当我显示一个非组合的时间表时,一切都很好。
如何解决这个问题?我还需要在需要签署这两行的地方添加一个图例,怎么做?是否可以以与 matplotlib 中类似的方式进行操作?也就是说,手动命名所有内容。
解决方法
就添加图例而言,最简单的方法可能是组合您的两个数据框,以便有一个包含 date
、confirmed
和 category
列的数据框。 category
的值将是 wu_ru
或 ru_ru
。通过这种方式,您可以在创建 Altair 图并拥有 legend created automatically as in this example 时设置编码 color='category'
。您可能可以使用 pandas merge 或 concat 来组合 dfs,然后 pandas 融合以使其成为正确的格式。 More info about data formats in Altair can be found in the docs。
就 y 轴范围而言,它会根据数据中的内容自动调整,因此我会查看您在那里的值,并确保没有真正大的值偏离轴.如果您想手动更改轴刻度,您可以使用类似 alt.Y('sum(confirmed):Q',scale=alt.Scale(domain=0,1000))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。