前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >以什么样的姿势来学Matplotlib库

以什么样的姿势来学Matplotlib库

作者头像
云深无际
发布2022-06-15 16:10:30
1730
发布2022-06-15 16:10:30
举报
文章被收录于专栏:云深之无迹

说起这个Python的可视化操作,Matplotlib库是一个绕不开的选择,甚至说可视库的鼻祖也不为过,但是一开始学习的时候是看着别人的博客或者demo修改一下,反正程序和我能跑一个就行,但是随着学习的深入,我对图形的要求变高,(其实是,需求太古怪,没有现成的作业可以抄了,只能自己写了),那这个首选的学习资料就是官网了,以前不回看这个东西,现在学的东西多了,反过来看这个东西,嘿!文档真香啊。

而且也反思了一下,如今学习也不要从什么博客开始了,直接从官网的文档看起,这才是知识之源。

如果你是对某个API不懂的话,那你直接可以搜索这个API来看使用的方法,也是这篇文章大部分写的内容,如果你是一个小白,也推荐在官网进行学习。

代码语言:javascript
复制
https://matplotlib.org/stable/plot_types/index.html

先打开库的官网,其实是打开我给的链接,你可以看见大量的已经绘制好的图:

大概就是这个样子

当你打开一个demo以后,会出现这个,你如果看不懂这些的意思,你点击这些位置回打开一个新的窗口来说明。

我这里就直接贴一个 生成X散列的函数,上面是这个函数调用的时候可以输入的所有参数,下面是简短的一句话来说明这个函数的作用,以及函数在各个版本之间有没有什么变化。下面的就是详细的参数意思了。

下面就是plot的函数了:

有没有发现一个小东西,*,这个是什么意思?

一个*代表后面的参数都必须赋值传参,也就是age=1的方式赋值, 否则报错!

也就是说标志着位置参数的就此终结,之后的那些参数,都只能以关键字形式来指定。

卡着就是这个~

我们看一个语言,等号前面的是返回值

返回的参数

一种惯用法,一般是按照你的字图的个数来处理

比如我们先写一个图的函数,一个ax就办事了。但是这里也要注意,有时候你不知道到底是返回了几个值,所以要首选axs这样的复数写法。

使用[],来定位要绘制的位子哈

那可以看看两个子图和四个子图的设置方法,ax这个无所谓就是个名字而已,但是还是建议写这个。

对于子图来说,都是一个坐标轴里面,那这个轴共用不?其实是个问题,这了你可以设置一下。

可以看到都是设置的ax这个,这个是什么呢?其实就好像是一种修饰一样。

可以看到是继承的艺术家,其实就是让图更加的好看,参数上面也很丰富。

你看这个参数,一开始其实是要一个画布,接着是这个Axes的位置,就好像是一块感兴趣的区域一样。接着就是设置要不要互相共享关于轴的一切。

其实axes就是一个有数值范围的绘图区域。

简单的绘制一个,fig是我们的最大的绘图区域,add把一个要绘制的区域加进去,就好像是注册一样的感觉,接着就是在这个区域随心所欲的写入了。

绘制的方法就是这样的

真的是太丰富了,都学完就大佬了

我们来看一个最常见的函数,plot,也是我们学习的起点。

看API,先看参数是啥情况:

你看,继承至Axes

参数是要传一对儿一对儿的元组,确实使用的时候是这样.

官方的文档有个优点,可以直接看到这个源码

对比文档就知道,doc是注释生成的

代码语言:javascript
复制
>>> plot(x, y, 'go--', linewidth=2, markersize=12)
>>> plot(x, y, color='green', marker='o', linestyle='dashed',
...      linewidth=2, markersize=12)

关于线的样子的设置有两种方法,一直是用fmt,我没有查到是什么意思,大概就是简写。还有就是关键字的参数,一个一个的写出来,而且是可以混用的,这点就比较舒服。

如果两个参数写的冲突咋办?关键字优先~

代码语言:javascript
复制
>>> plot(x1, y1, 'bo')
>>> plot(x2, y2, 'go')

绘制多组的图。

这里是绘制的2D的数组,你可以看到X,Y其实不是一模一样的,那就需要做更改,或是只是对(N,m),另一个长度必须为N这么长,而且给m的每一个都计算

代码语言:javascript
复制
>>> x = [1, 2, 3]
>>> y = np.array([[1, 2], [3, 4], [5, 6]])
>>> plot(x, y)

这个是一个惯用的样子,其实还有:

代码语言:javascript
复制
>>> for col in range(y.shape[1]):
...     plot(x, y[:, col])

解包是这样的

Look

或是直接给

还有一种将多个绘制的图像放在一起的。

代码语言:javascript
复制
>>> plot(x1, y1, 'g^', x2, y2, 'g-')

而且这也是一种常见的做法

对于一个库来讲,可以说的太多了,路漫漫其修远兮,加油!

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

本文分享自 云深之无迹 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一个*代表后面的参数都必须赋值传参,也就是age=1的方式赋值, 否则报错!
  • 也就是说标志着位置参数的就此终结,之后的那些参数,都只能以关键字形式来指定。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档