Python 3 - 垂直线内的 matplitlib 文本

标签 python python-3.x matplotlib

我正在尝试使用 Python 3 中的 matplotlib 来实现如下图所示的效果:

enter image description here

有人问过类似的问题here但公认的答案不足以满足我的需要。我需要在虚线中间添加文本(我可以用 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()

如果我能把这段文字放在虚线中间就好了。

最佳答案

这不是解决方案,而更像是一种解决方法。您可以尝试设置文本的背景颜色,或者添加一个具有特定颜色的边界框,这将使线条黯然失色。这将使文本显示为内联。

你可以这样实现:

plt.text(0.5, 0.5, 'Some Text', ha='center', va='center',rotation='vertical', backgroundcolor='white')

enter image description here

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

enter image description here

当这条线覆盖在不同颜色的直方图上时,当然会出现问题,然后您必须将背景或框的颜色与直方图相匹配。这将显示如下内容:

enter image description here

关于Python 3 - 垂直线内的 matplitlib 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43842269/

相关文章:

python-3.x - python中的静默错误处理?

python - Python/Pandas 中带有重复分隔符的字符串提取

python - 获取 AxesSubplot 中的 AxesImage 实例

python - 如何将 2 个数据帧直方图合并到 1 个图中?

python - 在qtablewidget中突出显示搜索结果(选择并突出显示该文本或字符而不是所有行或列)

python - Pandas:根据分组总和结果与另一列中的值的比较来修改每组中最后一个单元格的值

python - 在 numpy 的范围内采样随机 float

Python - 仅压缩包含数据的列表

python - 如何根据第三列值用颜色绘制二维数据点

python - 使用 Python 将 XML 文档插入现有 XML