Loading [MathJax]/jax/output/CommonHTML/jax.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >原创 | matplotlib绘图教程,设置标签与图例

原创 | matplotlib绘图教程,设置标签与图例

作者头像
TechFlow-承志
发布于 2020-09-14 07:28:27
发布于 2020-09-14 07:28:27
2.9K00
代码可运行
举报
文章被收录于专栏:TechFlowTechFlow
运行总次数:0
代码可运行

大家好,欢迎大家阅读周四数据处理专题,我们继续介绍matplotlib作图工具。

在上一篇文章当中我们介绍了matplotlib这个包当中颜色、标记和线条这三种画图的设置,今天我们同样也介绍三种新的设置。分别是标题、轴标签以及图例,这三个内容也是非常实用并且常用的。颜色、线条、标记这些设置的是图像本身的一些属性,而标题、轴标签这些数据是额外提供的补充数据,所以这两者的内在逻辑是不同的。

设置标题

和公众号一样,图像的标题也很重要,它直接告诉我们这幅图表达的内容。举个例子来说你画了logistics的函数图像,但是给了一个外行人(比如老板)看,他是无论怎样也看不出来这究竟是什么意思的。所以我们需要标题,告诉看这幅图的人,这幅图到底画了一些什么数据。

基础设置

设置标题的方法很简单,如果我们就只有一幅图画的话,直接通过plt.title来设置即可。

在子图中设置

通过plt设置title非常方便,也是我们最常用的设置方法。但是对于多个子图的场景,我们就不能通过plt来设置title了,而是希望对于每一个子图都能够设置一个单独的title。

我们看一个之前的例子,我们之前用下面这段代码同时画出了两个图像:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig = plt.figure()
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)

ax1.plot(range(10))
ax2.plot(x, y)
plt.show()

这里的每一个ax都是一个subplot的对象,也就代表着每一个子图。所以我们要为子图设置title的话,那么显然应该通过subplot对象,也就是操作这里的ax变量来进行。这里我们用到的api不再是title,而是set_title。我也不知道为什么要起不一样的名字,可能是为了区分吧。

我们把set_title的逻辑加上之后,得到的图像是这样的:

这里有一个小小的问题是两个图挨得太近了,导致logistic的标题和上一幅图的坐标轴重叠了。这个也很简单,我们可以通过subplots_adjust设置让子图之间分开一些。

通过这个设置我们可以控制这些子图距离左右边界以及彼此之间的间隙,我们可以设置成plt.subplots_adjust(hspace=0.5),表示子图之间的间距是0.5英寸。这样我们得到的结果如下:

title参数

传入一个字符串作为标题,这个只是最基本的设置,其实标题还有很多参数可以diy。但一般不太常用,因为标题有和没有的区别比较大,是斜体还是正常体的区别很小,所以这些内容的边际收益很小。但我们还是要介绍一下的,至少需要有一个印象,以后如果要用的时候才能想的起来。

title一共有9种参数,分别是fontsize字体大小,fontweight字体粗细,fontsytle字体风格,verticalalignment竖直对齐方式,horizontalalignment水平对齐方式,rotation旋转角度,alpha透明度,backgroundcolor背景颜色和bbox外框。

我们一个一个来简单说下它们接收的参数:

  1. fontsize字体大小,我们可以输入一个数字来代表字体的大小,默认是12。也可以输入一个字符串,选择字符串的话只有['xx-small', 'x-small', 'small', 'medium', 'large','x-large', 'xx-large']这么几种。看起来它的逻辑和我们买衣服的尺码是一样的。
  2. fontweight字体粗细,一般常用的选项有:['light', 'normal', 'medium', 'semibold', 'bold', 'heavy', 'black']。这些我们顾名思义就可以猜得出来每个选项代表什么意思。比如bold就是加粗,semibold是半加粗,heavy是重加粗,black就是全黑了。
  3. verticalalignment竖直对齐方式的参数是这么几种:'center' , 'top' , 'bottom' ,'baseline' ,这个参数用得不多。
  4. horizontalalignment水平对齐方式的参数是[left,right,center],和我们日常在word里设置是一样的。这个比上面那个用得频率高一些。
  5. rotation旋转角度,我们可以传入一个数字代表旋转的角度,也可以传入vertical,horizontal 来表示我们想要旋转的效果。
  6. alpha透明度,参数在0到1之间。
  7. backgroundcolor背景颜色,也没什么好说的。
  8. bbox背景框,背景框虽然只是一个参数,但是它是由好几个参数组合形成的。比如facecolor背景颜色,edgecolor线条颜色,boxstyle方框外形,edgewidth线条粗细。

我们把这些参数都用起来给大家看一个组合例子:

轴标签

轴标签顾名思义,就是在坐标轴上加上标签,告诉大家这个坐标轴代表的含义。比如我们画的月份销量图,我们的横坐标是每年的月份,纵坐标是当月的销量。如果不标出来看图的人很难知道这个轴代表的含义,可能会理解错。所以我们可以给坐标轴加上轴标签,让大家一眼就看得出来,这个轴代表的含义。

加上轴标签的方法也非常简单,和刚才添加title的方式基本一样,用xlabel设置x轴标签,用ylabel设置y轴标签。比如这样:

如果是多个子图,我们同样操作subplot这个对象来进行设置。

设置图例

下面来介绍一下设置图例,图例这个翻译不是很好,但是也找不到更精准的翻译了。图例的使用场景是我们将多个曲线画在同一张画布上的时候,这时候为了区分每一个颜色的图像代表的含义,我们需要在图像当中标注出来。

我们来看这个例子,这个例子是我在matplotlib的官网找到的,它绘制的是x和

函数图像的差别。由于这三张图是画在一起的,为了能够让读者分辨出究竟什么颜色代表什么函数,所以在左上角标上了图例。

我们关注一下图像的左上角,已经替我们标好了。蓝色的是线性图像,也就是x,黄色的是x的平方,绿色的是x的立方。

那么这个图例是怎么标出来的呢?这里需要做两件事,第一件事就是在我们通过plot绘制图像的时候需要加上label,表示当前画的这个图像到底是什么意思。这个label也就是我们看到左上角展示图例当中的文字。比如linear, quadratic之类的就是label。另外一个就是在我们调用show这个函数之前,需要调用一下legend这个方法,这个方法就是绘制图例用的。

我们来看下刚才那张图的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x = np.linspace(0, 2, 100)

plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')

plt.xlabel('x label')
plt.ylabel('y label')

plt.title("Simple Plot")
plt.legend()
plt.show()

它在子图上的用法基本上一模一样,我们来看个例子:

我们可以看到对于ax1这张子图来说,我们做的事情和plt是一样的,就是在调用plot的时候标上了label,然后在show之前调用了legend方法。

最后来介绍一下legend的参数,其实legend有很多参数,我们选择其中比较常用的几个说一说。剩下的大家可以去查看相关的文档,我建议是用到的时候再去查,不过也可能一直没机会用到。

首先是loc,loc是location的缩写,顾名思义表示图例放置的位置。传入的参数表示一个方位,比如upper left, lower left, center left等等。上中下分别是upper,center,lower,左中右分别是left, center, right。我们可以自由组合这两个方位,可以得到9种方位,再加上一种best,表示自适配最佳放置位置。

除此之外是常见的几个参数,比如title,fontsize,edgecolor,shadow和facecolor。这几个参数我们根据名字大概就猜得出来,有些刚才介绍title的时候讲过了,效果是一样的,只不过放置的位置不同而已。

除了这些之外还有像是设置图例当中先放缩略图还是先放文字的markerfirst,设置散点图中散点数量的scatterpoints。以及一些关于间距文本长度的设置,这些都不是非常常用,就不一一赘述了。

今天的文章到这里就结束了,如果喜欢本文的话,请来一波三连,给我一点支持吧。(关注、在看、点赞)。

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)
matplotlib的图像都位于Figure对象中,你可以用plt.figure创建一个新的Figure.在subplot上进行绘制
汀丶人工智能
2022/12/21
2.1K0
【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)
数据可视化 | 手撕 Matplotlib 绘图原理(一)
本文内容适合入门及复习阅读,绘图所需的基本知识均有涉及,内容较多,由于篇幅限制,故分成两部分。
数据STUDIO
2021/06/24
4.6K0
【python绘图】matplotlib基本使用(含实例)
matplotlib是python的绘图库,主要用来绘制二维平面图。上手容易、简单,在python数据分析中有非常重要的作用。 基本上有两种使用 Matplotlib 的方法: 一、依靠 pyplot 自动创建和管理图形和轴,并使用 pyplot 函数进行绘图。 二、显式创建图形和轴,并在它们上调用方法(即“面向对象 (OO) 样式”)。
Crayon鑫
2023/10/10
2K0
【python绘图】matplotlib基本使用(含实例)
matplotlib
r表示不需要转义,raw(生的),LATEX用法,python中使用latex,需要在文本的后面加上$,\pi会转义为pi
h3110_w0r1d
2024/02/19
7060
matplotlib
python数据可视化系列教程——matplotlib绘图全解
matplotlib是受MATLAB的启发构建的。MATLAB是数据绘图领域广泛使用的语言和工具。MATLAB语言是面向过程的。利用函数的调用,MATLAB中可以轻松的利用一行命令来绘制直线,然后再用一系列的函数调整结果。
全栈程序员站长
2022/07/02
3.7K0
python数据可视化系列教程——matplotlib绘图全解
python matplotlib各种绘图类型完整总结
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)
Twcat_tree
2022/12/05
6.4K0
python matplotlib各种绘图类型完整总结
Matplotlib基础全攻略
Matplotlib是Python中最流行的绘图库,它模仿MATLAB中的绘图风格,提供了一整套与MATLAB相似的绘图API,通过API,我们可以轻松地绘制出高质量的图形。 中国银行股票数据下载: 链接:http://pan.baidu.com/s/1gfxRFbH 密码:d3id 1、开场例子 我们以中国银行股票收盘价曲线作为例子来作为开场。 首先我们通过pandas导入数据,并提取出收盘价一列: ChinaBank = pd.read_csv('data/ChinaBank.csv',index_co
石晓文
2018/04/11
2.1K0
Matplotlib基础全攻略
【转载】matplotlib.pyplot的使用总结大全(入门加进阶)
其实一年前就有想法好好学学python里的画图库matplotlib库,主要是因为每次可视化一些结果的时候,都是搜一些别人写好的代码,看的时候感觉乱乱的,不是说别人写的乱,而是每个人在某些点上实现的方式不太一样,还有就是觉得,总用别人的,就觉得不是自己创造的,没有成就感。这段时间做了个比赛,可视化分析的时候,又在搜代码,想自己加点东西,感觉很费劲,又不知道该怎么加,所以决定好好学一下,并做好总结。
marsggbo
2021/08/12
2.4K0
【数学建模】——matplotlib简单应用
Matplotlib 是一个强大的 Python 可视化库,广泛应用于绘制各种图形。其基本用法包括导入必要的模块,如 numpy 和 matplotlib.pyplot,并生成数据进行绘图。例如,可以通过线图、散点图、柱状图和雷达图来展示数据。创建三维图形需要使用 mpl_toolkits.mplot3d 库。使用 matplotlib 进行可视化可以通过简单的代码实现,包括设置标签、图例、颜色和线型等,以生成直观的图表来分析和展示数据。
小李很执着
2024/08/05
6350
【数学建模】——matplotlib简单应用
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
在实际的应用场景中,我们不仅需要在程序中展示图表,有时候还需要将这些图表保存为文件,以便在其他地方使用,比如插入文档、报告或网页中。matplotlib 提供了非常方便的保存图表功能。
半截诗
2024/10/09
2.1K0
【Python篇】matplotlib超详细教程-由入门到精通(下篇)
数据分析 ——数据可视化matplotlib(一)
在接下来的文章中主要介绍如何利用python 中的matplotlib进行数据的可视化展示。
andrew_a
2019/09/09
2K0
数据分析 ——数据可视化matplotlib(一)
Python数据分析Matplotlib
1.2 使用matplotlib.pyplot中的annotate()函数标注文字
荣仔_最靓的仔
2021/02/02
4K0
Python数据分析Matplotlib
Matplotlib从入门到精通04-文字图例尽眉目
参考: https://datawhalechina.github.io/fantastic-matplotlib/%E7%AC%AC%E4%B8%80%E5%9B%9E%EF%BC%9AMatplotlib%E5%88%9D%E7%9B%B8%E8%AF%86/index.html
IT从业者张某某
2023/10/16
6820
Matplotlib从入门到精通04-文字图例尽眉目
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
matplotlib 是 Python 中最常用的绘图库之一。它提供了类似于 Matlab 的 API,方便用户创建各种类型的图表。我们主要使用其中的 pyplot 模块,它是绘制图表的核心工具。
半截诗
2024/10/09
4.9K0
【Python篇】matplotlib超详细教程-由入门到精通(上篇)
python 用matplotlib画一个折线图
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
1.4K0
matplotlib绘图基础[通俗易懂]
http://blog.csdn.net/pipisorry/article/details/37742423
全栈程序员站长
2022/09/01
7.3K0
matplotlib绘图基础[通俗易懂]
Matplotlib 中文用户指南 3.6 图例指南
此图例指南是legend()中可用文档的扩展 - 请在继续阅读本指南之前确保你熟悉该文档(见篇尾)的内容。
ApacheCN_飞龙
2022/12/01
2.2K0
Matplotlib 中文用户指南 3.6 图例指南
数据可视化 | 手撕 Matplotlib 绘图原理(二)
关于箭头和注释风格的更多介绍与示例,可以在 Matplotlib 的画廊gallery[1]中看到,尤其推荐
数据STUDIO
2021/06/24
1.8K1
Matplotlib 可视化之图表层次结构
今天云朵君给大家系统介绍Matplotlib图表层次结构,通过步骤分解,详细了解一个图表绘制的过程 。
数据STUDIO
2022/04/11
5.4K0
Matplotlib 可视化之图表层次结构
超全!40000字 Matplotlib 实战
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
公众号机器学习与AI生成创作
2020/09/22
8.6K0
超全!40000字 Matplotlib 实战
相关推荐
【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档