我的水平颜色栏上的标签太靠近了,我不想进一步减小文本大小:

cbar = plt.colorbar(shrink=0.8, orientation='horizontal', extend='both', pad=0.02)
cbar.ax.tick_params(labelsize=8)

我想保留所有刻度线,但删除所有其他标签。

我发现的大多数示例都将用户指定的字符串列表传递给cbar.set_ticklabels()。我正在寻找一个通用的解决方案。

我玩了各种
cbar.set_ticklabels(cbar.get_ticklabels()[::2])


cbar.ax.xaxis.set_major_locator(matplotlib.ticker.MaxNLocator(nbins=4))

但我还没有找到魔术组合。

我知道必须有一种使用定位器对象的干净方法。

最佳答案

对于循环的ticklabels,并调用set_visible():

for label in cbar.ax.xaxis.get_ticklabels()[::2]:
    label.set_visible(False)

关于python - 隐藏matplotlib颜色栏中的每个第n个刻度标签的最干净方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20337664/

10-10 13:32