如何在Matplotlib中绘制指定数值的单条等高线
解决方案
仅需要修改ax.contour()方法的调用代码,给方法传入levels参数指定要绘制的等高线数值即可,参数传入仅包含0.5的列表就能仅生成目标单条等高线。
完整修改后代码
import numpy as np import matplotlib.cm as cm import matplotlib.pyplot as plt delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-2.0, 2.0, delta) X, Y = np.meshgrid(x, y) Z1 = np.exp(-X**2 - Y**2) Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) Z = (Z1 - Z2) * 2 fig, ax = plt.subplots() # 仅新增了levels参数指定等高线数值为0.5 CS = ax.contour(X, Y, Z, levels=[0.5]) ax.clabel(CS, inline=True, fontsize=10) ax.set_title('Single contour at level 0.5') plt.show()
补充说明
如果后续需要绘制多条指定数值的等高线,只需要把对应数值都加入levels列表即可,例如levels=[-1, 0, 0.5]就会同时绘制-1、0、0.5三条等高线。
内容的提问来源于stack exchange,提问作者Aim
相关产品推荐
相关产品推荐

