我希望在matplotlib中有一个彩色缓冲区周围的注释文本。在QGIS中截取的屏幕截图显示了它的外观如何(红色):
我天真的方法涉及策划'一些文字'两次,具有不同的字体大小和字体粗细。结果看起来并不令人信服。 bbox
解决方案"工作",但与缓冲文本没有相同的美学。
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
# font size
plt.annotate(
'Some text', xy=(.5, .75), color=(.7, .7, .7),
ha='center', va='center', fontsize='20')
plt.annotate(
'Some text', xy=(.5, .75), color=(.2, .3, .8),
ha='center', va='center', fontsize='16')
# font weight
plt.annotate(
'Some text', xy=(.5, .5), color=(.7, .7, .7),
ha='center', va='center', fontsize='16', weight='bold')
plt.annotate(
'Some text', xy=(.5, .5), color=(.2, .3, .8),
ha='center', va='center', fontsize='16')
# bbox
plt.annotate(
'Some text', xy=(.5, .25), color=(.2, .3, .8),
ha='center', va='center', fontsize='16',
bbox=dict(fc=(.7, .7, .7), lw=0, pad=5))
(如何)可以(通过合理的努力)在matplotlib中重新创建缓冲文本?
答案 0 :(得分:7)
在here上使用路径效果概述了各种图形对象的详细演示。这是一个关注文本元素的最小例子。
import matplotlib.pyplot as plt
import matplotlib.patheffects as pe
plt.figure()
ax = plt.gca()
txt = ax.text(0.5, 0.5, "test",
size=20,
color='white',
path_effects=[pe.withStroke(linewidth=4, foreground="red")])
plt.show()