Как изменить ширину линии сетки осей в matplotlib с помощью mplstyle sheet?

#python #matplotlib #plot #graph

#python #matplotlib #график #График

Вопрос:

Для следующего примера:

 df = pd.DataFrame(np.random.randint(0, 10, (5, 5)), columns=list("abcde"))
df = df.apply(lambda x: x.div(x.sum()).mul(100), axis=0)

fig, ax = plt.subplots(figsize=(10, 4))
df.T.plot.barh(
    stacked=True,
    ax=ax,
)
[ax.spines[x].set_visible(False) for x in ax.spines]

ax.grid()
  

которые выглядят как:

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

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

Здесь они находятся за пределами баров:

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

Здесь они находятся на одном уровне:

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

Ответ №1:

Попробуйте это:

 ax.set_xlim(0,100.1)
  

Непосредственно перед ax.grid() .

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

Комментарии:

1. Спасибо, извините за перемещение стоек ворот, но как это повлияет на размещение легенды? Обычно у меня была бы легенда либо справа, либо под графиком, а не внутри него, как это.

2. Если вы хотите автоматически, вы также можете настроить «поля» равными нулю: matplotlib.org/3.2.0/gallery/subplots_axes_and_figures /…