如何设置等高线标签的背景颜色

5
我正在使用命令:
axins.clabel(c, levls, fontsize=4, fmt='%4.2f', colors= 'white')

为了为我的轮廓生成标签,我希望它们是白色的(使用colors='white'可以实现),并且有红色的背景。我找不到是否可以指定它们的背景颜色。
2个回答

9

我晚了几年才来到派对,但这个答案仍然在谷歌上出现,所以这是我通过 @pelson 的答案启发得出的解决方案。

如果您将轮廓图设置为:

CS = ax.contour(X, Y, Z)
clabels = ax.clabel(CS)

那么您可以使用以下方法简单地更新背景颜色:

[txt.set_backgroundcolor('white') for txt in clabels]

然而,边界框(bbox)通常很大,不必要地遮挡其他特征。因此,直接更新bbox更好:

[txt.set_bbox(dict(facecolor='white', edgecolor='none', pad=0)) for txt in clabels]

3

一个文本艺术家的backgroundcolor可能是你需要的(http://matplotlib.org/users/text_props.html)。 clabel通过labelTexts属性暴露了文本艺术家(似乎没有记录)。

类似于以下内容(未经测试):

clabels = ax.clabel(c, levls, color='white', ...)
[txt.set_backgroundcolor('red') for txt in clabels.labelTexts].

如果这个方法不起作用,请更新您的问题,并提供一个SSCCE,我会发布一些可行代码。
希望对您有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接