如何在matplotlib中的每一行旁边放置图例

问题描述 投票:1回答:1

这是我的情节,你可以看到一个情节中有超过15行,虽然我在右上角放了一个图例,但我仍然无法轻易区分每一行。

有没有更好的方法呢?例如,将传奇放在每一行的旁边?我找不到API。任何帮助表示赞赏。

enter image description here

您可以

matplotlib
1个回答
0
投票

评论确实是你需要的。这篇文章只是为了让解决方案更加明确。

使用注释可以将标签放置在特定位置。即它可以根据曲线最后一点的坐标放置,例如(xlast, ylast)。为了使图更漂亮,水平位置可以增加例如2%将标签放在离最后一点的一小段距离处(即标签放在(1.02*xlast, ylast))。

在一个小例子中:

import numpy             as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()


x     = np.linspace(0,1,2)
y     = 1*x
label = '1x'
color = 'b'

ax.plot(x, y, color=color)

ax.annotate(label,
  xy     = (     x[-1], y[-1]),
  xytext = (1.02*x[-1], y[-1]),
  color  = color,
)


x     = np.linspace(0,1,2)
y     = 2*x
label = '2x'
color = 'r'

ax.plot(x, y, color=color)

ax.annotate(label,
  xy     = (     x[-1], y[-1]),
  xytext = (1.02*x[-1], y[-1]),
  color  = color,
)


ax.set_xlim([0,1.2])

ax.set_xlabel('x')
ax.set_ylabel('y')

plt.savefig('so.png')
plt.show()

结果如下:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.