#python #matplotlib #seaborn
Вопрос:
В python, как увеличить текущий размер оси y? Предполагая, что в нормальном графике это [0,50000]и [0,20000], но я хочу, чтобы это было [0,50000] и [0,50000]… [0,50000]. Все гистограммы с осью y от 0 до 50000.
fig, axs = plt.subplots(ncols = 2, nrows = 3, figsize = (18, 18))
sns.distplot(df["EXT"], bins = 40, kde = False,
ax = axs[0, 0], color = sns.color_palette()[0]).set_title("Extroversion")
sns.distplot(df["EST"], bins = 40, kde = False,
ax = axs[0, 1], color = sns.color_palette()[1]).set_title("Neuroticism")
sns.distplot(df["AGR"], bins = 40, kde = False,
ax = axs[1, 0], color = sns.color_palette()[2]).set_title("Agreeableness")
sns.distplot(df["CSN"], bins = 40, kde = False,
ax = axs[1, 1], color = sns.color_palette()[3]).set_title("Conscientiousness")
sns.distplot(df["OPN"], bins = 40, kde = False,
ax = axs[2, 0], color = sns.color_palette()[4]).set_title("Openness")
fig.delaxes(axs[2, 1])
for ax in axs.flat:
ax.set(xlabel = None, ylabel = "Count")
plt.show()
Комментарии:
1. Похоже, что вы хотите добиться того, чтобы использовать одни и те же ограничения по оси в обоих подзаголовках, что легче всего достигается путем добавления
sharey=True
plt.subplots
.
Ответ №1:
plt.ylim(ymin, ymax)
или
ax.set_ylim(ymin, ymax)
в вашем случае, вероятно axs
, вместо ax
—————редактировать—————
Я не могу попробовать ваш код, начиная с sns.distplot...
Я попробовал приведенный ниже код, однако с незначительными изменениями в том, как я создал саму фигуру. кстати, либо 9,9
или 18,18
не будет иметь никакого значения, просто мой экран недостаточно велик, чтобы видеть все, если я использую 18,18
.
fig = plt.figure(figsize=(9,9))
axs = []
for i in range(1,7):
axs.append(fig.add_subplot(3,2,i))
axs[i-1].set_ylim([0,1000])
С помощью приведенного выше кода вы просто увидите это:
Я предполагаю, что это должно решить главную проблему вашего вопроса, если я правильно его понимаю?
Комментарии:
1. Я уже использовал и то, и другое, и ничего. Но какую линию это должно было бы поставить?
2. Я отредактировал свой ответ. Код в моей правке должен быть в первой строке, заменяя
fig, axs = plt.subplots(ncols = 2, nrows = 3, figsize = (18, 18))
. Но ваш приведенный ниже код должен быть соответствующим образом отредактирован, чтобы он работал (я думаю), я не могу помочь в изменении приведенного ниже кода, так как понятия не имею оsns.distplot
Ответ №2:
Мне удалось это сделать
for ax in axs.flat:
ax.set(xlabel = None, ylabel = "Count"),
ax.set_ylim(0, 50000)