You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在非线性方程组等值线图中显示更多细节

等值线图细节放大指导

我绘制了一个非线性函数系统的等值线图,希望获取图中更多细节。我确定在标记为1的环形等值线内部还有3个岛状等值线(对应局部极小值),但不清楚如何放大图形以渲染出这些细节。我刚接触Python和Jupyter Notebook,恳请相关指导。

delta = 0.025
x = np.arange(-3, 1.0, delta)
y = np.arange(-3, 2.0, delta)
X, Y = np.meshgrid(x, y)
e1 = X*X + 2*Y*Y + np.sin(2*X)
e2 = X*X + np.cos(X+5*Y) - 1.2
Z = e1**2 + e2**2 

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z, np.array([1, 5, 10, 50, 100]))
ax.clabel(CS, inline=True, fontsize=10)

解决方法

  • 缩小绘图范围(放大目标区域):
    先定位标记1的环形等值线大致坐标区间,比如假设在x∈[-1.5, 0.5]、y∈[-1, 1],直接修改x和y的生成范围:

    x = np.arange(-1.5, 0.5, delta)
    y = np.arange(-1, 1, delta)
    

    或者在原有绘图代码末尾添加轴范围限制,无需重新生成网格:

    ax.set_xlim(-1.5, 0.5)
    ax.set_ylim(-1, 1)
    
  • 增加精细等值线层级:
    当前只绘制了Z=1及以上的等值线,内部岛状线对应更小的Z值,添加0.05、0.1、0.5这类数值即可渲染出细节:

    CS = ax.contour(X, Y, Z, np.array([0.05, 0.1, 0.5, 1, 5]))
    
  • 提高图像分辨率:
    减小delta值(比如改成0.01),生成更密集的网格,让等值线细节更清晰:

    delta = 0.01
    
  • 组合优化示例:
    把以上方法结合,直接运行下面的代码就能看到内部的3个岛状等值线:

    delta = 0.01
    x = np.arange(-1.5, 0.5, delta)
    y = np.arange(-1, 1, delta)
    X, Y = np.meshgrid(x, y)
    e1 = X*X + 2*Y*Y + np.sin(2*X)
    e2 = X*X + np.cos(X+5*Y) - 1.2
    Z = e1**2 + e2**2 
    
    fig, ax = plt.subplots()
    CS = ax.contour(X, Y, Z, np.array([0.05, 0.1, 0.5, 1, 5]))
    ax.clabel(CS, inline=True, fontsize=10)
    plt.show()
    

内容的提问来源于stack exchange,提问作者blov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:57:34