matplotlib 从非线性方程图中看到更多细节[复制]

23c0lvtd  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

此问题在此处已有答案

Adding extra contour lines using 2D contour plotting(1个答案)
7天前关闭。
我有一个非线性函数系统的等值线图,我试图在图中获得更多的细节。我确信在iscontour(环)内有3个iscontour(岛状)标记为1。这些将是局部最小值。我不太明白如何进一步放大图形,让它们在图中呈现。
对python和xmlyter 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)

字符串
Current output

6uxekuva

6uxekuva1#

好吧,如果你知道在值为1的轮廓内有三个最小值,那么你可以给予更小的值给levels参数来查看它们:

import matplotlib.pyplot as plt                                                                                       
import numpy as np                                                                                                    
                                                                                                                      
                                                                                                                      
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 # ensure's its positive                                                                             
                                                                                                                      
fig, ax = plt.subplots()                                                                                              
CS = ax.contour(X, Y, Z, np.array([0.1, 1, 5, 10, 50, 100]))                                                          
ax.clabel(CS, inline=True, fontsize=10)                                                                               
ax.set_xlim(-3, 1)                                                                                                    
ax.set_ylim(-2, 1)                                                                                                    
plt.show()

字符串


的数据
你也可以像我上面所做的那样,通过使用xlimylim来修改轴的居中:如果你把盒子变小,三个最小值会更明显。


相关问题