Matplotlib/Seaborn:自 3.3 起不推荐将非整数作为三元素位置规范传递
Matplotlib/Seaborn: Passing non-integers as three-element position specification is deprecated since 3.3
我不明白这条错误信息:
MatplotlibDeprecationWarning: Passing non-integers as three-element position specification is deprecated since 3.3 and will be removed two minor releases later.
你能给我一个提示吗?
仅供参考,我的(不可执行)代码如下
import seaborn as sns
import matplotlib.pyplot as plt
for p in ps:
p_metrics = output_metrics.loc[output_metrics["p"] == p, :]
g = sns.relplot(x="k", y="metric_value", col="metric_name", hue="ref/eval", style="ref/eval",
col_wrap=np.ceil(np.sqrt(len(metrics))), palette="muted", kind="line",
dashes=False, legend="full", facet_kws={"sharex": False, "sharey": False},
data=p_metrics, markers=self.filled_markers)
g.savefig(f"plot_cat1_p={p}.png")
if show:
plt.show()
我认为问题在于 col_wrap=
期待一个 int
而你正在传递一个 float
,尝试将其转换为 int:col_wrap=int(np.ceil(np.sqrt(len(metrics))))
我不明白这条错误信息:
MatplotlibDeprecationWarning: Passing non-integers as three-element position specification is deprecated since 3.3 and will be removed two minor releases later.
你能给我一个提示吗?
仅供参考,我的(不可执行)代码如下
import seaborn as sns
import matplotlib.pyplot as plt
for p in ps:
p_metrics = output_metrics.loc[output_metrics["p"] == p, :]
g = sns.relplot(x="k", y="metric_value", col="metric_name", hue="ref/eval", style="ref/eval",
col_wrap=np.ceil(np.sqrt(len(metrics))), palette="muted", kind="line",
dashes=False, legend="full", facet_kws={"sharex": False, "sharey": False},
data=p_metrics, markers=self.filled_markers)
g.savefig(f"plot_cat1_p={p}.png")
if show:
plt.show()
我认为问题在于 col_wrap=
期待一个 int
而你正在传递一个 float
,尝试将其转换为 int:col_wrap=int(np.ceil(np.sqrt(len(metrics))))