【发布时间】:2022-01-05 13:13:34
【问题描述】:
我需要等高线绘制一个巨大的表达式:
I = 1j # imaginary unit
Psi = (0.1743261076e-2-0.1743261076e-2*I)*sin(x)*((1.318639968*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*sin(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))*y-(.6752336213*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))*y-1.*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*exp((0.7071067812e-1*I)*cos(x)+1.414213562+.7071067812*I+0.7071067812e-1*cos(x))-(3.887320974*I)*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*sin(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))-(3.321756325*I)*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*cos(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))+cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*exp(-(0.7071067812e-1*I)*cos(x)-.7071067812*I-0.7071067812e-1*cos(x))+(4.022439224*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cos(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))*y+(4.178862074*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))*y-(2.366831780*I)*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))-(2.022482447*I)*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))-(.6752336213*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))+(4.022439224*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cos(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))+(4.178862074*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))+(1.318639968*I)*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*sin(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))-4.022439224*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))*y+1.318639968*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))*y-4.178862074*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*sin(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))*y-.6752336213*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cos(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))*y-4.178862074*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*sin(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))-.6752336213*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cos(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))+1.318639968*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))-4.022439224*cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))+2.022482447*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*sin(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))-3.887320974*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))-2.366831780*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*cos(0.7071067812e-1*cos(x))*sinh(0.7071067812e-1*cos(x))+3.321756325*sinh(.7071067812*y+(.7071067812*I)*y-0.7071067812e-1*cos(x)-(0.7071067812e-1*I)*cos(x))*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x)))/(cosh((0.7071067812e-1+0.7071067812e-1*I)*(10.+cos(x)))*(.9583581328*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))-.8189270221*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))+(.8189270221*I)*sinh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))+(.9583581328*I)*sinh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))+.5835053242*sinh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))-.4986113867*sinh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))+(.4986113867*I)*cosh(0.7071067812e-1*cos(x))*cos(0.7071067812e-1*cos(x))+(.5835053242*I)*cosh(0.7071067812e-1*cos(x))*sin(0.7071067812e-1*cos(x))))
这在这里不太相关。
通常任务是微不足道的,可以这样完成:
import numpy as np
from numpy import sqrt, cos, sin, sinh, cosh
import matplotlib
from matplotlib import pyplot as plt
delta = 0.025
X = np.arange(0, 6, delta)
Y = np.arange(-1, 0.2, delta)
x, y = np.meshgrid(X, Y)
# AA = that huge expression
fig, ax = plt.subplots()
plt.xlabel(r'x')
plt.ylabel(r'y')
CS = ax.contour(x, y, AA.real)
ax.clabel(CS, inline=True, fontsize=10)
plt.show()
没关系,但我有一个无法处理的问题。
问题是我需要假设我的 y 不是一个简单的数组并且上限是可变的并且必须服从来绘制它
y = 0.1 cos(x).
So, x=0..6 and y = 0.1 cos(x)
在这种情况下,结果必须是
我不知道如何实现这一点。那么,如何绘制具有可变上限的等高线图?我希望我把我的问题说清楚了。
任何帮助将不胜感激!
非常感谢您!
【问题讨论】:
标签: python numpy matplotlib data-visualization contour