仅沿确定的轴在网格表面上绘制曲线
Plotting a curve on the mesh surface along only a determined axis
我是 Python 的新手,正在尝试在曲面上绘制一条曲线。
这是我到目前为止在 s 域中绘制曲面的地方:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cmath
x = np.linspace(-400, 0, 100)
y = np.linspace(-100, 100, 100)
X, Y = np.meshgrid(x,y)
fc=50
wc=2*np.pi*fc
s = X + Y*1j
Z= abs(1/(1+s/wc))
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z)
ax.plot(X, Y, Z)
plt.ylabel('Im')
plt.show()
我现在需要用不同的颜色绘制 X = 0 的曲线,这意味着同一曲面上沿虚轴的曲线。 surf = ax.plot_surface(0, Y, Z) 无效。有没有人有过这样的情节?
我假设你的意思是你想绘制 y=0 而不是 x=0(因为 x=0 会很无聊)。
由于您想绘制单个数据切片,因此不能使用 meshgrid 格式(或者如果可以,它需要一些我不想弄清楚的奇怪索引)。
下面是我绘制 y=0 切片的方法:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cmath
x = np.linspace(-400, 0, 100)
y = np.linspace(-100, 100, 100)
X, Y = np.meshgrid(x,y)
fc=50
wc=2*np.pi*fc
s = X + Y*1j
Z= abs(1/(1+s/wc))
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z)
# create data for y=0
z = abs(1/(1+x/wc))
ax.plot(x,np.zeros(np.shape(x)),z)
plt.ylabel('Im')
plt.show()
我是 Python 的新手,正在尝试在曲面上绘制一条曲线。
这是我到目前为止在 s 域中绘制曲面的地方:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cmath
x = np.linspace(-400, 0, 100)
y = np.linspace(-100, 100, 100)
X, Y = np.meshgrid(x,y)
fc=50
wc=2*np.pi*fc
s = X + Y*1j
Z= abs(1/(1+s/wc))
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z)
ax.plot(X, Y, Z)
plt.ylabel('Im')
plt.show()
我现在需要用不同的颜色绘制 X = 0 的曲线,这意味着同一曲面上沿虚轴的曲线。 surf = ax.plot_surface(0, Y, Z) 无效。有没有人有过这样的情节?
我假设你的意思是你想绘制 y=0 而不是 x=0(因为 x=0 会很无聊)。
由于您想绘制单个数据切片,因此不能使用 meshgrid 格式(或者如果可以,它需要一些我不想弄清楚的奇怪索引)。
下面是我绘制 y=0 切片的方法:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cmath
x = np.linspace(-400, 0, 100)
y = np.linspace(-100, 100, 100)
X, Y = np.meshgrid(x,y)
fc=50
wc=2*np.pi*fc
s = X + Y*1j
Z= abs(1/(1+s/wc))
fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X, Y, Z)
# create data for y=0
z = abs(1/(1+x/wc))
ax.plot(x,np.zeros(np.shape(x)),z)
plt.ylabel('Im')
plt.show()