Python 重新组合seaborn条形图中的条形图
我想用liwt31的答案来生成一个类似的带组的条形图 我的三个小组是:Python 重新组合seaborn条形图中的条形图,python,seaborn,Python,Seaborn,我想用liwt31的答案来生成一个类似的带组的条形图 我的三个小组是: original: [6.32183908045977, 818.5862068965517, 824.9080459770115] change 1: [104.47142857142858, 166.77142857142857, 271.24285714285713] change 2: [342.7647058823529, 225.90588235294118, 568.6705882352941] 其中,每组列
original: [6.32183908045977, 818.5862068965517, 824.9080459770115]
change 1: [104.47142857142858, 166.77142857142857, 271.24285714285713]
change 2: [342.7647058823529, 225.90588235294118, 568.6705882352941]
其中,每组列表中的每个项目都是一个时间点
我写了这段代码:
import pandas as pd
import seaborn as sns
import datetime
import matplotlib
import matplotlib.pyplot as plt
def add_to_list(file_name):
temp_good = []
temp_bad = []
temp_all = []
open_file_name = open(file_name, 'r')
for line in open_file_name:
line = line.strip().split()
if len(line) > 0:
temp_bad.append(int(line[0]))
temp_good.append(int(line[1]))
temp_all.append(int(line[0]) + int(line[1]))
ave_good = sum(temp_good)/len(temp_good)
ave_bad = sum(temp_bad)/len(temp_bad)
ave_all = sum(temp_all)/len(temp_all)
return(ave_bad,ave_good,ave_all)
original = list(add_to_list('original.txt'))
change1 = list(add_to_list('change1.txt'))
change2 = list(add_to_list('change2.txt'))
print(original)
print(change1)
print(change2)
x = [
'original',
'change1',
'change2'
]
df = pd.DataFrame(zip(x*3, ["original"]*3+["change1"]*3+["change2"]*3, original+change1+change2), columns=["A", "B", "C"])
print(df)
plt.figure(figsize=(10, 6))
sns.barplot(x="A", hue="B", y="C", data=df)
plt.show()
输出如下所示:
输入输出的数据帧(即上面打印的df)为:
然而,我真正想要的是所有的蓝条都在一个组中(原始),所有的change1条在一个组中,所有的change2条在一个组中
e、 g.如果原始文件位于X轴上,则应有三个带有这些数字的条形图(此列表中的每个数字都是某件事情发生的时间点,均属于原始文件):
[6.32183908045977818.58620689665517824.9080459770115]
而现在,这些数字是各组的蓝色条
有人能告诉我如何纠正这个问题吗,所以第一组条形图应该是:
原文:[6.32183908045977,818.58620689665517,824.9080459770115](此列表中的每个点都是一个时间点,均为原始人口)
第二组钢筋应为:
变更1:[104.47142857142858166.77142857142857271.24285714285713](此列表中的每个点都是一个时间点,全部在变更1人口中)
X轴上的第三组钢筋应为:
变更2:[342.7647058823529225.90588235294118568.6705882352941](此列表中的每个点都是一个时间点,全部在变更2中)
A B C
0 original original 6.321839
1 change1 original 818.586207
2 change2 original 824.908046
3 original change1 104.471429
4 change1 change1 166.771429
5 change2 change1 271.242857
6 original change2 342.764706
7 change1 change2 225.905882
8 change2 change2 568.670588