Фон:
Я создал гистограмму следующим образом:
- ось x:
numbers
(ndarray) - ось y: число
frequencies
(ndarray) - каждая полоса частоты имеет фактическое значение, аннотированное вверху соответствующей полосы; Для этого была создана пользовательская функция
annotations()
, которая использует plt.bar
функции get_x, get_height, get_width
для вычисления точного положения, в котором будет размещена моя метка
Используя plt. bar (): - это прекрасно работает
numbers=np.array([1,2,3, 4, 5, 6, 7, 8, 9,10,11,12])
frequencies=np.array([233,266,261,220,245,231,235,263,246,169,159, 58])
x = np.arange(1,len(numbers)+1)
bars=plt.bar(x, frequencies, width=0.5)
plt.xticks(numbers)
def annotations():
for bar in bars:
height = bar.get_height()
plt.annotate('{}'.format(height),
xy=(bar.get_x() + bar.get_width() / 2, height),
xytext=(0, 1), # 1 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
annotations()
#plt.hist(frequencies, numbers)
plt.show()
Гистограмма:
![bar chart](https://i.stack.imgur.com/1P9Vf.png)
Цель: Создать Стволовую диаграмму с аннотированными метками на каждом стебле, аналогично гистограмме выше .
My plt. ствол ():
x = np.arange(1, len(numbers) + 1) # the label locations; needs to start at 1, not 0
print(x)
stems = plt.stem(x, frequencies)
![stem chart](https://i.stack.imgur.com/6eU4S.png)
Вопрос: Как рассчитать правильные координаты XY на стволе диаграмма для размещения пользовательских меток, в данном случае frequencies
? Ограничение здесь состоит в том, что, в отличие от plt.bar (), plt.stem () не имеет get_x, get_height()
функций.