Plotly:如何为Plotly 3D散点图创建自定义悬停标签?

问题描述 投票:1回答:1

我正在根据PCA的情节使用绘图来绘制电影之间的相似性。由于这只是我要尝试生成的一种视觉表示形式,因此我不太在乎查看每个数据点的PCA值。我只想看电影的标题,也许还有其他一些功能,例如类型和等级。 x,y,z值只是使图形看起来混乱。

下面是实际使用的代码,尽管我没有movie_similarities函数,但它确实会返回一个数据帧return pd.DataFrame({'pca_0':np.array([0,1,2,3]), 'pca_1':np.array([0,1,2,3]),'pca_2':np.array([0,1,2,3]),'Title':np.array(['Fight Club','Mission: Impossible','Harry Potter'])})

import plotly.graph_objects as go
import numpy as np
import plotly.offline as pyo
pyo.init_notebook_mode()


    df = pd.DataFrame({'pca_0':np.array([0,1,2,3]), 'pca_1':np.array([0,1,2,3]),'pca_2':np.array([0,1,2,3]),'Title':np.array(['Fight Club','Mission: Impossible','Harry Potter'])})`
    fig = go.Figure(data=[go.Scatter3d(
        x=df.pca_0, # ie [0, 1, 2, 3]
        y=df.pca_1, # ie [0, 1, 2, 3]
        z=df.pca_2, # ie [0, 1, 2, 3]
        hovertext = df.Title, # ie ['Fight Club','Mission: Impossible','Harry Potter']
        mode='markers',
        marker=dict(
            size=8,
            opacity=0.8
        )
    )])

    fig.show()
python dataframe 3d plotly
1个回答
0
投票

关注...

我不太在乎查看每个数据点的PCA值。一世只想看电影的标题

... hovertemplate='<b>%{text}</b>'text的正确组合应该可以解决问题::

enter image description here

带有数据样本的完整代码:

import plotly.graph_objects as go
import numpy as np
import plotly.offline as pyo
import pandas as pd
pyo.init_notebook_mode()


df = pd.DataFrame({'pca_0':np.array([4,1,2,3]),
                   'pca_1':np.array([9,11,12,13]),
                   'pca_2':np.array([0,5,1,8]),
                   'Title':np.array(['Fight Club','Mission: Impossible','Harry Potter', 'Star Wars'])})
fig = go.Figure(data=[go.Scatter3d(
    x=df.pca_0, # ie [0, 1, 2, 3]
    y=df.pca_1, # ie [0, 1, 2, 3]
    z=df.pca_2, # ie [0, 1, 2, 3]
    hovertemplate='<b>%{text}</b><extra></extra>',
    text = [title for title in df.Title],
    mode='markers',
    marker=dict(
        size=8,
        opacity=0.8
    )
)])

fig.show()
© www.soinside.com 2019 - 2024. All rights reserved.