如何将plt.text字段一个接一个地放置?

时间:2018-08-28 19:07:30

标签: python python-3.x matplotlib

我正在尝试在同一 x 坐标上向图中添加多条文本行,一个在另一个之上。 问题是 y 的最大比例很高,因此,如果我将它们按字面意思放在另一个之上(所以 y 因为第一个值是 y (第二个值+字体大小),它们是如此接近以至于无法将它们彼此区分开。 一种解决方案是将差距乘以比例。或找出上一行使用的矩形,并使用它计算 y 。但是,如果我放大图片,它们将不会彼此相邻... 有任何可扩展的解决方案吗?文本以某种方式自动缩放,是否存在空白/ y 轴的选项?

x = <my calculated x value>
y = 6 * (n - i - 1) # where n - amount of lines, i - index of current text line
text = plt.text(x, y, text_drops, fontsize=6)

接下来的2张图片显示了该图的相同部分-实际大小并放大了。

此图显示实际比例:一个单元格的高度为50000

Scaled so y cell is 25 points high

这是放大的,因此一个单元格的高度为25

Scaled so y cell is 25 points high

UPD:以其他方式将Joooeey的建议付诸实践-为我工作:

x = <my calculated x value>
text = plt.text(x, 0, text_drops + i * '\n', fontsize=6) # where i - index of current  line

1 个答案:

答案 0 :(得分:1)

您可以使用一个文本字段,以换行符分隔:

lines = ['drop start at 125989msg/sec',
         'drop start at 126169msg/sec',
         'drop start at 126381msg/sec']
multiline = '\n'.join(lines) # put in line breaks
texts = plt.text(x, y, multiline, horizontalalignment='left', verticalalignment='left')