Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Correlation matrix in Plotly

I am doing Spotify data analysis. I would like to create a correlation matrix using Plotly. My sample data frame as below (dataframe name called 'df')

enter image description here

I created a correlation matrix by using below code

import plotly.offline as pyo
import plotly.express as px
import plotly.graph_objs as go
import numpy as np
import pandas as pd


trace = go.Heatmap(z=df.values,x=df.index.values,y=df.columns.values,colorscale='RdBu_r',
                   zmax=1,zmin=-1,text=corr.values)
fig = go.Figure(data=[trace])
pyo.plot(fig)
fig.show()

Getting below output

enter image description here

I need to get a clear correlation matrix output, can anyone advise how to do this in Plotly? Unable to fix the above code in order to get the right output

like image 946
sthambi Avatar asked Sep 15 '25 22:09

sthambi


1 Answers

I think we can use df.corr() in pandas to calculate the correlation coefficient and make a heatmap of it.

import plotly.graph_objects as go
import random
import numpy as np

df = pd.DataFrame({'danceability': np.random.rand(100),
                  'energy': np.random.rand(100),
                  'loudness': np.random.rand(100),
                  'mode': random.choices([0,1], k=100)})
df_corr = df.corr()

print(df_corr)
danceability    energy  loudness    mode
danceability    1.000000    0.061570    0.048222    -0.060654
energy          0.061570    1.000000    0.019930    0.042376
loudness        0.048222    0.019930    1.000000    -0.044294
mode           -0.060654    0.042376    -0.044294   1.000000

fig = go.Figure()
fig.add_trace(
    go.Heatmap(
        x = df_corr.columns,
        y = df_corr.index,
        z = np.array(df_corr),
        text=df_corr.values,
        texttemplate='%{text:.2f}'
    )
)
fig.show()

enter image description here

like image 51
r-beginners Avatar answered Sep 18 '25 19:09

r-beginners



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!