Как избавиться от линий сетки при прокладке с помощью Seaborn + Pandas с secondary_y
Я рисую две серии данных с Pandas с импортированным морским транспортом. В идеале я бы хотел, чтобы горизонтальные линии сетки делились между левой и правой осью y, но у меня создается впечатление, что это трудно сделать.
В качестве компромисса я хотел бы удалить линии сетки вместе. Следующий код, однако, создает горизонтальные линии сетки для вторичной оси y.
import pandas as pd
import numpy as np
import seaborn as sns
data = pd.DataFrame(np.cumsum(np.random.normal(size=(100,2)),axis=0),columns=['A','B'])
data.plot(secondary_y=['B'],grid=False)
![gridlines that I want to get rid of]()
Ответы
Ответ 1
Вы можете вывести объект Axes из строчки и выполнить .grid(False)
на обеих осях.
# Gets the axes object out after plotting
ax = data.plot(...)
# Turns off grid on the left Axis.
ax.grid(False)
# Turns off grid on the secondary (right) Axis.
ax.right_ax(False)
Ответ 2
sns.set_style("whitegrid", {'axes.grid' : False})
Обратите внимание, что стиль может быть любым, который вы выбрали.
Для хорошей статьи об этом см. этот сайт.
Ответ 3
Проблема заключается в использовании форматирования по умолчанию pandas (или любого другого форматирования, которое вы выбрали). Не уверен, как все работает за кулисами, но эти параметры превзойдут форматирование, которое вы передаете, как в функции графика. Вы можете увидеть их список здесь, в словаре mpl_style
Чтобы обойти это, вы можете сделать это:
import pandas as pd
pd.options.display.mpl_style = 'default'
new_style = {'grid': False}
matplotlib.rc('axes', **new_style)
data = pd.DataFrame(np.cumsum(np.random.normal(size=(100,2)),axis=0),columns=['A','B'])
data.plot(secondary_y=['B'])
![enter image description here]()
Ответ 4
Похоже на поведение с ошибкой в Pandas, причем не все аргументы ключевого слова передаются обоим осям. Но если вы хотите отключить сетку по умолчанию на морском побережье, вам просто нужно позвонить sns.set_style("dark")
. Вы также можете использовать sns.axes_style
в инструкции with
, если вы хотите изменить значение по умолчанию для одной цифры.