I want to make a correlation heatmap between 2 columns in a df, but filtered by a3 columns. I have a DF like this with 3 columns, and I want to make 1 heatmap to each region, but I couldn't find the way to make it.
chldmort adfert region
34.75 7.300000 Africa
122.75 111.699997 Americas
60.25 52.099998 Asia
170.50 124.800003 Europe
168.50 18.600000 Oceania
I try to this in seaborn, but I couldn't get an efficient way to do it for all-region in a row.
tmp=df.loc[:,['chldmort','adfert','region']].dropna()
tmp_africa=tmp[tmp['region']=='Africa']
tmp_americas=tmp[tmp['region']=='Americas']
tmp_asia=tmp[tmp['region']=='Asia']
tmp_europe=tmp[tmp['region']=='Europe']
tmp_oceania=tmp[tmp['region']=='Oceania']
plt.figure(figsize=(20,20))
plt.subplot(5,1,1)
plt.title("chldmort over adfert, grouped by Africa",size=15)
sns.heatmap(tmp_africa.corr(cmap='Reds', annot=True, vmax=.99, vmin=0.60, linewidths=0.9)
plt.subplot(5,1,2)
sns.heatmap(tmp_americas.corr(), cmap='Reds', annot=True, vmax=.99, vmin=0.60, linewidths=0.9)
plt.title("chldmort over adfert, grouped by Americas",size=15)
plt.subplot(5,1,3)
plt.title("chldmort over adfert, grouped by Asia",size=15)
sns.heatmap(tmp_asia.corr(), cmap='Reds', annot=True, vmax=.99, vmin=0.60, linewidths=0.9)
plt.subplot(5,1,4)
plt.title("chldmort over adfert, grouped by Europe",size=15)
sns.heatmap(tmp_europe.corr(), cmap='Reds', annot=True, vmax=.99, vmin=0.60, linewidths=0.9)
plt.subplot(5,1,5)
plt.title("chldmort over adfert, grouped by Oceania",size=15)
sns.heatmap(tmp_oceania.corr(), cmap='Reds', annot=True, vmax=.99, vmin=0.60, linewidths=0.9);