如果我旋转到颜色栏标签,则似乎重置了我使用的格式(忽略)。
fig.colorbar
不接受旋转,而cb.ax.set_xticklabels
不接受格式。
我找不到任何方式进行这两种设置。
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import FormatStrFormatter
test = np.random.rand(100, 100)
np.random.seed(12345)
fig, axs = plt.subplots(1, 2, figsize=(6, 5))
fmts = ["%d", "%.5f"]
for i, ax in enumerate(axs.tolist()):
im = ax.imshow(test, origin="lower")
cb = fig.colorbar(im, ax=ax, orientation='horizontal',
format=FormatStrFormatter(fmts[i]))
ax.set_title(f"Format {fmts[i]}")
cb.ax.set_xticklabels(cb.get_ticks(), rotation=45)
plt.tight_layout()
plt.show()
颜色条刻度标签的格式应为“%d”和“%.5f”,但正如您所见,两者都不是。
答案 0 :(得分:1)
我不认为在调用cb.ax.set_xticklabels()
时保留原始格式,您可以添加cb.ax.xaxis.set_major_formatter(FormatStrFormatter(fmts[i]))
之后再重新应用自定义格式。
或者,使用plt.setp(cb.ax.get_xticklabels(),rotation=45)
来旋转标签。