我需要繪制一個巨大的運算式,即:
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)
在這種情況下,結果必須是

我不知道如何實作這一點。那么,如何繪制具有可變上限的輪廓圖?我希望我說清楚我的問題。
任何幫助將不勝感激!
非常感謝您提前!
uj5u.com熱心網友回復:
AA在您的情況下,您可以使用屏蔽陣列來屏蔽滿足特定條件的值y > 0.1*cos(x)。
所以,AA你可以得到:
AA_masked = np.ma.array(AA.real, mask = (y > 0.1*cos(x)))
然后你可以繪制它:
CS = ax.contour(x, y, AA_masked.real)
ax.clabel(CS, inline=True, fontsize=10)

作為檢查,您還可以繪制特定閾值:
x_threshold = np.linspace(0, 6, 1000)
y_threshold = 0.1*np.cos(x_threshold)
ax.plot(x_threshold, y_threshold, linestyle = '--', color = 'red')

完整代碼
import numpy as np
from numpy import sqrt, cos, sin, sinh, cosh, exp
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)
I = 1j # imaginary unit
AA = (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))))
fig, ax = plt.subplots()
AA_masked = np.ma.array(AA.real, mask = (y > 0.1*cos(x)))
CS = ax.contour(x, y, AA_masked.real)
ax.clabel(CS, inline=True, fontsize=10)
x_threshold = np.linspace(0, 6, 1000)
y_threshold = 0.1*np.cos(x_threshold)
ax.plot(x_threshold, y_threshold, linestyle = '--', color = 'red')
ax.set_xlabel(r'x')
ax.set_ylabel(r'y')
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/369822.html
標籤:Python 麻木的 matplotlib 数据可视化 轮廓
