在 Python 中绘制 3D 圆柱曲面图

Plotting a 3D Cylindrical Surface plot in Python

我正在尝试使用 Python 创建圆柱形 3D 曲面图,其中我的自变量是 ztheta,因变量是 radius(即,radius 是垂直位置和方位角的函数)。 到目前为止,我只能找到创建 3D 表面图的方法:

我想要 r 作为 z theta 的函数,因为我的函数会产生一个形状,在任何给定高度,将是 theta 的复函数。 最重要的是,我需要曲面图能够具有(但 而不是 是否必须具有,具体取决于函数的属性)一个开放的顶部或底部。例如,如果 rz = 0z = 1 (一个完美的圆柱体)是常数,我想要一个只包含圆柱体侧面的曲面图,而不是顶部或底部。该图应该看起来像一个空心的 shell.

我已经定义了函数r

感谢您的帮助!

显然,经过一些试验和错误后,best/easiest 在这种情况下要做的事情就是转换 rthetaz 数据点(定义为二维数组,就像 x,y,z 绘图一样)转换为笛卡尔坐标:

# convert to rectangular
x = r*numpy.cos(theta)
y = r*numpy.sin(theta)
z = z

新的 x,y,z 数组可以像从多项式生成的任何其他 x,y,z 数组一样绘制,其中 zx,y 的函数。我原本以为数据点会因为 z 值重叠而搞砸,或者相邻的数据点可能无法正确连接,但显然事实并非如此。