【问题标题】:Stacked bar charts where each column is a bar chart with multiple columns in Altair堆叠条形图,其中每列是 Altair 中具有多列的条形图
【发布时间】:2020-08-23 22:45:20
【问题描述】:

我想画出类似的图表 Stacked bar chart across multiple columns 但它与 R 一起使用,我想使用 Python,希望与 Atair 一起使用。

【问题讨论】:

    标签: python altair


    【解决方案1】:

    听起来您拥有宽格式数据,您需要将其转换为长格式数据(请参阅 Altair 文档中的 Long Form vs. Wide Form data)。

    处理此问题的一种便捷方法是使用Fold Transform。例如:

    import altair as alt
    import pandas as pd
    
    df = pd.DataFrame({
        'label': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
        'value1': [1, 3, 2, 4, 5, 6, 4],
        'value2': [2, 1, 2, 5, 3, 4, 2],
    })
    
    alt.Chart(df).transform_fold(
      ['value1', 'value2'],
      as_=['column', 'value']
    ).mark_bar().encode(
      x='label:N',
      y='value:Q',
      color='column:N'
    )
    

    【讨论】:

    • 我在当前版本的 altair 上试过这个,得到一个 AttributeError: 'list' object has no attribute 'get',知道可能是什么问题吗?
    • 您的 jsonschema 软件包版本不兼容(请参阅 github.com/altair-viz/altair/issues/2496)。您要么需要将altair 更新到最新版本(4.2 或更高版本),要么需要将jsonschema 降级到版本3.X。
    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2022-08-12
    • 1970-01-01
    相关资源
    最近更新 更多