将颜色条移近热图 (Seaborn)

Ben*_*Ben 2 python data-visualization matplotlib heatmap 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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Joh*_*anC 8

您可以使用例如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()
Run Code Online (Sandbox Code Playgroud)

更改 sns.heatmap 的颜色条填充