如何调整多重图Altair的比例并添加图例?

如何解决如何调整多重图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
    )

结果,我得到了这样一个规模巨大的图表。当我显示一个非组合的时间表时,一切都很好。

enter image description here

如何解决这个问题?我还需要在需要签署这两行的地方添加一个图例,怎么做?是否可以以与 matplotlib 中类似的方式进行操作?也就是说,手动命名所有内容

解决方法

就添加图例而言,最简单的方法可能是组合您的两个数据框,以便有一个包含 dateconfirmedcategory 列的数据框。 category 的值将是 wu_ruru_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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?