python - 设置 AnchoredOffsetbox 的线宽和面颜色?

标签 python matplotlib

是否可以更改 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')

example

最佳答案

看起来您可以访问您的 parambox 补丁,并设置其属性:

ax.add_artist 之前,尝试以下几行:

parambox.patch.set_linewidth(4)
parambox.patch.set_edgecolor('r')
parambox.patch.set_facecolor('g')

enter image description here

我认为这是设置底层matplotlib.patches.Patch的属性,所以你可以看看here了解更多可以更改的选项(例如 set_alphaset_linestyle)。

关于python - 设置 AnchoredOffsetbox 的线宽和面颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33634522/

相关文章:

python - 带有 Cisco ASA 的 paramiko

Python 执行 HTTP 命令

python - 如何在字符串中指定新行以便将多行写入文件?

Python/Matplotlib 子图 - 堆积条形图 - 为类别设置固定颜色

python - 如何制作移动散点的动画

matplotlib - 在 matplotlib 中增加内部填充/边距

python - matplotlib.pyplot 问题 python

python - 恒速循环高精度信号采样

python - 使用 matplotlib 绘制 share-x 图

python - 提取 pandas 多索引数据帧的子集