繁体   English   中英

Altair中的分组条形图

[英]Grouped bar chart in altair

我已经阅读了altair 分组条形图示例 ,但是这些条形基于同一列数据。 是否可以根据不同的数据列使用单独的条形图?

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

house  price_2010    price_2020
1      42342.5       233442.34
2      145124        2342235.50

如何制作将条形图为price_2010price_2020的组合条形图?

您拥有某些人所说的宽格式数据 ,而Altair与长格式数据最匹配。 有关更多讨论,请参见Altair的文档

简短版:如果要使用此类数据进行分组的条形图,则首先必须重新调整数据框的形状。 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转换 ,这将使您能够将df.melt()进行的操作作为图表规范的一部分,而不是作为预处理步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM