[英]Plotting a 3D surface plot in Ploty (Python) is stretched / deformed
我正在 Plotly 中绘制一个二维函数。 我正在经历情节被延伸到高度。 (见下图)。 在布局中,我已经更改了高度和宽度的值,但对其没有影响。
那是我的代码:
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()
这就是结果图:
感谢您的任何帮助! :)
根据文档,您可以在此处找到
宽度
代码: fig.update_layout(width=)
类型:大于等于10的数字
默认值:700
设置绘图的宽度(以 px 为单位)。
有点违反直觉,设置 webview/窗口图的大小显示在中,但不影响图的大小。
经过一番挖掘,我找到了解决方案,您可能会对这里感兴趣
fig.update_layout(scene_aspectmode='cube')
完整片段如下所示:
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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.