Как построить гистограмму по заданным точкам в Python 3 - PullRequest
0 голосов
/ 08 мая 2019

У меня есть 60 чисел, разделенных на 8 интервалов:

[[534, 540.0, 3], [540.0, 546.0, 3], [546.0, 552.0, 14], [552.0, 558.0, 8], [558.0, 564.0, 14], [564.0, 570.0, 9], [570.0, 576.0, 6], [576.0, 582.0, 3]]

Количество чисел в каждом интервале делится на 6:

[0.5, 0.5, 2.33, 1.33, 2.33, 1.5, 1.0, 0.5]

Как создать гистограмму таким образом, чтобывысота столбцов соответствует полученным значениям, при этом подписывая интервалы в соответствии с моими интервалами?Результат должен быть примерно таким:

У меня нет репутации, чтобы публиковать изображения, поэтому

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Выполнение кода F Blanchet генерирует следующий график в моей консоли IPython:

enter image description here

Это действительно не похоже на ваше изображение. Я думаю, что вы ищете что-то более похожее на это, где x-тики между барами:

enter image description here

Это код, который я использовал для генерации вышеуказанного графика:

import matplotlib.pyplot as plt

# Include one more value for final x-tick.
intervals = list(range(534, 583, 6))

# Include one more bar height that == 0.
bar_height = [0.5, 0.5, 2.33, 1.33, 2.33, 1.5, 1.0, 0.5, 0]

plt.bar(intervals,
        bar_height,
        width = [6] * 8 + [0],  # Set width of 0 bar to 0.
        align = "edge",         # Align ticks at edge of bars.
        tick_label = intervals) # Make tick labels explicit.
0 голосов
/ 08 мая 2019

Вы можете использовать matplotlib:

import matplotlib.pyplot as plt
data = [[534, 540.0, 3], [540.0, 546.0, 3], [546.0, 552.0, 14], [552.0, 558.0, 8], [558.0, 564.0, 14], [564.0, 570.0, 9], [570.0, 576.0, 6], [576.0, 582.0, 3]]

x = [element[0]+3 for element in data]
y = [element[2]/6 for element in data]

width = 6 
plt.bar(x, y, width, color="blue")
plt.show()

Больше документации здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...