我正在根据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()
关注...
我不太在乎查看每个数据点的PCA值。一世只想看电影的标题
... hovertemplate='<b>%{text}</b>'
和text
的正确组合应该可以解决问题::
带有数据样本的完整代码:
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()