Как отрегулировать расстояние между стержнями в гистограмме с накоплением (Matplotlib) без ущерба для ширины стержней?

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

import pandas as pd
import matplotlib.pyplot as plt


d = {
'id': [823,234,213,343,329,289,569,294,295,832],
'dogs': [1,2,3,4,3,5,2,3,4,5], 
'cats': [3,4,5,2,1,3,4,5,3,2,], 
'birds': [1,4,2,3,4,2,3,1,4,2]}

df = pd.DataFrame(data=d)

df.plot(
    x = 'id',
    kind = 'barh',
    stacked = True,
    title = 'Stacked Bar Graph',
    mark_right = True, 
    color=['#D3E0F9','#7AA3F1','#3D68CF'],
    width=0.6)


plt.rc('axes', titlesize=6) #fontsize of the title
plt.rc('axes', labelsize=10) #fontsize of the x and y labels
plt.rc('xtick', labelsize=10) #fontsize of the x tick labels
plt.rc('ytick', labelsize=10) #fontsize of the y tick labels
plt.rc('legend', fontsize=10) #fontsize of the legend

сюжет


person Mario W    schedule 15.05.2021    source источник
comment
Вы пытались увеличить ширину/высоту вашей фигуры?   -  person Alex    schedule 15.05.2021
comment
Я сделал. Но я хочу придерживаться текущей ширины. Однако изменение высоты не работает, я всегда получаю сообщение об ошибке barh() получил несколько значений для аргумента «высота»   -  person Mario W    schedule 15.05.2021


Ответы (1)


Настройте размер фигуры перед построением графика:

fig, ax = plt.subplots(figsize=(6, 10))
df.plot(
    x="id",
    kind="barh",
    stacked=True,
    title="Stacked Bar Graph",
    mark_right=True,
    color=["#D3E0F9", "#7AA3F1", "#3D68CF"],
    width=0.6,
    # Then plot onto the ax for the `fig`
    ax=ax,
)

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

person Alex    schedule 15.05.2021
comment
Большое спасибо, Алекс! Это работает :-) - person Mario W; 15.05.2021
comment
Это неправильный способ установки размера фигуры при использовании pandas.DataFrame.plot< /а>. df.plot(..., figsize=(w, h)). - person Trenton McKinney; 15.05.2021