设置标记大小或不透明度时,“ Plotly”上不会显示3D散点

时间:2019-07-25 13:48:48

标签: python plotly

我绘制了一个3D散点图,其中包含额外的值维。我试图通过颜色区分这些点,但是有些点足够近以至于遮挡了其他点。我以为可以通过使较高的值点更大或更不透明来解决此问题。问题是当我将它们归一化后,将marker dict size参数设置为值数组时,图形上的点消失了。在不透明的情况下,我得到了一个错误。下面,我包含了用于规范化和绘图的代码。如果将不透明度设置为固定值(例如0.8),这些点也会消失。是什么原因呢?

我有一个名为stacked的数据框(列标题为'Y AXIS','X AXIS','INTENSITY'和'Z AXIS')。我用以下几行进行了归一化。

maxi = stacked['INTENSITY'].max()
mini = stacked['INTENSITY'].min()

norms = []
for i in stacked['INTENSITY']:
    norm = float((i-mini)/(maxi-mini)) # multiplied by 12 for size
    print(norm)
    norms.append(norm)

stacked['INTENSITY'] = norms  
import plotly.graph_objects as go
import numpy as np

fig = go.Figure(data=[go.Scatter3d(
    x=stacked['X AXIS'],
    y=stacked['Y AXIS'],
    z=stacked['Z AXIS'],
    mode='markers',
    marker=dict(
    opacity = stacked['INTENSITY'] # size = stacked['INTENSITY']           
)])

fig.show()

我收到此错误。

ValueError: 
    Invalid value of type 'pandas.core.series.Series' received for the 'opacity' property of scatter3d.marker
        Received value: 0      0.038302

1 个答案:

答案 0 :(得分:0)

这是因为opacity属性仅接受标量值,而不接受xyzsize之类的向量/列表/数组。参考文档在这里:https://plot.ly/javascript/reference/#scatter3d-marker-opacity

不幸的是,marker.color不接受Alpha值,因此目前似乎没有一种方法可以满足您的需求。