Heatmap
A heat map (or heatmap) is a data visualization technique that shows the magnitude of a phenomenon as color in two dimensions. In the example below the phenomenon is the correlation between two factors. Data used is the heart failure dataset.
[1] https://doi.org/10.1186/s12911-020-1023-5
Heart failure Case studyimport pandas as pd
import numpy as np#import bokeh and direct the output to the notebook
from bokeh.io import output_notebookoutput_notebook()Loading BokehJS ...
from bokeh.layouts import gridplot
from bokeh.plotting import figure, output_file, showHeatmap
To investigate if the attributes are independent from eachother we can create a heatmap. We first remove the class variable. Then we create a correlation matrix. We reshape this into a ColumnDataSource object to be used for the heatmap plot.
df = pd.read_csv('data/heart_failure_clinical_records_dataset.csv')
df = df.drop(['DEATH_EVENT'],axis = 1)
c = df.corr().abs()
y_range = (list(reversed(c.columns)))
x_range = (list(c.index))
c
age
anaemia
creatinine_phosphokinase
diabetes
ejection_fraction
high_blood_pressure
platelets
serum_creatinine
serum_sodium
sex
smoking
time
age
1.000000
0.088006
0.081584
0.101012
0.060098
0.093289
0.052354
0.159187
0.045966
0.060808
0.017555
0.224068
anaemia
0.088006
1.000000
0.190741
0.012729
0.031557
0.038182
0.043786
0.052174
0.041882
0.090011
0.109526
0.141414
creatinine_phosphokinase
0.081584
0.190741
1.000000
0.009639
0.044080
0.070590
0.024463
0.016408
0.059550
0.080040
0.021969
0.009346
diabetes
0.101012
0.012729
0.009639
1.000000
0.004850
0.012732
0.092193
0.046975
0.089551
0.153181
0.149428
0.033726
ejection_fraction
0.060098
0.031557
0.044080
0.004850
1.000000
0.024445
0.072177
0.011302
0.175902
0.142789
0.067384
0.041729
high_blood_pressure
0.093289
0.038182
0.070590
0.012732
0.024445
1.000000
0.049963
0.004935
0.037109
0.108405
0.057507
0.196439
platelets
0.052354
0.043786
0.024463
0.092193
0.072177
0.049963
1.000000
0.041198
0.062125
0.134513
0.028257
0.010514
serum_creatinine
0.159187
0.052174
0.016408
0.046975
0.011302
0.004935
0.041198
1.000000
0.189095
0.009237
0.028097
0.149315
serum_sodium
0.045966
0.041882
0.059550
0.089551
0.175902
0.037109
0.062125
0.189095
1.000000
0.044839
0.004489
0.087640
sex
0.060808
0.090011
0.080040
0.153181
0.142789
0.108405
0.134513
0.009237
0.044839
1.000000
0.446947
0.022547
smoking
0.017555
0.109526
0.021969
0.149428
0.067384
0.057507
0.028257
0.028097
0.004489
0.446947
1.000000
0.026676
time
0.224068
0.141414
0.009346
0.033726
0.041729
0.196439
0.010514
0.149315
0.087640
0.022547
0.026676
1.000000
level_0
level_1
r
0
age
age
1.000000
1
age
anaemia
0.088006
2
age
creatinine_phosphokinase
0.081584
3
age
diabetes
0.101012
4
age
ejection_fraction
0.060098

Last updated
Was this helpful?
