我想删除颜色条右边带有数字的(ticks)轴。我在python中使用matplotlib如下:
f = plt.figure() ax = f.add_subplot(1,1,1) i = ax.imshow(mat, cmap= 'gray') cbar = f.colorbar(i)
5gfr0r5j1#
如果只想移除刻度但保留刻度标签,则可以将刻度的大小设置为0,如下所示
f = plt.figure() ax = f.add_subplot(1,1,1) mat = np.arange(100).reshape((10, 10)) i = ax.imshow(mat, cmap= 'viridis') cbar = f.colorbar(i) cbar.ax.tick_params(size=0)
如果您想同时删除刻度和标签,可以使用set_ticks([]),传递一个空列表。
set_ticks([])
cbar.set_ticks([])
8qgya5xd2#
另一种选择是提供一个格式化程序或定位器。这里有两种组合:
有关更多格式化程序或定位程序,请参见official matplotlib docs。
import numpy as np import matplotlib.pyplot as plt import matplotlib.ticker from mpl_toolkits.axes_grid1 import make_axes_locatable fig, ax = plt.subplots(ncols=1) mat = np.arange(100).reshape((10, 10)) cs = ax.imshow(mat, cmap= 'viridis') divider = make_axes_locatable(ax) dvider_kwargs = dict(position="right", size="15%", pad=0.5) fig.colorbar(cs, cax=divider.append_axes(**dvider_kwargs), format = matplotlib.ticker.FuncFormatter(lambda x, pos: ''), ticks = matplotlib.ticker.FixedLocator([])) fig.colorbar(cs, cax=divider.append_axes(**dvider_kwargs), format = matplotlib.ticker.FuncFormatter(lambda x, pos: '')) fig.colorbar(cs, cax=divider.append_axes(**dvider_kwargs)) plt.tight_layout()
对于make_axes_locatable和cax=divider.append_axes,颜色条的大小都相同。
make_axes_locatable
cax=divider.append_axes
2条答案
按热度按时间5gfr0r5j1#
如果只想移除刻度但保留刻度标签,则可以将刻度的大小设置为0,如下所示
如果您想同时删除刻度和标签,可以使用
set_ticks([])
,传递一个空列表。8qgya5xd2#
另一种选择是提供一个格式化程序或定位器。这里有两种组合:
有关更多格式化程序或定位程序,请参见official matplotlib docs。
对于
make_axes_locatable
和cax=divider.append_axes
,颜色条的大小都相同。