介绍Python中的plt.contour函数
作为本际云服务器推荐网的小编小本本,今天为大家介绍一下关于Python做图基本操作中的plt.contour函数,它是用来画等值线的函数公式。

使用示例
在Python中,导入numpy和matplotlib.pyplot库,生成连续数据。利用meshgrid函数生成能够在坐标系中形成点阵的数组,然后将高度设置为x^2+y^2,就能画出一个圆形的等高线。最后再画出等高线图,使其显示在坐标系中。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 50)
y = np.linspace(-3, 3, 50)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2 # 将高度设置为x^2+y^2,就能画一个圆形的等高线
C = plt.contour(x, y, Z, [2, 5, 8, 10]) # 画等高线
plt.clabel(C, inline=True, fontsize=10) # 为等高线标注添加文本信息
plt.show() # 显示图片
plt.contour函数公式说明
plt.contour的函数公式如下:
plt.contour(X, Y, Z, [levels], **kwargs)
X, Y表示是经纬坐标,Z意味着每一个座标相对应的相对高度值(指定为字符数组),levels是一个二维数组,构成包含相对高度值的等值线(直接传入整数则表示要制作的等值线数量)。
图片中的座标说明
座标代表图片在平面图角度下所展现出的信息,相对高度需要用等高线图来表示。使用pyplot库很容易生成3D模型,以更好的形象化展示数据信息。
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
x=np.linspace(-3,3,50)
y=np.linspace(-3,3,50)
X,Y=np.meshgrid(x,y)
Z=X**2+Y**2
C=plt.contour(x,y,Z,[2,5,8,10])
plt.clabel(C,inline=True,fontsize=10)
fig=plt.figure()
fig=plt.figure(figsize=(10,10))
ax1=plt.axes(projection='3d')
ax1.scatter3D(X,Y,z,cmap='Blues')
plt.contour等高线绘制
利用height函数生成一个二维的高度信息数组,然后将该数组传入contour和contourf函数,分别绘制黑色等高线和填充颜色(按高度分为10层)的等高线。
import numpy as np
import matplotlib.pyplot as plt
def height(x, y):
return (1 - x / 2 + x**5 + y**3) * np.exp(-x**2 - y**2)
# 生成连续数据
x = np.linspace(-3, 3, 300)
y = np.linspace(-3, 3, 300)
X, Y = np.meshgrid(x, y)
# 为等高线填充颜色
plt.contourf(X, Y, height(X,Y), 10, alpha=0.75, cmap=plt.cm.hot)
C = plt.contour(X, Y, height(X,Y), 10, colors='black')
plt.clabel(C, inline=True, fontsize=10)
plt.show() # 显示图片
通过本文所介绍的方法,可以使用Python中的plt.contour函数来快速地绘制出各种等高线图。希望本篇文章能够给大家带来一定的帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6905.html
