Plotly 3D 绘图注释

Posted

技术标签:

【中文标题】Plotly 3D 绘图注释【英文标题】:Plotly 3D plot annotations 【发布时间】:2021-09-16 14:39:43 【问题描述】:

我正在尝试生成一个随机 3D 散点图,其中每个点都有一个标签。如何添加这些标签?我想将它们添加到黄色框内。

【问题讨论】:

您可以使用hovertemplate 自定义文本。您能否提供到目前为止编写的用于生成绘图的代码,以及您希望为这些点分配哪些标签?我想如果你把你的问题说得更具体一点,你会更有可能得到答案 【参考方案1】:

因为你特别问如何

将它们添加到黄色框内

您实际上并不是在询问如何注释 3D 图表,否则您可以使用 3D annotations 进行注释,而是询问如何自定义悬停信息。如果您愿意使用plotly.express,您可以在px.scatter_3D() 中使用custom_data 来包含关于散点图中未显示的第四个变量的信息:

fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
                        color='petal_length', size='petal_length', size_max=18,
                        symbol='species', opacity=0.7,
                        custom_data = ['category']
                   )

temp1 = fig.data[0].hovertemplate
fig.update_traces(hovertemplate = temp1 + '<br>' + "Category: %customdata[0]")

完整代码:

import plotly.express as px
df = px.data.iris()
category = 'setosa':'flower', 'versicolor': 'vegetable', 'virginica': 'not a flower'
df['category'] = df['species'].map(category)
fig = px.scatter_3d(df, x='sepal_length', y='sepal_width', z='petal_width',
                        color='petal_length', size='petal_length', size_max=18,
                        symbol='species', opacity=0.7,
                        custom_data = ['category']
                   )

temp1 = fig.data[0].hovertemplate
fig.update_traces(hovertemplate = temp1 + '<br>' + "Category: %customdata[0]")

fig.update_layout(margin=dict(l=0, r=0, b=0, t=0))
fig.show()

【讨论】:

以上是关于Plotly 3D 绘图注释的主要内容,如果未能解决你的问题,请参考以下文章

使用 plotly 或 Network 3D 将 igraph 转换为交互式绘图

Python Plotly 中 3D 绘图的多个 hover_name

在 python 中绘制 3D 绘图

如何更新第二个绘图轴 plotly Scatter3D subplots

在 plotly (R) 中调整绘图的大小

绘图纸格式不统一