我绘制了一个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
答案 0 :(得分:0)
这是因为opacity
属性仅接受标量值,而不接受x
,y
,z
或size
之类的向量/列表/数组。参考文档在这里:https://plot.ly/javascript/reference/#scatter3d-marker-opacity
不幸的是,marker.color
不接受Alpha值,因此目前似乎没有一种方法可以满足您的需求。