如何生成每组中条数不同的组条形图?
How to generate a group bar plot with different numbers of bars in each group?
我知道如何使用 matplotlib 生成一个通用的组条形图,如下所示:
A Grouped bar chart from matplotlib
每组有2个小节。
但是我如何生成一个组条形图,每个组中有不同数量的条形图,例如 Group1 中有 2 个条形图,而 Group2 中有 3 个条形图?
谢谢。
可以使用catplot
,例如:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame({'group': ['group 1', 'group 1', 'group 2', 'group 2', 'group 2'],
'bar': ['bar 1', 'bar 2', 'bar 1', 'bar 2', 'bar 3'],
'value': [1, 2, 3, 4, 5]})
g = sns.catplot(kind='bar', data=df, col='group', x='bar', y='value',
hue='bar', palette='rocket', dodge=False, sharex=False)
plt.tight_layout()
plt.show()
我知道如何使用 matplotlib 生成一个通用的组条形图,如下所示: A Grouped bar chart from matplotlib
每组有2个小节。
但是我如何生成一个组条形图,每个组中有不同数量的条形图,例如 Group1 中有 2 个条形图,而 Group2 中有 3 个条形图?
谢谢。
可以使用catplot
,例如:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame({'group': ['group 1', 'group 1', 'group 2', 'group 2', 'group 2'],
'bar': ['bar 1', 'bar 2', 'bar 1', 'bar 2', 'bar 3'],
'value': [1, 2, 3, 4, 5]})
g = sns.catplot(kind='bar', data=df, col='group', x='bar', y='value',
hue='bar', palette='rocket', dodge=False, sharex=False)
plt.tight_layout()
plt.show()