所以,我试图创建一个条形图,从一个有3行的txt文件中获取数据。我们的想法是使条形图对每行的数据求和,并在Y轴上对这些数字下的3个条形图进行求和,以及数字在X轴上的含义名称。我一直在寻找,但我觉得它真的远离我真正需要的东西。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
arrays = np.loadtxt("D:/uni/txt arkhives/tiempos.txt", dtype=float)
row1 =np.array(arrays[:,0])
row2 =np.array(arrays[:,1])
row3 =np.array(arrays[:,2])
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second','third'])
df = pd.DataFrame({'A': row1, 'B': row2, 'C': row3}, index=index)
plt.figure()
df.groupby(['row1','row2','row3']).sum().unstack().plot()
plt.grid()
plt.xlabel('x')
plt.ylabel('y')
plt.title('Graph')
plt.legend()
plt.show()
我一直收到这个错误:
答案 0 :(得分:0)
这可能是您正在寻找的:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
##If you do not have headers in your file use:
df = pd.read_table("D:/uni/txt arkhives/tiempos.txt",header=None,names = ['A','B','C'])
##If you do have headers in your file use:
df = pd.read_table("D:/uni/txt arkhives/tiempos.txt")
df['bar'] = 1
dfgroup = df.groupby('bar').sum()
ax = dfgroup [['A','B','C']].plot(kind='bar', title ="Bar Chart", figsize=(15, 10), legend=True, fontsize=12)
ax.set_xlabel("X label", fontsize=12)
ax.set_ylabel("Y Lable", fontsize=12)
plt.show()
确保列名称为A,B,C,它应该是好的。