python中matplotlib的使用(三)

一些其他的图形

1)、灰度图

def f(x_, y_): 
    return (1 - x_ / 2 + x_ ** 5 + y_ ** 3) * np.exp(-x_ ** 2 - y_ ** 2)
n = 5
x = np.linspace(-2, 3, 3 * n)
y = np.linspace(-2, 3, 2 * n)
X, Y = np.meshgrid(x, y)
plt.imshow(f(X, Y))
plt.show()

其中meshgrid()是生成网格的。
效果如下:
在这里插入图片描述

2)、3D图(plot_surface)

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2  + Y ** 2)
Z = np.cos(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='hot')
plt.show()
  • rstride是在x向的条纹间隔,1个x向的间隔0.25,默认值为1。
  • cstride是在y向的条纹间隔,1个y向的间隔0.25,默认值为1。

效果如下:
在这里插入图片描述

3)、量场图(quiver)

n = 10
X, Y = np.mgrid[0:n, 0:n]
plt.quiver(X, Y,color = 'R')
plt.show()

np.mgrid()生成2D,3D的矩阵:行数由np.mgrid第一个参数决定,列数由np.mgrid第一个参数决定,利用广播机制填充。

效果如下:
在这里插入图片描述

4)、等高线(contourf、contour)

def f(x_, y_):
    return (1 - x_ / 2 + x_ ** 5 + y_ ** 3) * np.exp(-x_ ** 2 - y_ ** 2)


n = 256
x = np.linspace(-1, 3, n)
y = np.linspace(-1, 3, n)
X, Y = np.meshgrid(x, y)

plt.contourf(X, Y, f(X, Y), 4, alpha=.75, cmap='jet')
plt.contour(X, Y, f(X, Y), 4, colors='black', linewidth=.5)
plt.show()
coutour([X, Y,] Z,[levels], **kwargs)
  • contourf绘制填充轮廓:
参数介绍
X,Y类似数组,可选
Z类似矩阵,绘制轮廓的高度值
levelsint或类似数组,可选,确定轮廓线/区域的数量和位置
aalphafloat ,可选,alpha混合值,介于0(透明)和1(不透明)之间
cmapstr或colormap ,可选
Colormap用于将数据值(浮点数)从间隔转换为相应Colormap表示的RGBA颜色,用于将数据缩放到间隔中看

PS:
当 X,Y,Z 都是 2 维数组时,它们的形状必须相同。如果都是 1 维数组时,len(X)是 Z 的列数,而 len(Y) 是 Z 中的行数。

  • contour绘制轮廓线,参数同上。

效果如下:
在这里插入图片描述

代码参考:

https://github.com/ZhangJiangtao-0108/pythonmatplotlib_example.py文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值