当我绘制一个带有颜色条的矩阵时,颜色条有10个刻度。由于颜色条必须非常小,刻度标签重叠。因此我想将刻度的数量从10减少到5。我不想减小字体大小!有没有简单的方法可以做到这一点?我不想手动设置刻度...
enxuqcxy1#
MaxNickel股票代码可能适合您的目的?classmatplotlib.ticker. MaxNm在合适的位置选择不超过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()
字符串
bejyjqdl2#
为了记录在案,现在还可以通过以下方式实现:
cbar = plt.colorbar() cbar.ax.locator_params(nbins=5)
字符串与ticker.MaxNLocator通信。
ticker.MaxNLocator
bfhwhh0e3#
我发现使用cbar.ax.locator_params和ticker的两种解决方案在获得相同结果方面似乎并不一致。ticker似乎在获得bins的数量方面是一致的,而locator_params似乎想要强制端点具有tick(而不是,说一个刻度线接近端点,但不是在它)。我不知道在行为上的差异是什么,但足以说他们是不相同的。再次,这是假设你希望刻度的数量和你指定的完全一样。我想说,如果你想设置刻度的数量(但是让它们的位置自动确定),并且想提供你自己的不同标签,那么也许可以使用ticker来确保这些是一致的(尽管通常如果你提供自己的标签,你会希望位置得到保证)。
from matplotlib import ticker import numpy as np import matplotlib.pyplot as plt np.random.seed(4) nbins = 7 z = np.random.normal(size=(5,10)) fig, ax = plt.subplots(1, 1) img = ax.matshow(z, cmap="bwr_r", aspect='auto', vmin=-10, vmax=10) cbar = fig.colorbar(img) cbar.ax.locator_params(nbins=nbins) ax.set_title('locator_params') plt.show() fig, ax = plt.subplots(1, 1) img = ax.matshow(z, cmap="bwr_r", aspect='auto', vmin=-10, vmax=10) cbar = fig.colorbar(img) tick_locator = ticker.MaxNLocator(nbins=nbins) cbar.locator = tick_locator cbar.update_ticks() ax.set_title('ticker') plt.show()
字符串100d1x的字符串
3条答案
按热度按时间enxuqcxy1#
MaxNickel股票代码可能适合您的目的?
classmatplotlib.ticker. MaxNm
在合适的位置选择不超过N个间隔
举例来说:
字符串
bejyjqdl2#
为了记录在案,现在还可以通过以下方式实现:
字符串
与
ticker.MaxNLocator
通信。bfhwhh0e3#
我发现使用cbar.ax.locator_params和ticker的两种解决方案在获得相同结果方面似乎并不一致。ticker似乎在获得bins的数量方面是一致的,而locator_params似乎想要强制端点具有tick(而不是,说一个刻度线接近端点,但不是在它)。我不知道在行为上的差异是什么,但足以说他们是不相同的。再次,这是假设你希望刻度的数量和你指定的完全一样。我想说,如果你想设置刻度的数量(但是让它们的位置自动确定),并且想提供你自己的不同标签,那么也许可以使用ticker来确保这些是一致的(尽管通常如果你提供自己的标签,你会希望位置得到保证)。
字符串
100d1x
的字符串