首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Ploty (Python)绘制三维曲面图是拉伸/变形的

用Ploty (Python)绘制三维曲面图是拉伸/变形的
EN

Stack Overflow用户
提问于 2022-05-30 15:26:34
回答 1查看 96关注 0票数 0

我在Plotly中绘制一个二维函数。我正在经历情节被拉得很高的感觉。(见下图)。在布局中,我已经更改了高度和宽度的值,但对其没有影响。

这是我的代码:

代码语言:javascript
运行
复制
import plotly.graph_objects as go
import numpy as np


x_test_d1 = np.linspace(-4,4,100)
x_test_d2 = np.linspace(-3,3,100)


grid_d1, grid_d2 = np.meshgrid(x_test_d1,x_test_d2)

z = 1.5*np.sin(grid_d1) - 0.1*(grid_d1-3)**2 +10 - 0.5*(grid_d2**2-2) + np.sin(grid_d2)*2


fig = go.Figure(data=[go.Surface(x=grid_d1, y=grid_d2, z=z)])
fig.update_layout(margin=dict(l=20, r=20, t=20, b=20),
    width=800, height=400)

fig.show()

这就是由此得出的数字:

(谢谢你的帮助!)

EN

回答 1

Stack Overflow用户

发布于 2022-05-30 16:03:41

根据文档,您可以找到这里

宽度 代码: fig.update_layout(width=) 类型:大于或等于10的数字 违约: 700 设置地块的宽度(以px为单位)。

在某种程度上,设置webview/window绘图的大小,但不影响绘图的大小。

经过一番挖掘,我找到了解决方案,您可能会感兴趣,这里

代码语言:javascript
运行
复制
fig.update_layout(scene_aspectmode='cube')

完整的片段如下所示:

代码语言:javascript
运行
复制
import plotly.graph_objects as go
import numpy as np


x_test_d1 = np.linspace(-4, 4, 100)
x_test_d2 = np.linspace(-3, 3, 100)


grid_d1, grid_d2 = np.meshgrid(x_test_d1, x_test_d2)

z = (
    1.5 * np.sin(grid_d1)
    - 0.1 * (grid_d1 - 3) ** 2
    + 10
    - 0.5 * (grid_d2**2 - 2)
    + np.sin(grid_d2) * 2
)


fig = go.Figure(data=[go.Surface(x=x_test_d1, y=x_test_d2, z=z)])
fig.update_layout(margin=dict(l=20, r=20, t=20, b=20), scene_aspectmode="cube")

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

https://stackoverflow.com/questions/72436682

复制
相关文章

相似问题

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