使用 python 3d 绘图绘制错误

问题描述

我正在使用 plotlypython 来可视化 3D 数据,但在绘制某些数据时遇到了一个奇怪的现象。以下代码(3,20) 形式的数据分别可视化为 x、y 和 z 方向。

import numpy as np
import plotly.io as pio
import plotly.graph_objects as go

data = np.array([
    [4.41568822e+05,4.41568474e+05,4.41567958e+05,4.41567603e+05,4.41567249e+05,4.41566952e+05,4.41566619e+05,4.41566324e+05,4.41566021e+05,4.41565737e+05,4.41565435e+05,4.41565098e+05,4.41564807e+05,4.41564472e+05,4.41564121e+05,4.41563860e+05,4.41563538e+05,4.41563226e+05,4.41562933e+05,4.41562641e+05],[5.71148897e+06,5.71148909e+06,5.71148928e+06,5.71148942e+06,5.71148955e+06,5.71148967e+06,5.71148981e+06,5.71148993e+06,5.71149006e+06,5.71149019e+06,5.71149032e+06,5.71149047e+06,5.71149060e+06,5.71149076e+06,5.71149093e+06,5.71149106e+06,5.71149122e+06,5.71149137e+06,5.71149153e+06,5.71149168e+06],[1.86559470e+02,1.86547226e+02,1.86529120e+02,1.86516642e+02,1.86504156e+02,1.86493615e+02,1.86481706e+02,1.86471064e+02,1.86460026e+02,1.86449593e+02,1.86438417e+02,1.86425803e+02,1.86414828e+02,1.86402073e+02,1.86388572e+02,1.86378511e+02,1.86366018e+02,1.86353893e+02,1.86342497e+02,1.86331154e+02]])

fig = go.figure(data=[go.Scatter3d(x=data[0,:],y=data[1,z=data[2,mode='markers',marker=dict(size=3),)])

pio.show(fig,renderer='browser')

我将下面的结果(顶部)与相同数据的 matplotlib 图(底部)进行了比较。

表示相对直线的点在 Plotly 中是按步骤表示的,而不是一条线,我真的不明白为什么。

有人可以向我解释为什么这些点会以这种方式显示,我该如何解决这个问题? 我很感激我能得到的任何帮助!

解决方法

看起来像 Plotly 如何解释你的 numpy 数组的问题。您的数组看起来是嵌套的,这可以解释为什么不是将绘图绘制为连续线,而是将它们呈现为步骤。