首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bokeh中绘制参数化三维曲面

如何在bokeh中绘制参数化三维曲面
EN

Stack Overflow用户
提问于 2019-05-08 08:53:50
回答 1查看 998关注 0票数 1

我想用bokeh绘制三维曲面。我注意到我可以画像z= f(x,y)这样的曲面,但是我不能画参数曲面,比如f(x,y,z) = 0。其中后者可以是封闭的表面。谢谢你的帮助。下面是链接的例子。我在这里包括了我在示例中所做的更改,而不是整个代码。

代码语言:javascript
复制
# parametric torus as an example in which the equation for the surface can be rephrased to be like f(x,y,z) = 0
angle = np.linspace(0, 2. * np.pi, 30)
theta, phi = np.meshgrid(angle, angle)
r, R = .25, 1.
xx = (R + r * np.cos(phi)) * np.cos(theta)
yy = (R + r * np.cos(phi)) * np.sin(theta)
xx = xx.ravel()
yy = yy.ravel()
value = r * np.sin(phi)
value = value.ravel()

# here is the original example which draw a surface like Z = f(x,y)
"""
x = np.arange(0, 300, 10)
y = np.arange(0, 300, 10)
xx, yy = np.meshgrid(x, y)
xx = xx.ravel()
yy = yy.ravel()
value = np.sin(xx / 50) * np.cos(yy / 50) * 50 + 50
"""

source = ColumnDataSource(data=dict(x=xx, y=yy, z=value))

surface = Surface3d(x="x", y="y", z="z", data_source=source)

show(surface)
EN

回答 1

Stack Overflow用户

发布于 2019-05-09 05:21:14

首先,必须明确说明: Bokeh没有任何内置的3d功能,3d绘图也不是项目的优先事项。您所链接的示例首先是一个如何扩展Bokeh以集成第三方JavaScript库的示例。偶然的是,库选择的例子是vis.js Graph3d库。这是一个相当简单的3d库,据我所知,参数曲面完全超出了它的能力。要渲染这类曲面,需要创建自己的新自定义Bokeh扩展,它封装了一个更复杂的3d JavaScript库(例如three.js、vtk.js等)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56036958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档