【发布时间】:2021-12-08 04:08:48
【问题描述】:
我正在尝试从this 问题中复制答案,我看不出我在做什么不同。
我的输出,类似于那个问题或here 是一个分组条形图,其中这个数据框:
Area Number Cat
0 item1 4 Cat1
1 item2 6 Cat1
2 item3 7 Cat1
3 item4 8 Cat1
4 item5 10 Cat1
0 item1 4 Cat2
1 item2 6 Cat2
2 item3 7 Cat2
3 item7 8 Cat2
4 item6 10 Cat2
按区域分组,然后每个区域都有两个连体条显示 Cat1 和 Cat2 的编号。所以输出应该有七组条形图(即项目 1、2、3、4、5、6、7),每组有两个条形图,一个用于类别 1,一个用于类别 2。
这段代码:
import sys
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
test_dict1 = {'item1':4, 'item2':6, 'item3':7,'item4':8,'item5':10}
test_dict2 = {'item1':4, 'item2':6, 'item3':7,'item7':8,'item6':10}
#df = pd.DataFrame({'test_dict1':pd.Series(test_dict1),'test_dict2':pd.Series(test_dict2)}).reset_index()
#df = df.set_axis(['Item', 'DictOne', 'DictTwo'], axis=1)
test1_df = pd.DataFrame(test_dict1.items(), columns=['Area','Number'])
test2_df = pd.DataFrame(test_dict2.items(), columns=['Area','Number'])
test1_df['Cat'] = 'Cat1'
test2_df['Cat'] = 'Cat2'
dfs = [test1_df,test2_df]
result = pd.concat(dfs)
print(result)
from matplotlib import rcParams
sns.set(style="whitegrid")
rcParams.update({'figure.autolayout': True})
fig, ax1 = plt.subplots(figsize=(12,6))
result.plot.bar(x='Cat', ax=ax1)
plt.tight_layout()
plt.xticks(rotation=45, ha="right")
plt.show()
产生这个输出:
谁能告诉我哪里出错了?
【问题讨论】:
标签: python pandas matplotlib seaborn bar-chart