matplotlib plot 分组_小白学 Python 数据分析(16):Matplotlib(一)坐标系
人生苦短,我用 Python
前文传送门:
小白学 Python 数据分析(1):数据分析基础
小白学 Python 数据分析(2):Pandas (一)概述
小白学 Python 数据分析(3):Pandas (二)数据结构 Series
小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame
小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据
小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择
小白学 Python 数据分析(7):Pandas (六)数据导入
小白学 Python 数据分析(8):Pandas (七)数据预处理
小白学 Python 数据分析(9):Pandas (八)数据预处理(2)
小白学 Python 数据分析(10):Pandas (九)数据运算
小白学 Python 数据分析(11):Pandas (十)数据分组
小白学 Python 数据分析(12):Pandas (十一)数据透视表(pivot_table)
小白学 Python 数据分析(13):Pandas (十二)数据表拼接
小白学 Python 数据分析(14):Pandas (十三)数据导出
小白学 Python 数据分析(15):数据可视化概述
引言
各位同学好,本篇文章,我们来介绍下使用 Matplotlib 时如何建立坐标系。
回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线图直方图之类的统计图表,其中第一步就是建立直角坐标系。
翻出老课本,帮助各位同学回忆一下当年的数学课,直角坐标系就是下面这个:
直角坐标系不仅能存在于平面中,还有立体的:
当然,本文的只介绍平面直角坐标系如何构建,至于立体的,我们后面再聊。
画布
在构建平面直角坐标系之前,我们需要先创建一个画布。
What?画布是啥?
emmmmmmmmmmm,这就类似于我们在电脑上画画一样,需要打开画图软件,创建一个空白的白板,这个白板就是我们后续画图的地方。
使用 Matplotlib 创建画布的代码如下,首先需要导入 Matplotlib 的库:
import matplotlib.pyplot as pltfig = plt.figure(figsize=(6, 6))
上面这段代码我们就完成了一个宽和高都为 6 的画布的创建。
创建直角坐标系
创建直角坐标系有多很多种方法,这里我们一种一种来介绍:
add_subplot
首先,我们使用 add_subplot
函数来创建直角坐标系,我们就在刚才创建的那个画布上创建 1 X 1 个直角坐标系:
import matplotlib.pyplot as pltfig = plt.figure(figsize=(6, 6))fig.add_subplot(1,1,1)plt.show()
我们得到的结果如下:
我们再创建 2 X 2 个直角坐标系:
import matplotlib.pyplot as pltfig = plt.figure(figsize=(6, 6))ax1 = fig.add_subplot(2,2,1)ax2 = fig.add_subplot(2,2,2)ax3 = fig.add_subplot(2,2,3)ax4 = fig.add_subplot(2,2,4)plt.show()
结果如下图:
这里有一点需要说明一下,这里参数可以省略其中的 ,
逗号,如下:
ax1 = fig.add_subplot(221)
参数的含义为创建 2 X 2 网格第一子图。
subplot2grid
在使用 subplot2grid
函数创建直角坐标系的时候,不需要事先创建画布,可以直接使用创建,比如我们下面创建一个很简单的折线图和柱状图:
import matplotlib.pyplot as pltimport numpy as npx = np.arange(4)y = np.arange(4)# 绘制折线图plt.subplot2grid((2,2),(0,0))plt.plot(x, y)# 绘制柱状图plt.subplot2grid((2,2),(0,1))plt.bar(x, y)plt.show()
结果如下:
subplot
同上面的 subplot2grid
一样,我们同样可以通过 subplot
来绘制直角坐标系,比如我们拿上面的例子再使用 subplot
写一遍:
import matplotlib.pyplot as pltimport numpy as npx = np.arange(4)y = np.arange(4)# 绘制折线图plt.subplot(221)plt.plot(x, y)# 绘制柱状图plt.subplot(222)plt.bar(x, y)plt.show()
结果还是和上面一样的,小编不再贴了。
上面这个示例的含义是将图标区域分为 2 X 2 共计 4 个区域,在第一个区域上创建折线图,在第二个区域上创建柱状图。
subplots
subplots
看起来和 subplot
很像,实际上也是非常像的,它和 subplot
的不同之处是 subplot
一次只能返回一个坐标系,而 subplots
一次可以返回多个坐标系。
我们接着使用 subplots
完成前面的示例:
import matplotlib.pyplot as pltimport numpy as npx = np.arange(4)y = np.arange(4)fig, axes = plt.subplots(2, 2)# 绘制折线图axes[0,0].plot(x,y)# 绘制柱状图axes[0,1].bar(x,y)plt.show()
结果如下:
可以看到,我们虽然只使用到了两个坐标,但实际上 subplots
还是会帮我们将 4 个坐标全都创建出来。
小结
前面介绍的集中直角坐标系的创建方法并无本质上的区别,只有第一种 add_subplot
在使用的时候是需要先创建一个画布的,后面三种都是直接调用 Matplotlib 中的函数从而达到直接创建坐标系的方法。
matplotlib plot 分组_小白学 Python 数据分析(16):Matplotlib(一)坐标系相关推荐
- python绘制直角坐标系_小白学 Python 数据分析(16):Matplotlib(一)坐标系
人生苦短,我用 Python 前文传送门: 引言 各位同学好,本篇文章,我们来介绍下使用 Matplotlib 时如何建立坐标系. 回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线 ...
- python中for循环缩进_跟小白学Python数据分析——For循环
原标题:跟小白学Python数据分析--For循环 循环是指反复地连续做某件事,例如地球绕地轴自转一圈就是一天,自转的同时绕太阳公转一圈就是一年.周而复始,转了一圈又一圈,一次又一次地循环. 在编程过 ...
- 跟小白学Python数据分析——绘制仪表盘
本文继续采用PyEcharts v1.x版本进行绘制仪表盘. 注:PyEcharts分为 v0.5.x 和 v1.x 两个大版本,v0.5.x 和 v1.x 间不兼容,v0.5.x是基于Python2 ...
- 跟小白学Python数据分析——绘制水球图
本文继续采用PyEcharts v1.x版本进行绘制水球图. 注:PyEcharts分为 v0.5.x 和 v1.x 两个大版本,v0.5.x 和 v1.x 间不兼容,v0.5.x是基于Python2 ...
- 小白学 Python 数据分析(3):Pandas (二)数据结构 Series
在家为国家做贡献太无聊,不如跟我一起学点 Python 顺便问一下,你们都喜欢什么什么样的文章封面图,老用这一张感觉有点丑 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析( ...
- python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- post python爬虫_小白学 Python 爬虫(17):Requests 基础使用
人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...
- python 爬虫框架_小白学 Python 爬虫(28):自动化测试框架 Selenium (下)
人生苦短,我用 Python 如果我的文章对您有帮助,请关注支持下作者的公众号:极客挖掘机,您的关注,是对小编坚持原创的最大鼓励:) 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Py ...
- python数据分析相关论文_菜鸟学Python|数据分析精华文章大集合
原标题:菜鸟学Python|数据分析精华文章大集合 这是菜鸟学Python的第123篇原创文章 Python的数据分析是我比较喜欢的一个方向,因为可以探索数据里面的秘密,加上可视乎会非常漂亮,但是里面 ...
最新文章
- Grunt的配置和使用
- 数据库MYSQL学习系列二
- 系统消息是放客户端还是服务器,系统消息是放客户端还是服务器
- 07_NoSQL数据库之Redis数据库:Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存
- Gateway网关-网关作用介绍
- 基于Huffman算法的文件解压缩
- mysq由于主键冲突导致主从不同步
- UE4 身体部件换装实现
- The example program of C on point
- google海底光缆图_谷歌地图资讯-2013版“海底光缆地图”发布
- oracle 错误01017,ORA-01017:用户名密码出错 故障实例
- 派生类中重新定义虚函数及虚函数的注意事项
- BAPI_INCOMINGINVOICE_* 预制正向凭证和贷项凭证
- 基于Java Servlet图片服务器
- 关于BandiZip的bug,linux解压下不友好情况
- canvas路径,描边与填充
- 回答网友的几个跟帖和感想
- 毕业了能考计算机二级考试,大学毕业一定要考计算机二级考试吗?
- 快速提升SEO关键词搜索排名的5大伎俩
- Vue3 过10种组件通讯方式