python - 当我设置标记大小或不透明度时,3D 散点不会显示在 Plotly 上
问题描述
我绘制了一个带有额外维度值的 3D 散点图。我试图通过颜色来区分这些点,但有些点足够接近以阻挡其他点。我想我可以通过使更高的值点更大或更不透明来解决这个问题。问题是当我将标记字典大小参数设置为值数组后,我将它们归一化后,图表上的点消失了。在不透明的情况下,我得到了一个错误。下面,我包含了用于规范化和绘图的代码。如果我将不透明度设置为像 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
解决方案
这是因为该opacity
属性只接受标量值,而不接受向量/列表/数组,如x
、或。此处参考文档:https ://plot.ly/javascript/reference/#scatter3d-marker-opacityy
z
size
不幸的是,marker.color
它不接受 alpha 值,所以目前似乎没有办法做你正在寻找的东西。
推荐阅读
- python - 如何使用 python selenium 获取不同元素源中的属性值
- tableau-desktop - 为什么在向仪表板添加筛选器时收到 Tableau 错误 6EA18A9E
- python - 如何将 db 获取的数据与 django 中用户选择的输入进行比较
- c# - asp net core发生错误时如何记录请求url?
- css - Tailwind 每次编译时都会生成错误的类
- android - 尝试在 Android 上运行我的 React Native 应用程序时出错
- autocomplete - 自动完成材料-ui 默认/首选项搜索
- java - 尝试使用 OracleDataSource 在 19c DB 中获取连接时出错
- vue.js - Vue 路由器(历史模式)和 Webpack 外部重定向处理
- sockets - 使用静态端口配置从 tcp 中的一个客户端套接字连接两个服务器套接字