मैं पीसीए का उपयोग करके उनके प्लॉट के आधार पर फिल्मों के बीच समानता को रेखांकन करने के लिए प्लॉटली का उपयोग कर रहा हूं। चूंकि यह सिर्फ एक दृश्य प्रतिनिधित्व है जिसे मैं बनाने की कोशिश कर रहा हूं, मुझे वास्तव में प्रत्येक डेटा बिंदु के लिए पीसीए मूल्यों को देखने की परवाह नहीं है। मैं सिर्फ फिल्म का शीर्षक देखना चाहता हूं, और शायद कुछ अन्य विशेषताएं जैसे शैली और रेटिंग। 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()
1
WillacyMe 15 अप्रैल 2020, 14:09

1 उत्तर

सबसे बढ़िया उत्तर

ध्यान रखते हुए...

मैं वास्तव में प्रत्येक डेटा बिंदु के लिए पीसीए मूल्यों को देखने की परवाह नहीं करता। मैं सिर्फ फिल्म का शीर्षक देखना चाहता हूं

... 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()
1
vestland 15 अप्रैल 2020, 18:56