我有一个使用 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
方法的参数。
因此,我们可以使用 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/