如何更改海图垂直色条的标签的位置和大小?
我尝试使用以下代码
ax.figure.axes[-1].yaxis.label.set_size(36)
ax.figure.axes[-1].yaxis.label.set_position((4, 1.0))
但是,这是行不通的,即颜色条的标签的字体大小保持在相同的位置与相同的字体大小。我也在做
colorbar = ax.collections[0].colorbar
colorbar.set_ticks([-0.667, 0, 0.667])
# I want these labels to be bigger and more to the right!!
colorbar.set_ticklabels(['-1', '0', '1'])
使用colorbar.set_ticks([-0.667, 0, 0.667])
,我可以更改滴答的垂直位置,但我也希望相关标签远离滴答本身。
发布于 2020-08-12 13:45:48
颜色条的刻度有点混乱,因为位置需要通过colorbar.set_ticks()
来设置,但是当您想要更改其他参数时,您必须返回到底层轴。对于垂直色条,使用y轴.
This post展示了一种方法,使色条的高度始终与主情节相同。色条需要在sns.heatmap
之外创建。
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
import seaborn as sns
ax = sns.heatmap(np.random.uniform(-.6, .6, (6, 12)), cmap='inferno', vmin=-0.667, vmax=0.667, square=True, cbar=False)
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.1)
cbar = plt.colorbar(ax.collections[0], cax=cax)
cbar.set_ticks([-0.667, 0, 0.667])
cbar.ax.set_yticklabels(['-1', '0', '1'], size=20)
cbar.ax.tick_params(axis='y', which='major', length=0, pad=15)
cbar.outline.set_edgecolor('black')
cbar.outline.set_linewidth(2)
plt.tight_layout()
plt.show()
https://stackoverflow.com/questions/63377480
复制相似问题