2017-10-10 27 views
0

因此,即時通訊嘗試創建一個條形圖,該條形圖從具有3行的txt文件獲取數據。我們的想法是,條形圖將每行的數據相加,然後在Y軸的這些數字下繪製3條線圖,以及數字在X軸中的含義。一直在四處尋找,我走了,但我覺得它真的離我真正需要的地方很遠。創建一個條形圖,彙總來自txt文件的數據

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() 

我不斷收到此錯誤:

Code Error

+0

正如我所說,txt文件只有約3行。每行500個數字。這個想法是總結所有這一切,只有3個數字,我需要繪製。 –

+0

將錯誤發佈爲格式文本而不是圖片會更好。 –

+0

謝謝:))這件事很新鮮x) –

回答

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和它應該是好的。

+0

對不起,但是,我不太明白我怎麼能把我的txt數據帶到你的代碼中。是否應該像我一樣將它導入到代碼中,然後按照您所說的定義df? –

+0

此外,我需要的是隻有3個酒吧的簡單條形圖。每個小節都是每列數據的總和 –

+0

是的,這會使您要查找的圖表。嘗試'df = pd.read_table(「D:/ uni/txt arkhives/tiempos.txt」,names = ['A','B','C'])'我也編輯了答案,可以插入你的代碼。 –