Изменить масштаб оси Y - FacetGrid - PullRequest
1 голос
/ 25 апреля 2020

Я не могу понять, как изменить масштаб оси Y. Мой код:

grid = sns.catplot(x='Nationality', y='count', 
                   row='Age', col='Gender', 
                   hue='Type',
                   data=dfNorthumbria2, kind='bar', ci='No')

it currently looks like this

Я хотел просто набрать go в полных числах, а не в .5

1 Ответ

0 голосов
/ 25 апреля 2020

Обновление

Я только что нашел этот учебник , вероятно, самое простое решение будет следующим:

grid.set(yticks=list(range(5)))

С помощью grid.set

Help on method set in module seaborn.axisgrid:
set(**kwargs) method of seaborn.axisgrid.FacetGrid instance
    Set attributes on each subplot Axes.

Так как seaborn построен поверх matplotlib, вы можете использовать yticks из plt

import matplotlib.pyplot as plt
plt.yticks(range(5))

Однако это изменило только yticks верхнего ряда в моем примере макета.
По этой причине Вы, вероятно, хотите изменить отметки y на основе оси с помощью ax.set_yticks(). Чтобы получить ось от вашего grid объекта, вы можете реализовать понимание списка следующим образом:

[ax[0].set_yticks(range(0,150,5) )for ax in grid.axes]

Пример полностью воспроизводимого примера будет выглядеть так (адаптировано из здесь )

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
grid = sns.catplot(x="time", y="pulse", hue="kind",
                row="diet", data=exercise)
# plt.yticks(range(0,150,5)) # Changed only one y-axis

# Changed y-ticks to steps of 20 
[ax[0].set_yticks(range(0,150,20) )for ax in grid.axes]

enter image description here

...