用python和matplotlib画双坐标系曲线

本文介绍了一种使用Matplotlib和NumPy在Python中绘制带有双Y轴的曲线图的方法,并展示了如何通过设置不同的颜色和标签来区分两条曲线,适用于展示对比实验结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 有时候写论文的时候不免会遇到画曲线图,而且还有可能需要画双坐标系(双Y轴)的曲线图,在百度中找了许久,先mark一下,以下代码就是我论文中用到的,以后应该还会用到,先保存在这里。结果图如下:

import matplotlib.pyplot as plt
import numpy as np
import scipy.io as sio

x = np.arange(0., 1000, 2, dtype=np.int32)
xx = np.arange(0., 2000, 4, dtype=np.int32)
data = sio.loadmat('C://Users//gmt//Desktop//bn.mat')
y1 = data["loss"][:1000, 0]
y2 = data["testacc"][:1000, 0]
data = sio.loadmat('C://Users//gmt//Desktop//wobn.mat')
y11 = data["loss"][:1000, 0]
y22 = data["testacc"][:1000, 0]

fig = plt.figure()

ax1 = fig.add_subplot(111)
ax1.plot(xx, y1[x], color='red', label='Loss with BN')
ax1.plot(xx, y11[x], color='green', label='Loss without BN')
ax1.set_ylabel('Cross Entropy Loss')
ax1.set_xlabel('Iterations')
ax1.set_ylim(0, 1500)
ax1.set_xlim(0, 1000)
plt.legend(loc='lower left')


ax2 = ax1.twinx()
ax2.plot(xx, y2[x], color='blue', label='Test Accuracy with BN')
ax2.plot(xx, y22[x], color='skyblue', label='Test Accuracy without BN')
ax2.set_ylabel('Testset Accuracy')
ax2.set_xlabel('Iterations')
ax2.set_ylim(0, 1)
ax2.set_xlim(0, 1000)
plt.legend(loc='upper right')
plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值