Python Plotly:如何将图像添加到3D散点图

时间:2020-03-14 18:02:10

标签: python plotly plotly-python scatter3d

我正在尝试在z轴是时间的3D散点图中可视化多个2d轨迹(x,y)。

import numpy as np
import pandas as pd
import plotly.express as px

# Sample data: 3 trajectories
t = np.linspace(0, 10, 200)
df = pd.concat([pd.DataFrame({'x': 900 * (1 + np.cos(t + 5 * i)), 'y': 400 * (1 + np.sin(t)), 't': t, 'id': f'id000{i}'}) for i in [0, 1, 2]])
# 3d scatter plot
fig = px.scatter_3d(df, x='x', y='y', z='t', color='id', )
fig.update_traces(marker=dict(size=2))
fig.show()

Original 3D scatter plot

我有一个大小为2000x1000的地图的.png文件。轨迹的(x,y)坐标对应于地图的像素位置。
我想在3d散点图的“地板”上看到地图的图像。

我尝试使用以下代码添加图片:

from scipy import misc

img = misc.imread('images/map_bg.png')
fig2 = px.imshow(img)
fig.add_trace(fig2.data[0])
fig.show()

但是结果是在背景中有一个独立的图像作为单独的图: Bad result

如果旋转/缩放,我希望图像位于散点图的“底”并随散点图移动。这是一个模拟: enter image description here

附加说明:可以有任意数量的轨迹,对于我的应用程序,重要的是要自动以不同的颜色绘制每个轨迹。我正在使用plotly.express,但是只要满足这些要求,我就可以使用其他plotly软件包。

0 个答案:

没有答案