我的代码:
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', type='temporal', title='Дата'),
y=alt.Y('sum(confirmed):Q', title='aboba'),
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 melt将其转换为正确的格式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))
相关问题 更多 >
编程相关推荐