我有一个使用 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()

python - Seaborn 热图 : Move colorbar on top of the plot-LMLPHP

最佳答案

查看 the documentation 我们找到一个参数 cbar_kws 。这允许指定传递给 matplotlib 的 fig.colorbar 方法的参数。



因此,我们可以使用 fig.colorbar 的任何可能参数,为 cbar_kws 提供字典。

在这种情况下,您需要 location="top" 将颜色条放在顶部。因为默认情况下 colorbar 使用 gridspec 定位颜色条,然后不允许设置位置,我们需要关闭该 gr​​idspec ( use_gridspec=False )。

sns.heatmap(df, cbar_kws = dict(use_gridspec=False,location="top"))

完整示例:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.random((5,5)), columns=["a","b","c","d","e"])

ax = sns.heatmap(df, cbar_kws = dict(use_gridspec=False,location="top"))

plt.show()

python - Seaborn 热图 : Move colorbar on top of the plot-LMLPHP

关于python - Seaborn 热图 : Move colorbar on top of the plot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47916205/

10-12 21:12