Добавление большего количества данных уменьшает графики фасетной сетки морского побережья?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Добавление большего количества данных уменьшает графики фасетной сетки морского побережья?

Сообщение Anonymous »

Я провожу небольшое исследование для своей работы и добавил категориальный столбец со значениями True/False, поэтому размер DataFrame увеличился вдвое.
При этом размеры графики уменьшились, несмотря ни на что, кроме изменения количества строк.
Это FacetGrid перед добавлением этого столбца

перед новым столбцомИ после...

после нового столбца
Я использую служебную функцию, которая выполняет всю стилизацию за меня, так что это фрагмент кода:

Код: Выделить всё

timeseries_rel(super_comp[super_comp['variable'] == 'ETof'], row='name', col='match_window', y='value', hue='aligned', style='match_variable',
errorbar=('pi', 50), estimator=np.median, as_percent=True, twin_y='value_old', aspect=2,
facet_kws={'sharey': 'row', 'sharex': True, 'margin_titles': True},
title_template={"col_template":"Match Window: {col_name} Days", "row_template":"{row_name}"},
title="Interquartile ETof Field Metrics w/ Old Version Reference (n=50)");
Вот как определяется эта функция util

Код: Выделить всё

def timeseries_rel(
data,
*,
y,
twin_y=None,
plot="rel",
col=None,
row=None,
hue=None,
kind="line",
refline=None,
title="",
ylabel="",
as_percent=False,
tighten=False,
errorbar=None,
export_img: bool | str = None,
title_template={},
**kwargs,
):
match plot:
case "rel":
rel = sns.relplot(
data=data,
x="forecasting_date",
y=y,
col=col,
row=row,
hue=hue,
kind=kind,
errorbar=errorbar,
**kwargs,
)
case "dis":
rel = sns.displot(
data=data, x=y, col=col, row=row, hue=hue, kind=kind, **kwargs
)
case "cat":
rel = sns.catplot(
data=data,
x="forecasting_date",
y=y,
col=col,
row=row,
hue=hue,
kind=kind,
errorbar=errorbar,
**kwargs,
)
case "lm":
rel = sns.lmplot(
data=data,
x="forecasting_date",
y=y,
col=col,
row=row,
hue=hue,
kind=kind,
errorbar=errorbar,
**kwargs,
)
case _:
raise Exception("Not a valid plot type.")

# Relabel y axis
if ylabel:
rel.set_ylabels(ylabel)
# Relabel x axis
rel.tick_params(axis="x", rotation=90)
plt.suptitle(title, y=1.02)
rel.set_titles(**title_template)

if twin_y:
for row_col, ax in rel.axes_dict.items():
bx = ax.twinx()
locator = data[(data[row] == row_col[0]) &  (data[col] == row_col[1])]
sns.lineplot(
locator,
x="forecasting_date",
y=twin_y,
estimator=np.median,
errorbar=None,
ax=bx,
color='k',
ls=':',
)
bx.tick_params(
left=False,
right=False,
labelleft=False,
labelright=False,
)
bx.set_ylabel('')
bx.set(ylim=ax.get_ylim())
bx.grid(None)

if as_percent is True:
for ax in rel.axes.flat:
ax.yaxis.set_major_formatter(mtick.PercentFormatter(1.0))

if plot != "dis":
rel.set_xlabels("Forecasting Date")
for ax in rel.axes.flat:
ax.xaxis.set_major_formatter(mdates.DateFormatter("%B"))

if tighten:
rel.figure.subplots_adjust(wspace=0, hspace=0.1)

if refline:
rel.refline(**refline)

if type(export_img) is bool and export_img is True:
rel.savefig(
fname=f"../images/{str(title)}"
)
elif type(export_img) is str:
rel.savefig(
fname=f"../images/{export_img}"
)

return rel
Я полагал, что это вызвано параметром Twin_y, но удаление этого ключевого слова не привело к каким-либо изменениям.


Подробнее здесь: https://stackoverflow.com/questions/791 ... grid-plots
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»