我一直在做一些线性回归,想在图例中的同一条线上绘制标记(原始数据)和线(回归)。为简单起见,这里有一个假的回归:
from pylab import *
ax = subplot(1,1,1)
p1, = ax.plot([1,2,3,4,5,6],'r-', label="line 1")
p2, = ax.plot([6,5,4,3,2,1],'b-', label="line 2")
p3, = ax.plot([1.2,1.8,3.1,4.1,4.8,5.9],'ro', label="dots 1")
p4, = ax.plot([6.1,5.1,3.8,3.1,1.9,0.9],'bo', label="dots 2")
ax.legend(loc='center right',numpoints=1)
show()
所以我希望图例由 2 行组成,每行显示一条线和一个点,而不是 4 行。我该怎么做?
最佳答案
你只需要更直接地使用legend
。参见 Matplotlib - How to make the marker face color transparent without making the line transparent和 user guide .
ax.legend([(p1, p3), (p2, p4)], ['set 1', 'set 2'])
plt.draw()
关于python - matplotlib 图例 : Including markers and lines from two different graphs in one line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624818/