Python:matplotlib绘制等高线

我们经常在二维图上用等高线来表示三维数据,Matplotlib提供了三个函数来实现这一功能:

plt.contour: 绘制等高线

plt.contourf: 绘制带有填充色的等高线

plt.imshow: 显示图形

contour函数需要三个基本参数:x、y、z轴三个坐标轴的网格数据。x与y轴表示图形中的位置,而z轴通过等高线的等级来表示。

当图形中只使用一种颜色的时候,会使用虚线来表示负数,实线表示正数。

我们可以将数据范围等分,比如10份,然后设置camp参数定义一个线条颜色的配色方案,用不同的颜色表示等高线。

plt.contour(X, Y, Z, cmap='RdGy')

plt.colorbar()


RdGy是红-灰配色方案(Red-Gray)。Matplotlib有很多配色方案可选,都在plt.cm模块里,使用plt.cm.<tab>可以查看有哪些方案。

上面的图形里,线条之间的间隙比较大,可以通过contourf方法进行填充(注意方法名多了个f):

plt.contourf(X, Y, Z, cmap='RdGy')

plt.colorbar()

我们还可以通过imshow方法,将二维数组渲染成渐变图:

imshow不支持使用x和y轴的数据设置网格,必须通过extend参数设置图形的坐标范围xmin、xmax,ymin、ymax

imshow默认使用标准的图形数组定义,原点位于左上角,类似浏览器。而不是绝大多数等高线的左下角

imshow会自动调整坐标轴的精度以适应数据显示。可以通过plt.axis(aspect='image')来设置x与y轴的单位。

最后,我们还可以使用clabel方法,将一幅背景半透明的彩色图与另一幅坐标相同、带数据标签的等高线叠放在一起,画出相当高端的图形:


现在你或许会有感悟,绘图画到最后,缺少的不是工具,而是创意灵感。

猜你喜欢

转载自blog.csdn.net/qq_40925239/article/details/88930239
今日推荐