【问题标题】:Grouped bar chart in altairaltair 中的分组条形图
【发布时间】:2019-03-18 05:41:21
【问题描述】:

我已阅读 altair grouped bar chart example,但这些条形图基于同一列数据。是否可以根据不同的数据列有单独的条形?

例如,我的数据如下所示:

house  price_2010    price_2020
1      42342.5       233442.34
2      145124        2342235.50

如何制作分组条形图,图表为price_2010price_2020

【问题讨论】:

    标签: python altair


    【解决方案1】:

    你有一些人所说的宽格式数据,而 Altair 最适合长格式数据。更多讨论请见Altair's documentation

    短版:如果您想用这种数据制作分组条形图,您首先必须重新塑造数据框。 melt() 方法可以对此有所帮助:

    import altair as alt
    import pandas as pd
    
    df = pd.DataFrame({
        'index': range(5),
        'price_2010': [12, 14, 10, 9, 6],
        'price_2020': [14, 15, 12, 14, 10]
    })
    
    alt.Chart(df.melt('index')).mark_bar().encode(
        alt.X('variable:N', axis=alt.Axis(title='')),
        alt.Y('value:Q', axis=alt.Axis(title='price', grid=False)),
        color=alt.Color('variable:N'),
        column='index:O'
    ).configure_view(
        stroke='transparent'
    )
    

    另请注意,当 Altair 3.0 发布时,它将包含 fold transform,这将允许您执行 df.melt() 完成的操作作为图表规范的一部分,而不是作为预处理步骤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 2018-02-10
      • 2022-12-06
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多