Использование количества баров для установки ширины / размера метки гистограммы - PullRequest
0 голосов
/ 18 декабря 2018

Я довольно новичок в использовании Matplotlib

Я не мог понять, как применить найденные мной вещи к моему собственному графику, поэтому я решил создать свой собственный пост

Я используюэтот код для генерации моей гистограммы:

p = (len(dfrapport.index))

p1 = p * 2.5
p2 = p * 1.5

height = dfrapport['aantal']
bars = dfrapport['soort']
y_pos = np.arange(len(bars))


plt.bar(y_pos, height, color = ['black', 'red','orange', 'yellow', 'green', 'blue', 'cyan'])

plt.title('Aantal noodstoppen per categorie')
plt.xlabel('categorieën')
plt.ylabel('aantal')
plt.tick_params(axis='x', which='major', labelsize=p2)

plt.xticks(y_pos, bars)
plt.show()

Но я не понимаю, как изменить размер графика?потому что, когда я использую plt.figure(figsize=(p1,p2))

, я получаю пустой график с правильными надписями (но он применяет размер к круговой диаграмме, которую я создаю позже?) И у диаграммы, которую я изначально хотел создать, есть базовая 1-8метки.

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

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

plt.figure(figsize=(p1,p2)) - правильный подход.Следовательно, вопрос немного неясен, потому что вам просто нужно вставить его в код, например,

p = (len(dfrapport.index))
p1 = p * 2.5
p2 = p * 1.5
plt.figure(figsize=(p1,p2))

# ...

plt.bar(...)

Это также показано в вопросе: Как изменить размер рисунков, нарисованных с помощьюMatplotlib

0 голосов
/ 18 декабря 2018

С минимальными возможными изменениями в вашем текущем коде, способ сделать это - добавить следующую строку сразу после определения p1 и p2:

plt.gcf().set_size_inches(p1,p2)

.установите размер текущего Figure объекта, который pyplot использует для создания графиков.В будущем вы можете перейти на использование интерфейса Axes к Matplotlib , так как он в целом гораздо более мощный и гибкий:

p = (len(dfrapport.index))

p1 = p * 2.5
p2 = p * 1.5

height = dfrapport['aantal']
bars = dfrapport['soort']
y_pos = np.arange(len(bars))

fig = plt.figure(figsize=(p1,p2))
ax = fig.gca()
ax.bar(y_pos, height, color = ['black', 'red','orange', 'yellow', 'green', 'blue', 'cyan'])

ax.set_title('Aantal noodstoppen per categorie')
ax.set_xlabel('categorieën')
ax.set_ylabel('aantal')
ax.xaxis.set_tick_params(which='major', labelsize=p2)

ax.set_xticks(y_pos, bars)
fig.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...