[英]How to change the font weight of individual colorbar labels?
我想為每個colorbar標簽設置不同的字體權重。
我試圖讓LaTeX以下列方式格式化標簽:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.rand(50, 50)/20)
cbar = ax.figure.colorbar(im, ticks=np.arange(0, 0.05, 0.01))
cbar.ax.set_yticklabels([r'{\fontsize{50pt}{3em}\selectfont{}{0}}',
r'{\fontsize{40pt}{3em}\selectfont{}{0.01}}',
r'{\fontsize{30pt}{3em}\selectfont{}{0.03}}',
r'{\fontsize{20pt}{3em}\selectfont{}{0.03}}',
r'{\fontsize{10pt}{3em}\selectfont{}{0.04}}',
r'{\fontsize{1pt}{3em}\selectfont{}{0.05}}', ])
但這只會將標簽的文本更新為整個字符串(例如,{\\ fontsize {50pt} {3em} \\ selectfont {} {0}})。 pyplot TeX 演示適用於我。 即使這個解決方案能夠工作也不理想,因為我可能需要手動指定所有內容。
在這個問題中會更加方便。 在那里,我了解到常規x和y軸的單個標簽的字體大小可以通過調用來更新
label = axes.yaxis.get_major_ticks()[2].label
label.set_fontsize(size)
通過set_fontweight
替換set_fontsize
set_fontweight
正確更新所選標簽的權重。 不幸的是,我找不到相應的axes.yaxis.get_major_ticks()[2].label
為colorbar。
是否可以直接更改顏色條的各個標簽的字體粗細? 直接我的意思是不使用在現有標簽上方繪制一些新文本的解決方法。 如果這不可能,也可以理解在現有標簽上方繪制文本的解決方案,其自動使用先前標簽的位置和內容並且僅調整字體粗細。
謝謝!
正如@ImportanceOfBingErnest所指出的, set_fontweight
適用於設置單個顏色條標簽的權重。 我不得不嘗試一些事情來找到哪個調用會給我定義顏色條標簽的文本對象。 可以在cbar.ax.get_yticklabels()
中訪問它們。 下面的代碼段正確地更改了第二個顏色條標簽的重量:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
im = ax.imshow(np.random.rand(50, 50)/20)
cbar = ax.figure.colorbar(im, ticks=np.arange(0, 0.05, 0.01))
cbar.ax.get_yticklabels()[1].set_fontweight(1000)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.