Как я могу добавить линии сетки на котлован в морском заливе? - PullRequest
0 голосов
/ 29 апреля 2020

Как я могу добавить линии сетки (по вертикали и по горизонтали) в seaborn catplot? Я нашел возможность сделать это на блокпосте, но у меня есть несколько аспектов, и поэтому мне нужен вместо этого кэтплот. И в отличие от этого другого ответа, catplot не допускает аргумент ax.

Этот код заимствован у здесь .

import seaborn as sns
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.catplot(x="time", y="pulse", hue="kind", data=exercise)
plt.show()

Есть идеи? Спасибо!

РЕДАКТИРОВАТЬ: Предоставленный ответ работает, но для граненых графиков, только последний график наследует сетку.

import seaborn as sns
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.catplot(x="time", y="pulse", hue="kind", col="diet", data=exercise)
plt.grid()
plt.show()

Может кто-нибудь объяснить мне, почему и как это исправить?

1 Ответ

1 голос
/ 29 апреля 2020

Вы можете установить сетку над морскими участками двумя способами:

1. plt.grid() метод:

Вам необходимо использовать метод grid внутри matplotlib.pyplot. Вы можете сделать это следующим образом:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.catplot(x="time", y="pulse", hue="kind", data=exercise)
plt.grid()  #just add this
plt.show()

Что приводит к этому графику: enter image description here

2. sns.set_style() метод

Вы также можете использовать sns.set_style, который включит сетку на всех участках в любом заданном FacetGrid. Вы можете сделать это следующим образом:

import seaborn as sns
import matplotlib.pyplot as plt


sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
sns.set_style("darkgrid")
g = sns.catplot(x="time", y="pulse", hue="kind", col="diet", data=exercise)
plt.show()

, который возвращает этот график: enter image description here

...