作者:重庆垚东科技有限公司 | 来源:互联网 | 2023-05-23 11:38
这是一个显示每个子图的颜色条的示例:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random((10,10,)))
fig,axn = plt.subplots(2, 2, sharex=True, sharey=True)
for ax in axn.flat:
sns.heatmap(df, ax=ax)
如何删除每个子图的颜色条?我想只有一个垂直或水平方向的颜色条.我知道我可以访问每个颜色条轴fig.get_axes()[:-4]
,但是如何从图中完全删除它们呢?我不认为在调用热图时可以选择不绘制颜色条.
1> mwaskom..:
该cbar
参数控制是否应添加颜色条,cbar_ax
参数可以选择指定颜色条应该到达的轴.所以,你可以这样做:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.random((10,10,)))
fig, axn = plt.subplots(2, 2, sharex=True, sharey=True)
cbar_ax = fig.add_axes([.91, .3, .03, .4])
for i, ax in enumerate(axn.flat):
sns.heatmap(df, ax=ax,
cbar=i == 0,
vmin=0, vmax=1,
cbar_ax=None if i else cbar_ax)
fig.tight_layout(rect=[0, 0, .9, 1])
(你会tight_layout
在这里得到一个警告,但它实际上是正确的,因为我们cbar_ax
明确地放置了.如果你不喜欢看到警告,你也可以tight_layout
在绘图之前打电话,但它不会那么紧张).
好点子.你需要指定`vmin`和`vmax`
你确定这也会同步颜色吗?我看到它的方式只会绘制第一个轴的色彩图,但色彩图不一定与其他轴兼容.