Гистограмма не отображает полный массив

Я работаю над кодом Python для вставки области в гистограмму. Однако гистограмма не отображает полный представляемый массив. Я проверил массив, чтобы выяснить, почему это происходит, напечатав оба массива. Результат оказывается точным для информации, но не по сравнению с массивом данных. Вот массивы:

["Фармингтон", "Гэллап", "Гранты", "Лас-Вегас", "Ратон", "Санта-Фе", "Таос", "Тижерас", "Тукумкари"]]

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

Диаграмма выводит Gallup только через Santa Fe вместе с 8 для Gallup и 1 для SantaFe. Вот код:

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

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

введите описание изображения здесь

Другие вопросы по тегам