我有一个使用seaborn
库创建的基本热图,我想将颜色条从默认的右侧垂直移动到热图上方的水平。我该怎么做?
下面是一些示例数据和默认值的示例:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
# Create data
df = pd.DataFrame(np.random.random((5,5)), columns=["a","b","c","d","e"])
# Default heatma
ax = sns.heatmap(df)
plt.show()
字符串
的数据
3条答案
按热度按时间f4t66c6m1#
查看the documentation,我们发现参数
cbar_kws
。这允许指定传递给matplotlib的fig.colorbar
方法的参数。cbar_kws
:键的dict,值Map,可选。fig.colorbar
的关键字参数。因此,我们可以使用
fig.colorbar
的任何可能的参数,为cbar_kws
提供一个字典。在本例中,您需要
location="top"
将颜色条放置在顶部。因为colorbar
默认使用gridspec定位颜色条,而gridspec不允许设置位置,所以我们需要关闭gridspec(use_gridspec=False
)。字符串
完整示例:
型
的数据
avwztpqn2#
我想展示一个子图的例子,它允许控制图的大小以保持热图的正方形几何形状。这个例子很短:
字符串
的数据
7kqas0il3#
你必须使用轴分隔符把颜色条放在一个海运图的顶部。查看注解。
字符串
的数据
更多信息请阅读matplotlib的官方示例:https://matplotlib.org/gallery/axes_grid1/demo_colorbar_with_axes_divider.html?highlight=demo%20colorbar%20axes%20divider
像
sns.heatmap(df, cbar_kws = {'orientation':'horizontal'})
这样的Heatmap参数是无用的,因为它把colorbar放在底部位置。