我有日期列表,我想用python中的matplotlib生成條形圖。如何在matplotlib python中每年生成一個條形圖?
2007-05-06
2007-05-11
2007-06-01
2007-06-04
2007-06-06
2007-09-01
2007-10-06
2007-11-06
2007-11-07
…
而且我想提供這種兩點式酒吧的char
我可以用這個代碼,但我在尋找更有效的代碼,因爲你可以看到我有多年間2007年和2012年,有時這個範圍可以更寬
def plot():
#--- the two samples ---
samples1 = [1, 1, 1, 3, 2, 5, 1, 10, 10, 8]
samples2 = [6, 6, 6, 1, 2, 3, 9, 12 ]
samples3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 11, 12]
N = 12 # number of bins
hist1 = np.array([0] * N)
hist2 = np.array([0] * N)
hist3 = np.array([0] * N)
#--- create two histogram. Values of 1 go in Bin 0 ---
for x in samples1:
hist1[x-1] += 1
for x in samples2:
hist2[x-1] += 1
for x in samples3:
hist3[x-1] += 1
#--- display the bar-graph ---
width = 1
p1 = plt.bar(np.arange(0,N)+0.5, hist1, width, color='#9932cc')
p2 = plt.bar(np.arange(0,N)+0.5, hist2, width, color='#ffa500', bottom=hist1)
p3 = plt.bar(np.arange(0,N)+0.5, hist3, width, color='#d2691e', bottom=hist1+hist2)
plt.legend((p1[0], p2[0], p3[0]), ('hist1', 'hist2', 'hist3'))
plt.xlabel('Bins')
plt.ylabel('Count')
#plt.axis([1, 46, 0, 6])
plt.xticks(np.arange(1,N+1))
plt.axis([width/2.0, N+width/2.0, 0, max(hist1+hist2+hist3)])
plt.show()
你能幫我生成這種圖表!
謝謝
怎麼能我展示了這種類型的數據:[['2012','3','22'],['2012','3','27'],['2012','3','30'], ['2012','3','30'],['2012','4','7']] – GeoCom
@Milban請問這是一個新的SO問題:你會得到比我更好的答案編輯成我自己的原始問題。 – xnx
比你,我在這裏問它http://stackoverflow.com/questions/33499081/plot-csv-file-in-matplotlib – GeoCom