【问题标题】:Altair limit number of bars in facet chartAltair 限制构面图中的条形图数量
【发布时间】:2021-01-19 23:58:59
【问题描述】:

假设我有一个像这样的熊猫数据框:

   label  counts  group
4      4       8      1
5      5       7      1
6      6       6      1
7      7       5      1
0      0       4      2
1      1       3      2
2      2       2      2
3      3       1      2

我想用altair做一个条形图,条的高度是计数,标签是标签。我想通过group 列添加一个方面。如果我想要每个子图表的前 3 个计数,如何限制要显示的条数?

希望我不想在 pandas 中对数据框执行操作,而是使用手头的 altair 工具来执行此操作。

【问题讨论】:

    标签: python altair


    【解决方案1】:

    您可以使用与Altair limit number of bars 相同的方法来执行此操作,但在window transform 中使用groupby 参数:

    import altair as alt
    import pandas as pd
    from io import StringIO
    df = pd.read_csv(StringIO("""
       label  counts  group
    4      4       8      1
    5      5       7      1
    6      6       6      1
    7      7       5      1
    0      0       4      2
    1      1       3      2
    2      2       2      2
    3      3       1      2
    """), delim_whitespace=True)
    
    alt.Chart(df).transform_window(
        rank='rank(counts)',
        sort=[alt.SortField('counts', order='descending')],
        groupby=['group']
    ).transform_filter(
        alt.datum.rank <= 3
    ).mark_bar().encode(
        x='counts:Q',
        y='label:O',
        row='group:O'
    ).resolve_scale(
        y='independent'
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-28
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多