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



我绘制了一个带有额外维度值的 3D 散点图。我试图通过颜色来区分这些,但有些点足够接近以阻止其他点。我认为我可以通过使更高的价值点变大或更不透明来解决这个问题。问题是当我在规范化后将标记字典大小参数设置为值数组时,图形上的点消失了。在不透明的情况下,我得到了一个错误。下面,我包含了用于规范化和绘图的代码。如果我将不透明度设置为固定数字(如 0.8(,这些点也会消失。这是什么原因呢?

我有一个名为 stacked 的数据框(列标题为"Y 轴"、"X 轴"、"强度"、"Z 轴"(。 我用下面的几行规范化了。

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

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

不幸的是,marker.color不接受alpha值,所以目前似乎没有办法做你正在寻找的东西。

最新更新