如何在颜色栏中完全不设置“勾号”?

问题描述 投票:0回答:1

我想设置任何形式的颜色条都没有刻度。我已经在两个地方搜索并设置了刻度参数。然而,右边框仍然有一些勾号。

cb = mpl.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm, spacing='proportional', boundaries=bounds, format='%.1f')

ax2.set_xlabel('t', size=12)
cb.ax.tick_params(size=0)  # these two lines are my searching effort
cb.set_ticks([])
plt.show()

编辑

这是一个独立的代码,仍然有微小的刻度线。

fig, ax = plt.subplots(1, 1, figsize=(0.05, 6))
tmax=5
tmin=-5
color_num=6
bounds = np.linspace(tmin, tmax, color_num+1)
norm = mpl.colors.BoundaryNorm(bounds, color_num)
cmap = plt.cm.tab20
cmaplist = [cmap(i) for i in range(color_num)]
cmap = mpl.colors.LinearSegmentedColormap.from_list('custom map', cmaplist, color_num)
cb = mpl.colorbar.ColorbarBase(ax, cmap=cmap, norm=norm, spacing='proportional')

cb.ax.tick_params(size=0)  # these two lines are my searching effort
cb.set_ticks([])
plt.show()

python python-3.x matplotlib colorbar
1个回答
0
投票

看起来这些小刻度是在未指定标签时由

cb.set_ticks([])
生成的。

虽然这更多的是一种解决方法而不是解决方案,但可以隐藏设置

Axes.tick_params
的刻度线。事实上,我们可以最小化刻度线和标签大小,并将它们设置为与图形背景相同的颜色,以便它们不再可见。
为此:

cb.ax.tick_params(size=0,                   # tick size
                  labelsize=0,              # label size
                  colors=ax.get_facecolor() # tick and labels color
                  )

导致

© www.soinside.com 2019 - 2024. All rights reserved.