如何在python中绘制隐式函数?

时间:2013-11-22 20:42:29

标签: python matplotlib plot contour

我有一个双变量函数

Z = m_1 m_2 / pow(m_1 + m_2, 2)

我想在Z平面(轮廓)中为m_1 - m_2绘制具有常量值的曲线。例如,Z=0.10, 0.15, 0.20, 0.25。通过matplotlib在python中完成这项工作最简单的方法是什么?以下是我尝试过但它并不是我想要的。我期待不同的结果。我需要确定这是否正确。

def etta(m_1, m_2):
    return m_1*m_2 / pow(m_1 + m_2, 2)

m_1 = linspace(4, 14, 100)
m_2 = linspace(4, 14, 100)

X,Y = meshgrid(m_1, m_2)

Z = etta(X, Y).T

print(sqrt(2))

fig, ax = plt.subplots()
cnt = contour(Z, cmap=cm.RdBu)

plt.show()

1 个答案:

答案 0 :(得分:2)

也许这就是你想要的:

V = [0.10, 0.15, 0.20, 0.25]
cnt = plt.contour(X, Y, Z, V, cmap=cm.RdBu)

将以V给出的值绘制线条。但问题是,您提供的值大多数不会显示在XY给出的域中。您可以通过查看imshow的完整功能来看到这一点:

plt.imshow(Z, extent=(X.min(), X.max(), Y.min(), Y.max()), origin='lower', cmap=cm.RdBu)

imshow

contour

增加V中的值以查看更多行:

V = np.linspace(.1, .3, 25)
plt.contour(X,Y,Z,V, cmap=cm.RdBu)

enter image description here