是否可以更改 AnchoredOffsetbox 的线宽、面颜色等?
我用它来列出我的图旁边的一些变量(例如“A=1”、“B=2”),以这种方式“=”垂直对齐,所以它有点像额外的图例(但句柄也是文本)。但我不知道如何像图例那样设置框架的属性。
非常感谢任何提示!
代码:
import matplotlib.pyplot as plt
from matplotlib.offsetbox import AnchoredOffsetbox, TextArea, HPacker, VPacker
fig = plt.figure(1, figsize=(3,3))
ax = plt.subplot(111)
p_txt0 = ['A = ', 'BBB = ']
p_num0 = [1.0, 2.0]
p_txt = [TextArea(text, textprops=dict(size='medium',weight='bold'))
for text in p_txt0]
p_num = [TextArea('%6.2f' % num, textprops=dict(size='medium',weight='bold'))
for num in p_num0]
p_vbox_txt = VPacker(children=p_txt, align="right", pad=0, sep=5)
p_vbox_num = VPacker(children=p_num, align="right", pad=0, sep=5)
box = HPacker(children=[p_vbox_txt,p_vbox_num], align="center", pad=5, sep=3)
parambox = AnchoredOffsetbox(loc=2, child=box, pad=0.0, frameon=True,
borderpad=0.0, bbox_to_anchor=(1.1, 1.0),
bbox_transform=ax.transAxes)
parambox.set_clip_on(False) #so box won't be cut off when saving
ax.add_artist(parambox)
plt.savefig('offsetbox.png', bbox_extra_artists=(parambox,), bbox_inches='tight')
最佳答案
看起来您可以访问您的 parambox
补丁,并设置其属性:
在 ax.add_artist
之前,尝试以下几行:
parambox.patch.set_linewidth(4)
parambox.patch.set_edgecolor('r')
parambox.patch.set_facecolor('g')
我认为这是设置底层matplotlib.patches.Patch
的属性,所以你可以看看here了解更多可以更改的选项(例如 set_alpha
、set_linestyle
)。
关于python - 设置 AnchoredOffsetbox 的线宽和面颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634522/