matplotlib plot 分组_小白学 Python 数据分析(16):Matplotlib(一)坐标系

71eab6b155a8a2ee63c8a8a71e16491b.png

人生苦短,我用 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 时如何建立坐标系。

回想一下以前我们在接受九年义务教育毒打上数学课的时候,应该都画过折线图直方图之类的统计图表,其中第一步就是建立直角坐标系。

翻出老课本,帮助各位同学回忆一下当年的数学课,直角坐标系就是下面这个:

6b83bbeca57f47be87ca3580d6102a5a.png

直角坐标系不仅能存在于平面中,还有立体的:

dbf7d7487d51051743ce156b7d491e5e.png

当然,本文的只介绍平面直角坐标系如何构建,至于立体的,我们后面再聊。

画布

在构建平面直角坐标系之前,我们需要先创建一个画布。

What?画布是啥?

emmmmmmmmmmm,这就类似于我们在电脑上画画一样,需要打开画图软件,创建一个空白的白板,这个白板就是我们后续画图的地方。

95f89f131c800c84e2935f6621d103d5.png

使用 Matplotlib 创建画布的代码如下,首先需要导入 Matplotlib 的库:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))

上面这段代码我们就完成了一个宽和高都为 6 的画布的创建。

创建直角坐标系

创建直角坐标系有多很多种方法,这里我们一种一种来介绍:

add_subplot

首先,我们使用 add_subplot 函数来创建直角坐标系,我们就在刚才创建的那个画布上创建 1 X 1 个直角坐标系:

import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 6))
fig.add_subplot(1,1,1)
plt.show()

我们得到的结果如下:

e4744cf4b158a018abda201117eaeb1d.png

我们再创建 2 X 2 个直角坐标系:

import matplotlib.pyplot as plt
fig = 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()

结果如下图:

a1307c6f55c2bb84d1c78cc61c25c288.png

这里有一点需要说明一下,这里参数可以省略其中的 , 逗号,如下:

ax1 = fig.add_subplot(221)

参数的含义为创建 2 X 2 网格第一子图。

subplot2grid

在使用 subplot2grid 函数创建直角坐标系的时候,不需要事先创建画布,可以直接使用创建,比如我们下面创建一个很简单的折线图和柱状图:

import matplotlib.pyplot as pltimport numpy as np
x = 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()

结果如下:

7f18747fb8e8e23faf9716e8752131be.png

subplot

同上面的 subplot2grid 一样,我们同样可以通过 subplot 来绘制直角坐标系,比如我们拿上面的例子再使用 subplot 写一遍:

import matplotlib.pyplot as pltimport numpy as np
x = 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 np
x = 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()

结果如下:

de6facee75b76c1fed07909a5e9672aa.png

可以看到,我们虽然只使用到了两个坐标,但实际上 subplots 还是会帮我们将 4 个坐标全都创建出来。

小结

前面介绍的集中直角坐标系的创建方法并无本质上的区别,只有第一种 add_subplot 在使用的时候是需要先创建一个画布的,后面三种都是直接调用 Matplotlib 中的函数从而达到直接创建坐标系的方法。

9fb13b4e1aaeeda19c016144d4a79fbf.gif

1df4e9d390a62ed68ffce33aad29c44d.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hdu 1423 最长公共递增子序列

这题一开始把我给坑了,我还没知道LCIS的算法,然后就慢慢搞吧,幸运的是还真写出来了,只不过麻烦了一点。 我是将该题转换为多条线段相交,然后找出最多多少条不相交,并且其数值死递增的。 代码如下&#xff1…

安卓从业者应该关注:Android 6.0的运行时权限

Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注。因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变。 没有深入了解运行时权限的开发者通常会有很多疑问&#xff0…

git把另一个盘的代码上传_如何使用Git上传代码到GitHub

初始化Git1. 安装Git客户端一路下一步下一步既可2. 配置Git1. 在电脑硬盘里找一块地方存放本地仓库,右键Git Bash进入git命令行执行如下代码 生成.git文件夹,表示本地git创建成功git config --global user.name "littonishir"git config --global user.email "l…

sh脚本学习之: sh脚本 、sed、awk

sh脚本 sh命令的批处理文件,支持更复杂的逻辑。  Shell中的变量 参数   $0  当前脚本路径 $1....$n  脚本执行对应的第n个参数 条件判断   文件判断 test [op] path e存在  f是文件  d是目录  r可读  w可写  x可执行   if判断/case if[条件判…

Silverlight OOB Setup

Sl的安装大家都知道:在程序点右键,选择安装。有没有另外一种方法,类似普通软件那样,通过安装包安装?答案当然是 有参考:http://www.code Technorati 标签: project.com/KB/install/slsetup.aspx思路很简单&…

2016-04-29 二分查找的面试题

为什么80%的码农都做不了架构师?>>> 1.面试题 例如: ip计算后的值=53文本内容:1,100,北京 101,1000,上海 1001,3001,广州 ...求ip53对应的省份2.代码如下: #!/usr/bin/python # coding: utf8def ip_find(i…

gettype拿不到值_王者荣耀:被低估的强势打野,就是这位拿大锤子的阿姨!

王者峡谷的小伙伴你们好,今天就为你们推荐一下这位野区女霸主钟无艳,不仅高伤害而且操作简单!版本更新在5月14日版本更新中,钟无艳的三个技能都被加强了,所有的蓝耗都被固定,不再随技能等级的成长值&#x…

如何培训

Ground roles 1>No phone,no computer.2>没有私下讨论 3>parkng Lot 1. 演讲技巧 2. 隐喻 说服别人时,讲故事,举例子 3. 问题回答 4. 会场设置 转载于:https://www.cnblogs.com/myfav/p/3176621.html

【笔记】MATLAB中的图形(2)

三维作图 1、mesh(z)语句 mesh(z)语句可以给出矩阵z元素的三维消隐图,网络表面由z坐标点定义,与前面叙述的x-y平面的线格相同,图形由临近的点连接而成。它可用来显示用其他方式难以输出的包含大量数据的大型矩阵,也可以用来绘制z变…

Kindeditor放置两个调用readonly错误

开始 需要调用Kindeditor中的readonly的方法,但是一直提示edit is undefined 而editor.readonly(true)又只对第一个对象有效 所以只能换换形式,干脆将下面的kindeditor拿上来 虽然是满足自己这个需求,但是真正的原因解决办法,还是…

acl在内核里的位置_Linux 进程在内核眼中是什么样子的?

本篇算是进程管理的的揭幕篇,简单介绍一个进程在内核眼里的来龙去脉,为接下来的进程创建,进程调度,进程管理等篇章做好学习准备。从程序到进程再到内核啥是程序,啥是进程,一张图可以给我们解释:…

majikan

转载于:https://www.cnblogs.com/YOUEN/p/3179091.html

sql语句查询数据库返回结果转换显示自定义字段

在开发中经常遇到在数据中用单字符保存数据对应简单信息,比如性别、状态、与否等。如果要求在绑定数据源并显示对应字段,比如性别:1表示男,0表示女;状态:1表示有效,0表示失效等等。简单一句sql语…

经典中的品味:第一章 C++的Hello,World!

“程序设计要通过编写程序的实践来学习”—Brian Kernighan 1.1 程序 何为程序?简单的说,就是为了使计算机能够做事,你需要在繁琐的细节中告诉它怎么做。对于怎么做的描述就是程序。编程是书写和测试怎么做的过程。维基百科上说,一个程序就像…

本地数据jqGrid分页

var mydata; $(function() { var str ; str "<span>共<span idp_total></span>条记录</span> " str "<span>每页" "<select idset_page_size classui-button ui-widget ui-state-default ui-corner-all&g…

避免将项目名称用作映射类型名称

避免将项目名称用作映射类型名称 在 Visual Studio 中向 BizTalk 项目添加新映射时&#xff0c;请不要将项目名称用作类型名称。如果这样做&#xff0c;编译器将生成一个或多个错误&#xff0c;类似于“类型中不存在类型名称‘’”。 若要从 BizTalk 项目内更改映射的类型名称&…

大教堂和市集

该文的作者Eric Raymond是Open Source Software领域的领袖&#xff0c;这方面许多新的思想正是从他那儿产生的&#xff0c;同时他也是UNIX上最流行的Email软件Fetchmail 的作者。 HansB翻译 本博文仅做简单排版 一. 大教堂和市集 Linux的影响是非常巨大的。甚至在&#xff15…

使用eclipse svn塔建(配置)时的一点点心得

有没有人遇到下面这种情况&#xff1f;&#xff1f;自己创建的SVN如下&#xff1a; 但网上别人搭建好的是这样子的&#xff1a; 就是为什么我的只有个主文件&#xff0c;而没有src、webroot、meta-inf、web-inf等子文件呢&#xff1f;&#xff1f; 这是我找了很多网上的资料&am…

android 获取网卡mac_Java获取Linux安卓设备的mac地址方法

Java如何获取Linux或安卓Android设备的mac地址呢&#xff1f;方法非常简单&#xff0c;只需要使用下方代码即可轻松通过java获取mac地址了&#xff0c;代码如下&#xff1a;public String getMacAddress() {String macAddress null;String str "";try {//linux下查…

实例构造器和类(引用类型)

构造器是允许将类型的实例初始化为良好状态的一种特殊方法。构造器方法在“方法定义元数据表”中始终教.ctor。创建一个引用类型的实例时&#xff0c;首先为实例的数据字段分配内存&#xff0c;然后初始化对象的附加字段&#xff08;类型对象指针呵呵同步块索引&#xff09;&am…