如何设置plt.colorbar中的刻度数?

Fra*_*ank 18 python matplotlib colorbar

当我使用颜色条绘制矩阵时,颜色条有10个刻度.由于颜色条必须非常小,因此标记符重叠.因此我想将滴答数从10减少到5.我不想减小字体大小!

是否有捷径可寻?我不想手动设置滴答声......

Bon*_*fum 39

MaxNLocator股票可能适合你的目的是什么?

class matplotlib.ticker.MaxNLocator

在不错的位置选择不超过N个间隔

例如:

from matplotlib import ticker

# (generate plot here)
cb = plt.colorbar()
tick_locator = ticker.MaxNLocator(nbins=5)
cb.locator = tick_locator
cb.update_ticks()
plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 目前,在颜色条的上端没有刻度,但在下端.这对我来说看起来非常不对称和丑陋.有解决方案吗? (2认同)
  • 好的......只需在cbupdate_icks()之前输入cb.ax.yaxis.set_major_locator(matplotlib.ticker.AutoLocator()) (2认同)
  • 感谢@FrankTheTank 的补充。对于其他人复制和粘贴该添加项,有一个隐藏字符会导致括号上的“语法错误:无效语法”。只需删除并重新键入括号(从而也删除隐藏字符),它会正常工作。 (2认同)
  • 在两个边界获取刻度的更简单选项是:“LinearLocator(5)” (2认同)

eza*_*rin 6

为了记录,现在也可以通过:

cbar = plt.colorbar()
cbar.ax.locator_params(nbins=5)
Run Code Online (Sandbox Code Playgroud)

ticker.MaxNLocator.