虽然 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()