【问题标题】:How to Plot Implicit Equation in Python如何在 Python 中绘制隐式方程
【发布时间】:2022-11-26 02:05:44
【问题描述】:

我想使用下面的等式在 5 个不同的 L 值下绘制 V(y 轴)与 t(x 轴)图(如下所示)

L= [5,10,15,20,25]

b=0.0032

等式,(b*V*0.277*t) - (b*L) = log(1+b*V*0.277*t)

代码输出将如图所示 Expected Outcome

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现问题。

标签: python matplotlib sympy equation implicit


【解决方案1】:

虽然 sympy 公开了 plot_implicit 函数,但结果并不理想。我们可以使用 Numpy 和 Matplotlib 来实现我们的目标。

基本思想是你的等式可以写成LHS - RHS = 0。因此,我们可以创建等高线图并选择 0 级。但等高线图使用颜色图,因此我们必须创建纯色图:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.lines import Line2D
from matplotlib.colors import ListedColormap
import numpy as np

Lvalues = [5,10,15,20,25]
bval = 0.0032

V = np.linspace(0, 1000)
t = np.linspace(0, 10)
V, t = np.meshgrid(V, t)
f = lambda V, t, b, L: b*V*0.277*t - b*L - np.log(1+b*V*0.277*t)

colors = cm.tab10.colors
handles = []
fig, ax = plt.subplots()
for L, c in zip(Lvalues, colors):
    cmap = ListedColormap([c, c])
    z = f(V, t, bval, L)
    ax.contour(t, V, z, levels=[0], cmap=cmap)
    handles.append(Line2D([], [], color=c, label="L = %s" % L))
ax.legend(handles=handles)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多