发布网友 发布时间:2022-04-25 12:51
共1个回答
热心网友 时间:2023-12-31 14:16
#导入模块
import numpy as np
import matplotlib.pyplot as plt
#建立步长为0.01,即每隔0.01取一个点
step = 0.01
x = np.arange(-10,10,step)
y = np.arange(-10,10,step)
#也可以用x = np.linspace(-10,10,100)表示从-10到10,分100份
#将原始数据变成网格数据形式
X,Y = np.meshgrid(x,y)
#写入函数,z是大写
Z = X**2+Y**2
#填充颜色,f即filled
plt.contourf(X,Y,Z)
#画等高线
contour = plt.contour(X,Y,Z)
#平行于坐标系的参考线
plt.axhline(y=2.5,c='red',ls='--',lw=3)
plt.axvline(x=2,c='green',ls='--',lw=3)
#等高线上标明z(即高度)的值,默认是保留3个小数,可以如下保留四位
plt.clabel(contour,fontsize=10,colors=('k','r'),fmt='%.2f')
plt.show()
差不多就这样吧,有问题的话再留言吧
追问您好,谢谢您的回复。如果不用contour函数画图,而是用下边修改后的代码实现的话,怎么在图中作出Z等于某个值的参考线或者点区域。追答恕我*为力,我帮你看了几次了,只不过没找到合适的方法。我一开始是想着能不能直接用Z=100,然后用imshow直接画出X,Y,但事实证明不行,然后我又想着用scatter按步进描点画圆,但这也不行,因为这个是三维的图,scatter是描二维的点,但我也知道了这个是三维的图,只是它这个参考面用颜色深浅来表示第三维,所以我感觉如果也用imshow做参考面的话不太现实。你可以想想别的方法。另外就是,其实要做参考线的话,用contour画图就ok了呢,没比要一定要用imshow