如何使用Altair在hconcat图表中显示两个不同的图例

克里斯蒂安·斯科尔德(KristianSköld)

我需要并排显示两个单独的图表,包括它们在Jupyterlab中的图例,而我设法做到这一点的唯一方法是使用hconcat。我已经走了这么远:

在此处输入图片说明

但是,即使.resolve_legend(color='independent')我从顶部的两个图例中显示的两个图表中获得条目,也可能会造成混淆。

结果应如下所示:

在此处输入图片说明

如何删除不需要的图例条目?或者,如果有人知道如何在单个jupyterlab单元中并排绘制图表的好方法,我很乐意采取其他方法。

我的代码如下所示:

import altair as alt
import pandas as pd
from altair.expr import datum
df_test=pd.read_csv("test_df.csv")

chart_m1=alt.Chart(df_test).mark_bar().encode(
            x=alt.X('counts:Q', stack="normalize",axis=None),
            y=alt.Y('category:N',sort=['A','B','C'],title=None),
            color=alt.Color('grade:N',
                sort = alt.EncodingSortField( 'sort:Q', order = 'ascending' ),
                scale = alt.Scale(domain=['good <10', 'average 10-20', 'bad >20'], range=['#0cce6b', '#ffa400', '#ff4e42']),
                legend = alt.Legend(title="Metric1",orient='top')),
            order='sort:Q',
            tooltip=['category:N','grade:N','counts:Q']
            ).transform_filter(datum.metric=='metric1'
            ).properties(height=50,width=150)

chart_m2=alt.Chart(df_test).mark_bar().encode(
            x=alt.X('counts:Q', stack="normalize",axis=None),
            y=alt.Y('category:N',sort=['A','B','C'],title=None),
            color=alt.Color('grade:N',
                sort = alt.EncodingSortField( 'sort:Q', order = 'ascending' ),
                scale = alt.Scale(domain=['good <100', 'average 100-350', 'bad >350'], range=['#0cce6b', '#ffa400', '#ff4e42']),
                legend = alt.Legend(title="Metric2",orient='top')),
            order='sort:Q',
            tooltip=['category:N','grade:N','counts:Q']
            ).transform_filter(datum.metric=='metric2'
            ).properties(height=50,width=150)

alt.hconcat(chart_m1,chart_m2).resolve_legend(color='independent').configure_view(stroke=None)

test_df.csv使用我是这样的:

category,metric,sort,grade,counts
A,metric1,1,good <10,345
B,metric1,1,good <10,123
C,metric1,1,good <10,567
A,metric1,2,average 10-20,567
B,metric1,2,average 10-20,678
C,metric1,2,average 10-20,789
A,metric1,3,bad >20,900
B,metric1,3,bad >20,1011
C,metric1,3,bad >20,1122
A,metric2,1,good <100,1122
B,metric2,1,good <100,1011
C,metric2,1,good <100,900
A,metric2,2,average 100-350,789
B,metric2,2,average 100-350,678
C,metric2,2,average 100-350,567
A,metric2,3,bad >350,567
B,metric2,3,bad >350,345
C,metric2,3,bad >350,123
jakevdp

采用 resolve_scale(color='independent')

alt.hconcat(
    chart_m1, chart_m2
).resolve_scale(
    color='independent'
).configure_view(
    stroke=None
)

在此处输入图片说明

更多信息请参见https://altair-viz.github.io/user_guide/scale_resolve.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Altair Hconcat-是否可以在同一HConCat中为图表配置不同的轴?

来自分类Dev

如何合并Altair图表上的两个滑块?

来自分类Dev

通过Altair生成两个图例

来自分类Dev

当您在同一视图中有两个图表时,如何独立显示或隐藏 Primefaces 图表图例?

来自分类Dev

在Altair中使用共享的选择器/过滤器在不同图表中绘制两个数据框

来自分类Dev

如何显示两个不同表中的日期?

来自分类Dev

使用 PDO 在两个不同的表中显示数据

来自分类Dev

单击两个按钮后如何在Textview中显示两个不同的文本

来自分类Dev

图表。如何更新实时图表中的两个系列?

来自分类Dev

如何在C#图表中添加两个不同的类型系列?

来自分类Dev

如何在C#图表中添加两个不同的类型系列?

来自分类Dev

如何使用ggplot在一张图表上为两个不同的数据框着色?

来自分类Dev

如何使用AChartEngine在一个活动中显示两个饼图并在图表中显示我自己的数据

来自分类Dev

如何在Google图表仪表板中运行两个查询并显示带有控件的两个图表

来自分类Dev

难于在matplotlib和pandas中合并和重新定位两个图表的图例

来自分类Dev

Google可视化中两个图表的常见图例

来自分类Dev

如何使用ggplot 2制作两个图例?

来自分类Dev

如何在codeigniter中形成相同ajax的两个不同页面中显示不同的结果

来自分类Dev

两个不同图表的两个工具提示

来自分类Dev

如何使用布尔函数和数组计算和显示Java中两个不同团队的赢/输

来自分类Dev

如何使用mysql比较两个不同表中的两个字段?

来自分类Dev

r为Shiny App中的两个图表绘制不同大小的图表

来自分类Dev

将两个不同的图例放在ggplot2的两列中

来自分类Dev

如何使用两个下拉框值在 oracle apex 中创建图表?

来自分类Dev

如何使用mapply将函数应用于两个不同数据帧中的两个不同列

来自分类Dev

结合R中的两个图例

来自分类Dev

是否可以从c#winforms中的两个不同数据集中匹配图表中的两个系列数据

来自分类Dev

如何在Python中的两个不同位置连续更新显示

来自分类Dev

如何在jQuery中显示基于两个不同选择选项的段落

Related 相关文章

  1. 1

    Altair Hconcat-是否可以在同一HConCat中为图表配置不同的轴?

  2. 2

    如何合并Altair图表上的两个滑块?

  3. 3

    通过Altair生成两个图例

  4. 4

    当您在同一视图中有两个图表时,如何独立显示或隐藏 Primefaces 图表图例?

  5. 5

    在Altair中使用共享的选择器/过滤器在不同图表中绘制两个数据框

  6. 6

    如何显示两个不同表中的日期?

  7. 7

    使用 PDO 在两个不同的表中显示数据

  8. 8

    单击两个按钮后如何在Textview中显示两个不同的文本

  9. 9

    图表。如何更新实时图表中的两个系列?

  10. 10

    如何在C#图表中添加两个不同的类型系列?

  11. 11

    如何在C#图表中添加两个不同的类型系列?

  12. 12

    如何使用ggplot在一张图表上为两个不同的数据框着色?

  13. 13

    如何使用AChartEngine在一个活动中显示两个饼图并在图表中显示我自己的数据

  14. 14

    如何在Google图表仪表板中运行两个查询并显示带有控件的两个图表

  15. 15

    难于在matplotlib和pandas中合并和重新定位两个图表的图例

  16. 16

    Google可视化中两个图表的常见图例

  17. 17

    如何使用ggplot 2制作两个图例?

  18. 18

    如何在codeigniter中形成相同ajax的两个不同页面中显示不同的结果

  19. 19

    两个不同图表的两个工具提示

  20. 20

    如何使用布尔函数和数组计算和显示Java中两个不同团队的赢/输

  21. 21

    如何使用mysql比较两个不同表中的两个字段?

  22. 22

    r为Shiny App中的两个图表绘制不同大小的图表

  23. 23

    将两个不同的图例放在ggplot2的两列中

  24. 24

    如何使用两个下拉框值在 oracle apex 中创建图表?

  25. 25

    如何使用mapply将函数应用于两个不同数据帧中的两个不同列

  26. 26

    结合R中的两个图例

  27. 27

    是否可以从c#winforms中的两个不同数据集中匹配图表中的两个系列数据

  28. 28

    如何在Python中的两个不同位置连续更新显示

  29. 29

    如何在jQuery中显示基于两个不同选择选项的段落

热门标签

归档