首页 > 解决方案 > 将颜色条移近热图(Seaborn)

问题描述

我的颜色条离热​​图的底部很远。有没有办法让它靠近一点?

我的代码是:


import seaborn as sns

Granger2 = Granger
Granger2.columns = Granger_colnames
Granger2.index = Granger_rownames

fig, ax = plt.subplots(figsize=(6,25)) 
sns.heatmap(Granger2, cmap=rvb, cbar=True, ax=ax,linewidths=.5,cbar_kws={"orientation": "horizontal"})
ax.xaxis.tick_top() # x axis on top
ax.xaxis.set_label_position('top')

#Remove ticks
ax.tick_params(axis='both', which='both', length=0)

# Drawing the frame
ax.axhline(y = 0, color='k',linewidth = 1)
ax.axhline(y = Granger2.shape[0], color = 'k',linewidth = 1)  
ax.axvline(x = 0, color = 'k', linewidth = 1)
ax.axvline(x = Granger2.shape[1], color = 'k', linewidth = 1)

plt.show()

在此处输入图像描述

标签: pythonmatplotlibseaborndata-visualizationheatmap

解决方案


您可以使用例如cbar_kws={"orientation": "horizontal", "pad":0.02}. 内边距是子图高度的一小部分,因此 0.02 是 2%。有关其他参数的更多信息,请参阅颜色条文档。pad

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

sns.set_style('whitegrid')
flights = sns.load_dataset('flights')
flights = flights.pivot('year', 'month').droplevel(0, axis=1)

fig, ax = plt.subplots(figsize=(6, 20))
sns.heatmap(flights, cmap='Greens', cbar=True, ax=ax, linewidths=.5,
            cbar_kws={"orientation": "horizontal", "pad": 0.02})
ax.xaxis.tick_top()  # x axis on top
ax.xaxis.set_label_position('top')

# Remove ticks
ax.tick_params(axis='both', which='both', length=0)

# Drawing the frame
ax.patch.set_edgecolor('0.15')
ax.patch.set_linewidth(2)

plt.tight_layout()
plt.show()

更改 sns.heatmap 的颜色条填充


推荐阅读