matplotlib入门(四)----添加图例

添加图例

添加图例需要用到legend()函数,接下来在示例中详细说明它的用法:

示例1:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-6,6,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
line1, = plt.plot(x,y1,'r--')
line2, = plt.plot(x,y2,'b-')
plt.legend(handles=[line1,line2],labels=["sin function","cos function"],loc="lower right",fontsize=6)
plt.show()

结果:
在这里插入图片描述

<分析>

plt.legend()函数用于生成图例,它的handles参数用于指定图线的显示顺序,labels参数为每条图线生成标签,loc参数指定图例的位置,fontsize参数指定标签的字体大小,如果有多个图例,那么handles参数列表和labels参数列表均设置为列表格式。


除以上介绍的legend()参数外,其它控制图例样式的参数都能应用其中,比如edgecolor、shadow、title等,不再一一举例。
另外,handles参数也可省略,此时labels参数将按默认顺序为每条曲线添加图例。


除此之外,你也可以在plot()函数中单独地为每条曲线添加图例,这样在调用legend()函数时将更简洁。

示例2:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-6,6,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
line1, = plt.plot(x,y1,'r--',label="sin function")
line2, = plt.plot(x,y2,'b-',label="cos function")
plt.legend(loc="best",fontsize=6)
plt.show()

结果:
在这里插入图片描述

示例2在plot()函数中指定label参数,同时在调用legend()函数时省略了handles参数,并制定loc参数为"best",即自动选择在最恰当的地方生成图例。

关于loc参数,有以下取值可选:

best :自动选择最佳位置。
upper right :将图例放在右上角。
upper left :将图例放在左上角。
lower left :将图例放在左下角。
lower right :将图例放在右下角。
right :将图例放在右边。
center left :将图例放在左边居中的位置。
center right :将图例放在右边居中的位置。
lower center :将图例放在底部居中的位置。
upper center :将图例放在顶部居中的位置。
center :将图例放在中心。

另外注意,matplotlib默认是不支持label的参数为中文字体的,如果想设置中文字体,可以尝试导入matplotlib.font_manager子模块下的 FontProperties 类加载中文字体。

或者直接修改matplotlib的默认字体,关于修改方法,参见:
http://c.biancheng.net/view/2704.html

当然还有更方便的方法,即配置plt.rc参数

示例3:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-6,6,0.1)
y1 = np.sin(x)
y2 = np.cos(x)
 #设置rc参数显示中文标题
plt.rcParams['font.sans-serif']='SimHei'
#设置正常显示字符,用到这条语句是因为坐标轴包含负值,在调用上一条语句后不使用该语句则负号会乱码
plt.rcParams['axes.unicode_minus'] = False 
line1, = plt.plot(x,y1,'r--',label="正弦函数")
line2, = plt.plot(x,y2,'b-',label="余弦函数")
plt.legend(loc="best",fontsize=6)
plt.show()

结果:
在这里插入图片描述

关于rc参数的更多细节内容会在以后找机会介绍。

  • 11
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值