Python中如何向Plotly Express 3D散点图添加单个数据点并解决报错
错误原因
报错是类名大小写错误导致的:plotly.graph_objects 下的3D散点图类是首字母大写的Scatter3d,你代码中写的小写scatter3d是对应模块,不是可实例化的类,因此触发TypeError: 'module' object is not callable报错。
正确实现方式
该需求可以实现,除了修正类名外,你还可以额外配置marker参数调整特殊点的样式(比如颜色、大小、边框),让它和其他普通点区分更明显。
正确的添加trace代码如下:
fig.add_trace( go.Scatter3d( x=[25], y=['Dinner'], z=[6], mode='markers', # 自定义标记样式,和普通点区分 marker=dict( color='red', # 特殊点颜色 size=10, # 特殊点大小,比普通点更大 line=dict(width=2, color='DarkSlateGrey') # 加边框更醒目 ), name='特殊标记点' # 图例显示名称 ) )
完整可运行的全量代码如下:
import plotly.express as px import plotly.graph_objects as go df = px.data.tips() fig = go.Figure(data =[go.Scatter3d( x = df['total_bill'], y = df['time'], z = df['tip'], mode ='markers', name='普通数据点' )]) # 添加特殊标记点 fig.add_trace( go.Scatter3d( x=[25], y=['Dinner'], z=[6], mode='markers', marker=dict( color='red', size=10, line=dict(width=2, color='DarkSlateGrey') ), name='特殊标记点' ) ) fig.show()
运行后即可得到普通点和特殊标记点样式区分明确的3D散点图。
内容的提问来源于stack exchange,提问作者Ubaldo Gonzalez
相关产品推荐
相关产品推荐

