小黄人番外短片合集 — 第9集【Changing Light Bulb 换灯泡】
Matplotlib 系列文章(持续更新中):
《Python 数据分析三剑客之 Matplotlib(一):初识 Matplotlib 与其 matplotibrc 配置文件》 《Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性》 《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图等基本图像属性》 文章目录【1x00】设置图例【1x01】方法一:指定 label 参数【1x02】方法二:使用 set_label 方法【1x03】方法三:直接使用 legend 方法【2x00】数学公式 LaTeX【3x00】调整 x / y 轴刻度和范围【4x00】画布边框与坐标轴的移动【5x00】创建子图【5x01】方法一:add_subplot()【5x02】方法二:pyplot.subplot()【5x03】方法三:pyplot.subplots()【6x00】保存图像这里是一段防爬虫文本,请读者忽略。
本文原创首发于 CSDN,作者 TRHX。
博客首页:https://itrhx.blog.csdn.net/
本文链接:https://itrhx.blog.csdn.net/article/details/105828143
【1x00】设置图例
matplotlib.pyplot.legend()
方法可以为图表设置图例。
基本语法:matplotlib.pyplot.legend(\*args, \*\*kwargs)
部分常见参数:
参数 | 描述 |
---|---|
borderaxespad | 图例距离轴之间的距离,float 类型,默认为 0.5 |
borderpad | 图例边框空白区域大小,float 类型,默认为 0.4 |
columnspacing | 图例列间距,float 类型,默认为 2.0 |
edgecolor | 图例边缘线颜色,支持英文颜色名称及其简写、十六进制颜色码等 更多颜色示例参见官网 Color Demo |
facecolor | 图例背景颜色,默认继承自 axes.facecolor 其他颜色,支持英文颜色名称及其简写、十六进制颜色码等 更多颜色示例参见官网 Color Demo |
fancybox | 是否使用圆形框作为图例背景, 默认为 True |
fontsize | 图例字体大小,默认为 medium ,xx-small , x-small , small , medium large , x-large , xx-large , smaller , larger 也可以使用数字来表示字体大小 |
framealpha | 图例透明度,float 类型,默认为 0.8,取值范围:[0, 1] |
handleheight | 图例的高度 ,float 类型,默认为 0.7 |
handlelength | 图例的宽度,float 类型,默认为 2.0 |
handletextpad | 图例和图例文本之间的水平距离,float 类型,默认为 0.8 |
labelspacing | 不同图例之间的垂直距离,float 类型,默认为 0.5 |
loc | 图例在画布中的位置,默认为 best,其他取值:best , upper right , upper left , lower left lower right , right , center left , center right lower center , upper center , center 也可以用数字 0 - 10 来表示上述位置 |
shadow | 是否给图例添加阴影效果,默认为 False |
在画图的时候先指定 label
标签文本,再调用 legend()
方法即可。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
x = range(2, 26, 2)
y = range(0, 12)
a = [5, 10, 15, 20, 25, 30]
b = [3, 4, 5, 6, 7, 8]
plt.plot(a, b, label='图例一') # 指定 a,b 数据的图例
plt.plot(x, y, label='图例二') # 指定 x,y 数据的图例
plt.legend(loc=2, edgecolor='red', facecolor='#F5F5F5') # 指定图例位置、边缘线条颜色和背景色
plt.show()
【1x02】方法二:使用 set_label 方法
在画图的时候先使用 set_label()
方法指定标签文本,再调用 legend()
方法即可。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
x = range(2, 26, 2)
y = range(0, 12)
a = [5, 10, 15, 20, 25, 30]
b = [3, 4, 5, 6, 7, 8]
line1, = plt.plot(a, b)
line2, = plt.plot(x, y)
line1.set_label('图例一') # 指定 a,b 数据的图例
line2.set_label('图例二') # 指定 x,y 数据的图例
plt.legend(loc=2, edgecolor='red', facecolor='#F5F5F5') # 指定图例位置、边缘线条颜色和背景色
plt.show()
【1x03】方法三:直接使用 legend 方法
直接使用 legend()
方法来指定图例标签也可以达到同样效果,图例以列表或者元组形式储存,图例与绘制图形的顺序一一对应。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
x = range(2, 26, 2)
y = range(0, 12)
a = [5, 10, 15, 20, 25, 30]
b = [3, 4, 5, 6, 7, 8]
plt.plot(a, b)
plt.plot(x, y)
plt.legend(['图例一', '图例二'], loc=2, edgecolor='red', facecolor='#F5F5F5')
plt.show()
也可以使用两个元组,将绘制的图形和图例一一对应来储存:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
x = range(2, 26, 2)
y = range(0, 12)
a = [5, 10, 15, 20, 25, 30]
b = [3, 4, 5, 6, 7, 8]
line1, = plt.plot(a, b)
line2, = plt.plot(x, y)
plt.legend((line1, line2), ('图例一', '图例二'), loc=2, edgecolor='red', facecolor='#F5F5F5')
plt.show()
以上三种方法绘制的图形均一致:
博客专家
原创文章 165获赞 1134访问量 55万+
关注
私信
展开阅读全文
作者:TRHX • 鲍勃