水平颜色条上的标签靠得太近,我不想进一步缩小文本大小:
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))
但我还没找到那个神奇的组合。
我知道一定有一个干净的方法来做到这一点使用定位器对象。
5条答案
按热度按时间bkhjykvo1#
For循环ticklabel,并调用
set_visible()
:wyyhbhjk2#
一句俏皮话给那些喜欢的人!
anauzrmj3#
刚刚看到这个帖子,答案不错。我在寻找一种方法来隐藏第n个刻度之间的每个刻度。然后找到了枚举函数。所以如果其他人正在寻找类似的东西,你可以这样做。
f1tvaqid4#
我用下面的方法来显示每隔7个x的标签:
它非常灵活,因为你可以做任何你想做的事情,而不是plt.scatter。希望它能有所帮助。
nkhmeac65#
对于一些不熟悉matplotlib面向对象方法的人(大多数是初学者),这里有一种方法可以隐藏每两个标签,而不需要使用ax: