Как масштабировать ось Y морского судна с зазором штанги?
Я использую factorplot(kind="bar")
.
Как масштабировать ось y, например, с помощью логарифмической шкалы?
Я попытался поработать с сюжетными осями, но это так или иначе испортило планшета, поэтому сначала попробуйте свое решение, чтобы убедиться, что оно действительно работает.
Ответы
Ответ 1
Вы можете использовать команды Matplotlib после вызова factorplot
.
Например:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.factorplot("class", "survived", "sex",
data=titanic, kind="bar",
size=6, palette="muted", legend=False)
g.fig.get_axes()[0].set_yscale('log')
plt.show()
![enter image description here]()
Ответ 2
Учитывая ваш вопрос, упоминающий barplot
, я подумал, что добавлю решение для этого типа графика также, поскольку оно отличается от factorplot
в решении @Jules.
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.barplot(x="class", y="survived", hue="sex",
data=titanic, palette="muted")
g.set_yscale("log")
![enter image description here]()
Ответ 3
Если вы столкнулись с проблемой исчезновения баров при настройке логарифмической шкалы с использованием предыдущих решений, попробуйте вместо этого добавить log=True
к вызову функции морского шлюза. (Мне не хватает репутации, чтобы прокомментировать другие ответы).
Использование sns.factorplot
:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.factorplot(x="class", y="survived", hue="sex", kind='bar',
data=titanic, palette="muted", log=True)
g.ax.set_ylim(0.05, 1)
Использование sns.barplot
:
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="whitegrid")
titanic = sns.load_dataset("titanic")
g = sns.barplot(x="class", y="survived", hue="sex",
data=titanic, palette="muted", log=True)
g.set_ylim(0.05, 1)