具有完全不同组的组条形图
Group bar charts with completely different groups
我 table 看起来像这样:
id
year
value
98
2001
4
252
2011
5
198
2021
6
232
2001
7
981
2011
4
244
2021
2
我想做一个分组条形图,其中条形图根据年份分组,每组显示相应年份的 id 值。所以基本上很多条形图绘制成一个大图。
我试过pandas.groupby,但它只给了我几个子图。
使用 pandas.pivot 我得到错误:索引包含重复条目,无法重塑。
此外,可以显示每个组(年)的均值和方差吗?
有什么聪明的方法吗?
分组图表可以通过 seaborn、plotly 可视化包来完成。我更喜欢 plotly 因为它的交互式情节和更多的可定制性。以下是针对您的问题的代码。
其中 data.csv 包含您提到的表格格式的数据。
import pandas as pd
import plotly.express as px
df = pd.read_csv('data.csv')
df['id'] = df['id'].astype(object)
fig = px.bar(df, x="year",color='id',
y=['value'],
title="A Grouped Bar Chart With Plotly Express in Python",
barmode='group', text_auto=True,
height=400,
width=600,
)
fig.update_traces(textposition='outside')
fig.show()
[![Grouped Bar Chart Plot][1]][1]
[1]: https://i.stack.imgur.com/bHn4x.png
我 table 看起来像这样:
id | year | value |
---|---|---|
98 | 2001 | 4 |
252 | 2011 | 5 |
198 | 2021 | 6 |
232 | 2001 | 7 |
981 | 2011 | 4 |
244 | 2021 | 2 |
我想做一个分组条形图,其中条形图根据年份分组,每组显示相应年份的 id 值。所以基本上很多条形图绘制成一个大图。
我试过pandas.groupby,但它只给了我几个子图。 使用 pandas.pivot 我得到错误:索引包含重复条目,无法重塑。
此外,可以显示每个组(年)的均值和方差吗? 有什么聪明的方法吗?
分组图表可以通过 seaborn、plotly 可视化包来完成。我更喜欢 plotly 因为它的交互式情节和更多的可定制性。以下是针对您的问题的代码。
其中 data.csv 包含您提到的表格格式的数据。
import pandas as pd
import plotly.express as px
df = pd.read_csv('data.csv')
df['id'] = df['id'].astype(object)
fig = px.bar(df, x="year",color='id',
y=['value'],
title="A Grouped Bar Chart With Plotly Express in Python",
barmode='group', text_auto=True,
height=400,
width=600,
)
fig.update_traces(textposition='outside')
fig.show()
[![Grouped Bar Chart Plot][1]][1]
[1]: https://i.stack.imgur.com/bHn4x.png