我有一个使用 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()
最佳答案
看着 the documentation我们找到了一个论点 cbar_kws
.这允许指定传递给 matplotlib 的 fig.colorbar
的参数方法。
cbar_kws
: dict of key, value mappings, optional. Keyword arguments forfig.colorbar
.
所以我们可以对
fig.colorbar
使用任何可能的参数。 , 提供字典给 cbar_kws
.在这种情况下,您需要
location="top"
将颜色条放在顶部。因为 colorbar
默认情况下,使用 gridspec 定位颜色条,然后不允许设置位置,我们需要关闭该 gridspec ( 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,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47916205/