2017-05-23 7 views
-1

Ich arbeite an Python-Code, um einen Bereich in ein Histogramm einzufügen. Das Histogramm zeichnet jedoch nicht das vollständige dargestellte Array auf. Ich habe das Array getestet, um herauszufinden, warum dies geschieht, indem ich beide Arrays drucke. Das Ergebnis ist letztendlich genau für die Information, aber nicht im Vergleich zum Datenarray. Hier sind die Arrays:Histogramm zeichnet nicht das vollständige Array

[ 'Farmington', 'Gallup', 'Grants', 'Las Vegas', 'Raton', 'Santa Fe', 'Taos', 'Tijeras', 'Tucumcari']

[0,002, 0, 0, 0,008, 0,225, 0,0, 0,0, 0,0, 0,01]

Das Diagramm gibt nur Gallup durch SantaFe zusammen mit 8 für Gallup und 1 für SantaFe. Hier ist der Code:

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

Dies ist der kürzeste Code. Ich könnte mir vorstellen. Wie würdest du den Code verkürzen oder würdest du den Code nicht ganz einbeziehen? –

+0

Vielen Dank für das Update. –

+0

Wenn sie die API verwenden. Ich werde den API-Zugang verlieren, da es einen maximalen Betrag gibt. –

Antwort

1

Sie müssen das Histogramm interpretieren unterschiedlich.

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

Es gibt 8 Bereiche, in denen die Niederschläge zwischen 0 und 0,0225 in Und es gibt ein Ort (Raton), wo der Niederschlag zwischen 0,2025 und 0,225 liegt.

Es könnte sein, dass die Werte in rainhist bereits die Werte sind, die als Balken angezeigt werden. Sie könnten sie dann einfach grafisch darstellen, ohne sie erneut zu histogrammieren.

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

Verwandte Themen