簡體   English   中英

在matplotlib中旋轉顏色條刻度標簽會重置刻度標簽格式

[英]Rotation of colorbar tick labels in matplotlib resets tick label formatting

如果我旋轉到顏色欄標簽,則我使用的格式似乎已重置(忽略)。

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)來旋轉標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM