python - matplotlib 中颜色条刻度标签的旋转重置刻度标签格式
问题描述
如果我对颜色条标签进行旋转,我使用的格式似乎被重置(忽略)。
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”,但如您所见,两者都不是。
解决方案
我认为调用时不会保留原始格式cb.ax.set_xticklabels()
,您可以添加cb.ax.xaxis.set_major_formatter(FormatStrFormatter(fmts[i]))
以在之后重新应用自定义格式。
作为替代方案,请改为使用plt.setp(cb.ax.get_xticklabels(),rotation=45)
来旋转标签。
推荐阅读
- javascript - react.js 中是否有用于 agora.io 的 UI 包
- php - 如何在 laravel api 或颤振视图上转换 yyyy-mm-ddthh:mm:ss.sssz?
- asp.net-core-mvc - 在 ASP.NET Core MVC 的 PartialView 中使用 Ajax 后选择模式为空
- clojure - 如何用 Leiningen 运行图书馆的`main`?
- sql - 从邀请表中查找最后一行
- java - 只是 JTextField 中的数字
- javascript - 如何在同一页面上多次添加相同的轮播?
- python - 错误:包“Unidecode”需要不同的 Python:2.7.18 不在“>=3.5”中
- image - 无论图像大小如何,图像始终只需 5 秒即可加载 (MAMP)
- python - 错误:azure_cosmosdb_container 类型中缺少强制属性值