Python 3-垂直行内的matplitlib文本

n00*_*00b 4 python matplotlib python-3.x

我正在尝试matplotlib从Python 3中使用类似以下所示的图像:

在此处输入图片说明

这里已经提出类似的问题但是接受的答案不足以满足我的需要。我需要在虚线中间添加文本(可以使用plt.axvline()函数进行绘制)。

这是我尝试过的

import matplotlib.pylab as plt
plt.hist(some_data)
plt.axvline(0.5, color='k', linestyle='--')
plt.text(0.5, 0.5, 'Some Text', ha='center', va='center',rotation='vertical')
plt.show()
Run Code Online (Sandbox Code Playgroud)

如果我可以将此文本放在虚线的中间,那将会很棒。

Yas*_*hTD 5

这不是解决方案,而是更多的解决方法。您可以尝试设置文本的背景色,或使用特定的颜色向其添加边框以使其黯淡。这将使文本内联显示。

您可以这样实现:

plt.text(0.5, 0.5, 'Some Text', ha='center', va='center',rotation='vertical', backgroundcolor='white')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

plt.text(0.5, 0.5, 'Some Text', ha='center', va='center',rotation='vertical', bbox={'facecolor':'white', 'pad':5})
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当然,当将这条线叠加在其他颜色的直方图上时,就会出现问题,然后您必须将背景或框的颜色与直方图进行匹配。这将显示如下内容:

在此处输入图片说明