我正在尝试使用 Python 创建一个圆柱形 3D 曲面图,其中我的自变量是 z
和 theta
,因变量是 radius
(即,radius
是垂直位置和方位角的函数)。到目前为止,我只能找到创建 3D 表面图的方法:
我希望将 r
作为 z
和 theta
的函数,因为我的函数会产生一个形状,在任何给定的高度,都是 theta
的复杂函数。最重要的是,我需要曲面图能够具有(但不一定必须具有,具体取决于函数的属性)顶部或底部敞开。例如,如果 r
从 z = 0
到 z = 1
(一个完美的圆柱体)是常数,我想要一个曲面图仅由圆柱体的侧面组成,不包括顶部或底部。该图应该看起来像一个空心壳。
我已经定义了函数 r
。
感谢您的帮助!
显然,经过一些尝试和错误后,在这种情况下最好/最简单的事情就是只转换 r
、theta
和 z
数据点(定义为二维数组,就像 x,y,z
绘图一样)转换为笛卡尔坐标:
# convert to rectangular
x = r*numpy.cos(theta)
y = r*numpy.sin(theta)
z = z
新的 x,y,z
数组可以像从 z
的多项式生成的任何其他 x,y,z
数组一样绘制> 是 x,y
的函数。我原本以为数据点会因为重叠的 z
值而搞砸,或者相邻的数据点可能无法正确连接,但显然事实并非如此。
我是一名优秀的程序员,十分优秀!