matplotlib的使用——contour等高线的绘制

等高线绘制常用函数

plt.contourf()

该函数用于定义等高线图两条线之间的填充物。
应用方法如下:

# 调用等高线的填充物
plt.contourf(X,Y,f_x_y,8,alpha = 0.5,cmap = plt.cm.hot)

其中,X,Y分别代表网格化后的x,y坐标;f_x_y对于等高线而言,其代表了高度;8代表等高线要分为10块(输入0时等高线分为2块);alpha代表每个填充物的透明度;cmap代表填充的色调,这里选择hot热烈的色调,其可选择的内容可以参考https://matplotlib.org/examples/color/colormaps_reference.html。
其调用结果为:

在这里插入图片描述

plt.contour()

该函数用于定义等高线中的线。
应用方法如下:

# 定义等高线的线的颜色,宽度
C = plt.contour(X,Y,f_x_y,8,colors='black',linewidth = 5)

其中,X,Y分别代表网格化后的x,y坐标;f_x_y对于等高线而言,其代表了高度;8代表等高线要分为10块(输入0时等高线分为2块);colors代表线的颜色;linewidth代表线的宽度。
在这里插入图片描述

plt.clabel()

该函数用于定义等高线中的标签。
应用方法如下:

# clabel用于定义等高线的标签
plt.clabel(C,inline = True,fontsize = 10)

其中,C代表需要添加标签的线;inline代表标签添加的位置,当其为True时是上面那副等高线图的效果,当其为False时,线会穿过数字;fontsize代表标签大小。下图为inline = False时的效果。
在这里插入图片描述
下图为inline = True时的效果:
在这里插入图片描述

应用示例

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-1,1,50)
y = np.linspace(-1,1,50)
# x、y的网格化
X,Y = np.meshgrid(x,y)

# 计算f(x,y)的值,对于等高线而言,其代表了高度
f_x_y = -(X**4+Y**3-2*X)*np.sin(X)

# 调用等高线的填充物
plt.contourf(X,Y,f_x_y,8,alpha = 0.5,cmap = plt.cm.hot)

# 定义等高线的线的颜色,宽度
C = plt.contour(X,Y,f_x_y,8,colors='black',linewidth = 5)

# clabel用于定义等高线的标签
plt.clabel(C,inline = True,fontsize = 10)

plt.xticks(())
plt.yticks(())
plt.show() 


posted @ 2021-12-13 10:53  wuyuan2011woaini  阅读(908)  评论(0编辑  收藏  举报