r3r*_*son 7 python matplotlib python-2.7 pandas seaborn
我有一个使用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()
Run Code Online (Sandbox Code Playgroud)
Imp*_*est 11
查看文档,我们找到了一个论点cbar_kws.这允许指定传递给matplotlib fig.colorbar方法的参数.
cbar_kws:键,值映射的dict,可选.关键字参数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"))
Run Code Online (Sandbox Code Playgroud)
完整的例子:
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()
Run Code Online (Sandbox Code Playgroud)
我想展示带有子图的示例,它允许控制图的大小以保留热图的方形几何形状。这个例子很短:
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"])
# Define two rows for subplots
fig, (cax, ax) = plt.subplots(nrows=2, figsize=(5,5.025), gridspec_kw={"height_ratios":[0.025, 1]})
# Draw heatmap
sns.heatmap(df, ax=ax, cbar=False)
# colorbar
fig.colorbar(ax.get_children()[0], cax=cax, orientation="horizontal")
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5731 次 |
| 最近记录: |