仅沿确定的轴在网格表面上绘制曲线

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