График Pandas с вторичной осью Y: скрыть линию сетки под графиком - PullRequest
1 голос
/ 13 января 2020

Я строю некоторые данные, как описано в pandas документации .

import pandas as pd
import matplotlib.pyplot as plt


d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)


# plot
ax = df.plot(kind='bar', secondary_y=['col1'])
ax.set_ylabel('Foo')
ax.right_ax.set_ylabel('Bar')

# does not show any effect
ax.grid(True, zorder=0)
ax.right_ax.grid(True, zorder=0)

# does not show any effect
ax.set_axisbelow(True)
# works
ax.right_ax.set_axisbelow(True)

plt.show()

, что дает

enter image description here

Теперь моя проблема в том, что я хочу скрыть линии сетки за решеткой. Я уже пробовал разные комбинации zorder и set_axisbelow, но это работает только для "первых" баров.

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

Заранее спасибо!

1 Ответ

6 голосов
/ 13 января 2020

Включить сетку только для нижних осей.

import pandas as pd
import matplotlib.pyplot as plt

d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

# plot
ax = df.plot(kind='bar', secondary_y=['col1'])
ax.set_ylabel('Foo')
ax.right_ax.set_ylabel('Bar')

ax.grid(True)
ax.set_axisbelow(True)

plt.show()

enter image description here

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