2017-05-23 92 views
-1

我正在使用python代碼將區域插入直方圖。但是,直方圖不會繪製正在呈現的完整陣列。我測試了這個數組,通過打印這兩個數組來找出爲什麼會發生這種情況。結果對於信息來說是準確的,但不是與數據數組相比。以下是數組:直方圖不繪製整個陣列

[ '頓', '蓋洛普', '資助', '拉斯維加斯', '頓', '聖達菲', '陶', 'TIJERAS', '圖克姆卡里']

[0.002,0,0,0.008,0.225,0.0,0.0,0.0,0.01]

該圖表僅通過SantaFe輸出Gallup,Gallup輸出8,SantaFe輸出1。 下面是代碼:

import matplotlib.pyplot as plt 
rainhist = [0.002, 0, 0, 0.008, 0.225, 0.0, 0.0, 0.0, 0.01] 
cityhist = ['Farmington', 'Gallup', 'Grants', 'Las Vegas', 'Raton', 'Santa Fe', 'Taos', 'Tijeras', 'Tucumcari'] 
print(cityhist) 
print(rainhist) 
table = plt.subplot() 
table.hist(rainhist, bins=10) 
table.set_title("New Mexico North") 
table.set_xlabel("Areas") 
table.set_ylabel("Accumulation (in.)") 
table.set_xticklabels(cityhist, rotation_mode="anchor") 
plt.show() 
+0

這是最短的代碼。我能想到。你將如何縮短代碼或者你是否完全不包含代碼? –

+0

謝謝你的更新。 –

+0

如果他們使用API​​。由於存在最大數量,我將放棄API訪問。 –

回答

1

你需要以不同的interprete直方圖:

import matplotlib.pyplot as plt 
rainhist = [0.002, 0, 0, 0.008, 0.225, 0.0, 0.0, 0.0, 0.01] 
cityhist = ['Farmington', 'Gallup', 'Grants', 'Las Vegas', 'Raton', 
      'Santa Fe', 'Taos', 'Tijeras', 'Tucumcari'] 
table = plt.subplot() 
table.hist(rainhist, bins=10) 
table.set_title("New Mexico North") 
table.set_ylabel("Number of areas") 
table.set_xlabel("Accumulation (in.)") 
plt.show() 

有8個地區,降水量爲0和0.0225之間並且有一個地方(拉頓),其中降水量介於0.2025和0.225之間。

它可能是rainhist的值是已經是顯示爲條形的值。然後您可以簡單地繪製它們而不需要再次直方圖。

import matplotlib.pyplot as plt 
rainhist = [0.002, 0, 0, 0.008, 0.225, 0.0, 0.0, 0.0, 0.01] 
cityhist = ['Farmington', 'Gallup', 'Grants', 'Las Vegas', 'Raton', 
      'Santa Fe', 'Taos', 'Tijeras', 'Tucumcari'] 
ax = plt.subplot() 
ax.bar(range(len(rainhist)), rainhist) 
ax.set_xticks(range(len(rainhist))) 
ax.set_xticklabels(cityhist, rotation=90) 
ax.set_ylabel("Accumulation (in.)") 
plt.tight_layout() 
plt.show() 

enter image description here