Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图等基本图像属性

Caroline ·
更新时间:2024-09-20
· 975 次阅读

小黄人番外短片合集 — 第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 图例字体大小,默认为 mediumxx-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
【1x01】方法一:指定 label 参数

在画图的时候先指定 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 • 鲍勃



latex 数据 属性 数据分析 图例 matplotlib Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号