Python altair中的分组条形图

Python altair中的分组条形图,python,altair,Python,Altair,我读过牵牛星,但这些条基于同一列数据。是否可以根据不同的数据列设置单独的条形图 例如,我的数据如下所示: house price_2010 price_2020 1 42342.5 233442.34 2 145124 2342235.50 如何制作一个分组条形图,其中的图表为price_2010和price_2020?您拥有一些人所称的宽格式数据,而Altair最适合长格式数据。有关更多讨论,请参阅 简短版本:如果你想用这种数据做一个分组

我读过牵牛星,但这些条基于同一列数据。是否可以根据不同的数据列设置单独的条形图

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

house  price_2010    price_2020
1      42342.5       233442.34
2      145124        2342235.50

如何制作一个分组条形图,其中的图表为
price_2010
price_2020

您拥有一些人所称的宽格式数据,而Altair最适合长格式数据。有关更多讨论,请参阅

简短版本:如果你想用这种数据做一个分组条形图,你首先必须重新塑造数据框。该方法可用于以下方面:

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发布时,它将包括,这将允许您将
df.melt()
所做的操作作为图表规范的一部分,而不是作为预处理步骤。

您拥有一些人所称的宽格式数据,Altair最适合处理长格式数据。有关更多讨论,请参阅

简短版本:如果你想用这种数据做一个分组条形图,你首先必须重新塑造数据框。该方法可用于以下方面:

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发布时,它将包括,这将允许您将通过
df.melt()
完成的操作作为图表规范的一部分,而不是作为预处理步骤