plt绘图与Axes绘图

使用matplotlib.pyplot(plt)进行绘图时,有两种方法:

直接使用plt里的函数
使用面向对象的方法,先产生一个Axes对象,再对此对象进行操作,实现绘图

第二种方法可以实现更多操作,具有更好的定制性,基于此方法绘图时,需要理解以下概念:

Figure:画布,Axes容器;
Axes:坐标系,绘图的区域,绘图总是在坐标系上进行;
Axis:坐标轴,x轴或y轴。

使用plt绘图

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

x = np.arange(-2*np.pi, 2*np.pi, 0.01)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure(figsize=(10, 7))
plt.plot(x, y1, label='$sinx$')
plt.plot(x, y2, label='$cosx$')
plt.legend(loc='upper right')
plt.xlim(-2*np.pi-1, 2*np.pi+3)
plt.xticks([-2*np.pi, -np.pi, 0, np.pi, 2*np.pi], ['$-2\pi$', '$-\pi$', '$0$', '$\pi$', '$2\pi$'])
plt.title('三角-函数')
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.axhline(y=0, c='black')

plt.show()

使用Axes绘图

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题

x = np.arange(-2*np.pi, 2*np.pi, 0.01)
y1 = np.sin(x)
y2 = np.cos(x)

fig = plt.figure(figsize=(10, 5))
ax1, ax2 = fig.subplots(1, 2)
# 上面两行代码可以合并为一行,如下
# fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
ax1.plot(x, y1, label='$sinx$')
ax1.plot(x, y2, label='$cosx$')
ax1.legend(loc='upper right')
ax1.set_xlim(-2 * np.pi - 1, 2 * np.pi + 3)
ax1.set_xticks([-2 * np.pi, -np.pi, 0, np.pi, 2 * np.pi])
ax1.set_xticklabels(['$-2\pi$', '$-\pi$', '$0$', '$\pi$', '$2\pi$'])
ax1.set_title('三角-函数')
ax1.set_xlabel('横坐标')
ax1.set_ylabel('纵坐标')
ax1.axhline(y=0, c='black')
ax1.axvline(x=0, c='black')

# 绘制矩阵灰度图
# 这里的matshow也可以换做imshow, 效果一样
# matshow只能绘制矩阵, imshow可以绘制矩阵(2维) RGB(3维) RGBA(4维图片)图像
ax2.matshow(np.random.randint(0, 255, (12, 12)), vmin=0, vmax=255, cmap='gray')
ax1.set_xticks([])
ax1.set_yticks([])
ax1.set_title("mat show")

# 设置父标题(画布标题)
fig.suptitle("Axes绘图示例")

plt.show()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值