#matplotlib #regression #seaborn
#matplotlib #регрессия #seaborn
Вопрос:
У меня есть эти три графика рядом, однако я хочу сделать следующее: -увеличить размер графиков -немного разделить их, чтобы можно было более четко видеть ось y -см. Значения по оси y для двух графиков с правой стороны.
кто-нибудь знает, как сделать это эффективно? Спасибо
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, sharey=True)
sns.regplot(x=Dem['Price'], y=Dem['A'], color="g", ax=ax1)
sns.regplot(x=Dem['Price'], y=Dem['B'], color="b", ax=ax2)
sns.regplot(x=Dem['Price'], y=Dem['C'], color="purple", ax=ax3)
Комментарии:
1. Если я ответил на ваш вопрос, пожалуйста, примите его как решение, нажав на галочку рядом с моим решением. Пожалуйста, ознакомьтесь со следующей ссылкой, которая показывает вам изображение того, как это сделать: meta.stackexchange.com/questions/5234 /…
2. Спасибо, Дэвид. Это было именно то, что я искал.
Ответ №1:
- Вы можете использовать:
fig.set_figwidth(25)
чтобы расширить фигуру и создать пробел, передавая любое числовое значение, которое вы пожелаете, например25
. - Чтобы пометить метки по оси y для всех подзаголовков, используйте:
for ax in fig.axes: ax.tick_params(axis='y', labelleft=True)
Полный воспроизводимый пример кода с flights
набором данных seaborn:
import seaborn as sns
df = sns.load_dataset('flights')
df1 = df[df['year']==1949]
df2 = df[df['year']==1950]
df3 = df[df['year']==1951]
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, sharey=True)
#1
fig.set_figwidth(25)
sns.regplot(x=df1['year'], y=df1['passengers'], color="g", ax=ax1)
sns.regplot(x=df2['year'], y=df2['passengers'], color="b", ax=ax2)
sns.regplot(x=df3['year'], y=df3['passengers'], color="purple", ax=ax3)
#2
for ax in fig.axes:
ax.tick_params(axis='y', labelleft=True)
Ваш код:
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, sharey=True)
fig.set_figwidth(25)
sns.regplot(x=Dem['Price'], y=Dem['A'], color="g", ax=ax1)
sns.regplot(x=Dem['Price'], y=Dem['B'], color="b", ax=ax2)
sns.regplot(x=Dem['Price'], y=Dem['C'], color="purple", ax=ax3)
for ax in fig.axes:
ax.tick_params(axis='y', labelleft=True)