Seaborn – 绘制不同类型的回归(Regression)曲线

读取csv数据:

df = pd.read_csv(file_path)
print(df.info())

根据2个数组,绘制regplot,regplot是回归(regression)图像,如下:

epochs = df["epoch"].values
eval_top1 = df["eval_top1"].values
ax = sns.regplot(x=epochs, y=eval_top1, marker="+")
plt.show()

或者,直接绘制df的两个列,效果一致,如下:

ax = sns.regplot(x="epoch", y="eval_top1", data=df, marker="+")
plt.show()

输出:

Seaborn - 绘制不同类型的回归(Regression)曲线

使用2个y轴范围,将2个回归绘制到1张图,对比效果,如下:

  • regplot + twinx
  • 训练结果的第0位数值抖动,使用df[1:]忽略
ax = sns.regplot(x="epoch", y="eval_top1", data=df[1:], marker="+")
ax2 = ax.twinx()
sns.regplot(x="epoch", y="train_loss", data=df[1:], ax=ax2, marker="+", color="g")

输出:

Seaborn - 绘制不同类型的回归(Regression)曲线

如果需要颠倒(reverse)y轴坐标,使用ax.invert_yaxis()即可

ax = sns.regplot(x="epoch", y="eval_top1", data=df[1:], marker="+")
ax2 = ax.twinx()
ax2 = sns.regplot(x="epoch", y="train_loss", data=df[1:], ax=ax2, marker="+", color="g")
ax2.invert_yaxis()
plt.show()

效果:

Seaborn - 绘制不同类型的回归(Regression)曲线

需要将直线转换为曲线,增加参数order=2:

ax = sns.regplot(x="epoch", y="eval_top1", order=2, data=df[1:], marker="+")
ax2 = ax.twinx()
ax2 = sns.regplot(x="epoch", y="train_loss", order=2, data=df[1:], marker="+", ax=ax2, color="g")
plt.show()

效果:

Seaborn - 绘制不同类型的回归(Regression)曲线

最终绘制逻辑,同时支持绘制1张图和2张图:

def process_summary(csv_path, x_name="epoch", y_names=("eval_top1", "train_loss"), is_save=True):
"""
    绘制csv的数值之间的关联
    @param csv_path: csv文件
    @param x_name: x轴的名称
    @param y_names: y轴支持绘制2个
    @param is_save: 是否保存图像
    @return: 存储同名图像
"""
    df = pd.read_csv(csv_path)
    ax = sns.regplot(x=x_name, y=y_names[0], order=2, data=df[1:], marker="+")
    if len(y_names) == 2:
        ax2 = ax.twinx()
        ax2 = sns.regplot(x=x_name, y=y_names[1], order=2, data=df[1:], marker="+", ax=ax2, color="g")
    if is_save:
        plt.savefig(csv_path.replace("csv", "png"))
    plt.show()

参考:

Original: https://blog.csdn.net/u012515223/article/details/125780317
Author: SpikeKing
Title: Seaborn – 绘制不同类型的回归(Regression)曲线

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/635202/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球