也许以下方法很有趣,但并不完美?
一个变量
z2
是用for创建的
3*19*y^2-6*x>0
条件。
z2
除了靠近的地方,其他地方都会被擦除
z
。然后,它用红蓝配色图着色,红色代表正极部分,蓝色代表负极部分,白色约为0。
背景设置为黑色,轮廓颜色设置为白色,以获得足够的对比度。
请注意,两者
contour
情节与
imshow
需要
extent
设置参数以获得信息轴。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2, 2, 1000)
y = np.linspace(-1, 1, 1000)
X, Y = np.meshgrid(x, y)
z = (19) * Y ** 3 - 6 * X * Y - 1
z2 = 3 * 19 * Y ** 2 - 6 * X
z2 = np.where(np.abs(z) < 0.2, z2, np.NaN)
plt.gca().set_facecolor('black')
plt.imshow(z2, cmap='coolwarm', vmin=-1, vmax=+1, alpha=1, extent=[-2, 2, -1, 1], origin='lower')
plt.contour(z, 0, extent=[-2, 2, -1, 1], zorder=3, colors='white')
plt.show()