Попробуйте установить сетку после построения графика DataFrame.Также, чтобы получить горизонтальную сетку, нужно использовать ax2.grid(axis='y')
.Ниже приведен ответ с использованием примера DataFrame.
Я изменил структуру определения ax2
, используя subplots
.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})
fig, ax2 = plt.subplots()
df.plot(kind='bar',ax=ax2, fontsize=10, sort_columns=True)
ax2.grid(axis='y')
plt.show()
Кроме того, вы также можете сделать следующее: Использовать объект оси, возвращенный из графика DataFrame напрямую, чтобы включить горизонтальную сетку
fig = plt.figure()
ax2 = df.plot(kind='bar', fontsize=10, sort_columns=True)
ax2.grid(axis='y')
Третий вариант как подсказывает @ayorgo в комментариях, две команды объединяются в
df.plot(kind='bar',ax=ax2, fontsize=10, sort_columns=True).grid(axis='y')
