Я провожу небольшое исследование для своей работы и добавил категориальный столбец со значениями True/False, поэтому размер DataFrame увеличился вдвое.
При этом размеры графики уменьшились, несмотря ни на что, кроме изменения количества строк.
Это FacetGrid перед добавлением этого столбца
перед новым столбцомИ после...
после нового столбца
Я использую служебную функцию, которая выполняет всю стилизацию за меня, так что это фрагмент кода:
Я провожу небольшое исследование для своей работы и добавил категориальный столбец со значениями True/False, поэтому размер DataFrame увеличился вдвое. При этом размеры графики уменьшились, несмотря ни на что, кроме изменения количества строк. Это FacetGrid перед добавлением этого столбца
перед новым столбцомИ после...
после нового столбца Я использую служебную функцию, которая выполняет всю стилизацию за меня, так что это фрагмент кода: [code]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)"); [/code] Вот как определяется эта функция util [code]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 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 [/code] Я полагал, что это вызвано параметром Twin_y, но удаление этого ключевого слова не привело к каким-либо изменениям.