2016-04-11 4 views
2

ヒートマップをseaborn.heatmap()でレンダリングしました。しかし、ある目的のためには、プロットの周りにフレームが必要です。フレーム付きシーボーンヒートマップ

matplotlib.rcParams['axes.edgecolor'] = 'black'
matplotlib.rcParams['axes.linewidth'] = 1

の両方が動作しません。

答えて

0

そのための技術的なコマンドがあるかどうか知っているが、あなたが行動を模倣したい場合は、単にaxhlineaxvlineを使用しないでください:

heatmap with axis lines

:で、その結果、

import string 
import numpy as np 
import pandas as pd 
import seaborn as sns 
import matplotlib.pyplot as plt 
letters = string.ascii_letters 

rs = np.random.RandomState(33) 
d = pd.DataFrame(data=rs.normal(size=(100, 26)), 
       columns=list(letters[:26])) 

# Compute the correlation matrix 
corr = d.corr() 

# Generate a mask for the upper triangle 
mask = np.zeros_like(corr, dtype=np.bool) 
mask[np.triu_indices_from(mask)] = True 

# Set up the matplotlib figure 
f, ax = plt.subplots(figsize=(11, 9)) 

# Generate a custom diverging colormap 
cmap = sns.diverging_palette(220, 10, as_cmap=True) 

# Draw the heatmap with the mask and correct aspect ratio 
ax = sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, 
      square=True, xticklabels=5, yticklabels=5, 
      linewidths=.5, cbar_kws={"shrink": .5}, ax=ax) 

ax.axhline(y=0, color='k',linewidth=10) 
ax.axhline(y=corr.shape[1], color='k',linewidth=10) 
ax.axvline(x=0, color='k',linewidth=10) 
ax.axvline(x=corr.shape[0], color='k',linewidth=10) 
plt.show() 

2
ax = sns.heatmap(x) 
for _, spine in ax.spines.items(): 
    spine.set_visible(True) 
関連する問題