在matplotlib中,如何在所有行前面绘制所有标签的多条标记线?

时间:2016-01-20 17:33:04

标签: python matplotlib

http://matplotlib.org/examples/api/line_with_text.html显示如何绘制带有线条标签的线条。 即使用户在交互式窗口中放大或缩小,标签也会保持在正确的位置。

但是,如果我绘制了几条重叠的行,那么一行中的文本标签可能会在另一行后面。

我可以将所有行标签放在所有行的前面吗?如何实现这一目标。

在MyLine的构造函数中使用self.text = mtext.Text(0, 0, '', zorder=100)无济于事。

line.text.set_zorder(10000)也无济于事。

最小例子

http://matplotlib.org/examples/api/line_with_text.html采取并修改(matplotlib 1.5.1 - License

我没有将MyLine类复制到下面的代码中。它在上面的网址。

# The code below may be 
# Copyright (c) 2012-2013 Matplotlib Development Team; All Rights Reserved
# used under the Matplotlib license and modified
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.lines as lines
import matplotlib.transforms as mtransforms
import matplotlib.text as mtext
#Insert MyLine class from 
#http://matplotlib.org/examples/api/line_with_text.html here.

fig, ax = plt.subplots()
for _ in range(20):
  x, y = np.random.rand(2, 5)
  line = MyLine(x, y, mfc='red', ms=12, label='line label')
  line.text.set_color('red')
  line.text.set_fontsize(16)
  ax.add_line(line)

plt.show()

Multiple labelled lines drawn with matplotlib: The labels of some lines are behind other lines

在图片中,某些标签前面有一些线条。 如何在每条线的前面以所有标签都是z顺序的方式为每条线绘制多条线条?

0 个答案:

没有答案