使用matplotlib画折线图

使用matplotlib画折线图

下面的是使用Python,matplotlib包画折线图的例子,里面有包含子图,坐标轴调整,标签位置调整在内的所有样例,以及注释,以供大家参看.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

df_loss_arm = pd.read_csv("./result/loss_arm.csv", header=None)
df_loss_arm = df_loss_arm.reset_index()
df_loss_arm = df_loss_arm.rename(columns={"index": "epoch", 0: "loss"})
df_acc_arm = pd.read_csv("./result/acc_arm.csv", header=None)
df_acc_arm = df_acc_arm.reset_index()
df_acc_arm = df_acc_arm.rename(columns={"index": "epoch", 0: "accuracy"})
df_result_arm = pd.merge(df_loss_arm, df_acc_arm, "inner", "epoch")
"""
   epoch      loss  accuracy
0      0  1.598689  0.100060
1      1  1.022335  0.229167
2      2  0.745279  0.225962
3      3  0.771946  0.404247
4      4  0.627058  0.567007
"""

df_loss_x86 = pd.read_csv("./result/loss_x86.csv", header=None)
df_loss_x86 = df_loss_x86.reset_index()
df_loss_x86 = df_loss_x86.rename(columns={"index": "epoch", 0: "loss"})
df_acc_x86 = pd.read_csv("./result/acc_x86.csv", header=None)
df_acc_x86 = df_acc_x86.reset_index()
df_acc_x86 = df_acc_x86.rename(columns={"index": "epoch", 0: "accuracy"})
df_result_x86 = pd.merge(df_loss_x86, df_acc_x86, "inner", "epoch")

# 统一定义两幅图标题的字体样式
title_font = {'weight': 'bold', 'style': 'normal', 'size': 16}
# 定义子图,2行1列
fig, axs = plt.subplots(nrows=2, ncols=1, figsize=(9, 12), dpi=300)

# 设置图一的参数
axs[0].set_title("ResNet Training Loss Curve", color="b", font=title_font)
axs[0].plot(df_result_arm["epoch"], df_result_arm["loss"], "r", label="Ascend910")
axs[0].plot(df_result_x86["epoch"], df_result_x86["loss"], "g", label="Tesla V100")
# 设置x轴的范围0-100
axs[0].set_xlim(0, 100)
# 调整x轴的刻度
# axs[0].set_xticks(np.linspace(0, 100, 11))
# 设置单位刻度为5
x_major_locator = MultipleLocator(5)
axs[0].xaxis.set_major_locator(x_major_locator)
axs[0].set_ylim(0., 2.)
axs[0].set_yticks(np.linspace(0, 2, 9))
axs[0].set_xlabel("Epoch")
axs[0].set_ylabel("Loss")
# 设置曲线说明标签的放置位置为右上角
axs[0].legend(loc="upper left")
# 设置网格机器样式
axs[0].grid(True, linestyle='--', alpha=0.5)


axs[1].set_title("ResNet Training Accuracy Curve", color="b", font=title_font)
axs[1].plot(df_result_arm["epoch"], df_result_arm["accuracy"], "r", label="Ascend910")
axs[1].plot(df_result_x86["epoch"], df_result_x86["accuracy"], "g", label="Tesla V100")
axs[1].set_xlim(0, 100)
# axs[1].set_xticks(np.linspace(0, 100, 11))
x_major_locator = MultipleLocator(5)
axs[1].xaxis.set_major_locator(x_major_locator)
axs[1].set_ylim(0, 1)
axs[1].set_yticks(np.linspace(0, 1, 11))
axs[1].set_xlabel("Accuracy")
axs[1].set_ylabel("Loss")
axs[1].legend(loc="upper left")
axs[1].grid(True, linestyle='--', alpha=0.5)

plt.show()

最后是输出的效果.
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值