как сохранить результат plt.bar в массив - PullRequest
0 голосов
/ 06 мая 2018

Я хочу знать, что можно сохранить результат функции plt.bar в массиве. Что-то вроде

a=[1,2,3]
b=[21321,5345,654457]

height=list(b)

plt.bar(a,height=height)

a_b=result_of_pltbar

1 Ответ

0 голосов
/ 06 мая 2018

Я не уверен, что вы имеете в виду, сохраняя результат в массиве, но вот некоторые мысли.

Предполагая, что plt импортируется from matplotlib import pyplot as plt, результирующая цифра выглядит следующим образом:

barplot

  • Высота столбцов в b
  • Х-позиции столбцов сохраняются в a

Теперь у вас есть все остальное, кроме "краев" стержней. Чтобы получить текущую ось, вы можете использовать ax = plt.gca(). Если вы исследуете vars(ax), вы увидите, что ax.patches выглядит особенно интересно. Они содержат данные о барах. Вот что вы найдете в ax.patches[0]:

In [18]: vars(ax.patches[0])
Out[18]:
{'_stale': True,
....
 '_x0': 0.6,
 '_y0': 0,
 '_width': 0.8,
 '_height': 21321,
 '_x1': 1.4,
 '_y1': 21321,
....
}

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

left_edges = [bar._x0 for bar in ax.patches]

, что приведет к [0.6, 1.6, 2.6]. Процесс получения других свойств баров должен быть понятен.

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