返回信息流完整代码如下:
from matplotlib.pylab import *
x=[1,2,3,4,5]
f1=[1,2,3,4,5]
f2=[1,4,9,16,25]
plot1=plot(x,f1,'-p',linewidth=2)
plot2=plot(x,f2,'-*',linewidth=2)
xlabel(r'$\rm{x } \ n$',fontsize=16)
ylabel(r'$\rm{y} \ \%$',fontsize=16)
title('A sample',fontsize=16)
xlim(0,8)
ylim(0.00,30)
legend((plot1,plot2),'lower right',fontsize=10)
legend()
savefig('A sample.png',dpi=75)
show()
说明:1、legend((plot1,plot2),'lower right',fontsize=10)为这样时能显示出图例,但是图例相应的图形名称为一对象的地址。
2、legend((plot1,plot2),('x','x2'),'lower right',fontsize=10)不能正常显示,只显示一个小方框
这是一条镜像帖。来源:北邮人论坛 / python / #7705同步于 2015/7/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
【新手求助】python 画图时在图中显示相应的图例时怎样显示图例
fenstart
2015/7/2镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
原来还真没有研究过legend()的参数要怎么传,一般都是在plot()的时候直接设置label。
不过参考http://matplotlib.org/users/legend_guide.html,发现plot那两句稍微改一下就行了:
plot1,=plot(x,f1,'-p',linewidth=2)
plot2,=plot(x,f2,'-*',linewidth=2)
一开始我也没搞懂变量名后面那个逗号是什么意思,稍微实验了一下发现plot返回的不是matplotlib对象本身,而是一个列表,加个逗号之后就把matplotlib对象从列表里面提取出来了……
然后用
legend((plot1,plot2),('x','x2'),loc='lower right',fontsize=10)
show()
就可以了。
注意,官方建议用legend()的时候不要依赖参数的位置来确定参数,要给出参数名。
【 在 fenstart 的大作中提到: 】
: 完整代码如下:
: from matplotlib.pylab import *
: x=[1,2,3,4,5]
: ...................