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