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,一经查实,立即删除!

相关文章

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…

【笔记】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

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

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

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

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

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

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

android 文件选择器_Android 开发 打开系统文件、图片、视频等 实现单选多选功能...

在网上搜下,如何实现图片的多选或者文件的多选,令人纳闷的是居然多是moudle、或第三方jar包,当然第三方的工程功能复杂或兼容性比较好,并没有说明Android系统是如何提供多选的。既然这么多图片选择器的工程、或者是文件选择器的工…

C语言错误: HEAP CORRUPTION DETECTED

程序源代码&#xff1a; //写文件两种方式(文本文件和二进制文件)#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h>//文本写文件 int writeWord(const char *path,const char *pword){int ERRO_MSG 0;if (path N…

您不能不知的ToString()方法

1.1.1 摘要 相信大家对ToString()方法再熟悉不过了&#xff0c;由于该方法是.NET程序中最常用的方法之一&#xff0c;我们除了可以直接调用ToString()方法之外&#xff0c;.NET中的某些方法也隐式调用ToString()方法&#xff08;WPF&#xff0c;Windows Form和Silverlight等&am…

微信转账一次显示两个_微信为啥分红包和转账两大功能?这4个区别你要知道,望相互转告...

众所周知&#xff0c;自从移动支付普及之后&#xff0c;支付宝、微信就已经成为人们手机中必备的APP&#xff0c;其中微信更是具备社交、支付等一系列功能&#xff0c;所以在国内吸引了超十一亿用户的使用&#xff01;当我们节假日、过年时&#xff0c;很多用户都喜欢给亲朋好友…

java 正则提取及替换字符串

2019独角兽企业重金招聘Python工程师标准>>> <% page import"java.util.regex.Pattern" %><% page import"java.util.regex.Matcher" %><% page import"java.util.List" %><% page import"java.util.Array…

使用R语言绘制中国地图

R语言环境 R3.1.1 Windows8.1 需要安装的packages: maptools,gp 绘图所需要的数据 中国地图的GIS数据 &#xff08;可以此下面的网址下载) http://cos.name/wp-content/uploads/2009/07/chinaprovinceborderdata_tar_gz.zip 是一个压缩包&#xff0c;完全解压后包含三个文件&am…

ASP.NET MVC 5 学习教程:控制器传递数据给视图

起飞网 ASP.NET MVC 5 学习教程目录&#xff1a; 添加控制器添加视图修改视图和布局页控制器传递数据给视图添加模型创建连接字符串通过控制器访问模型的数据生成的代码详解使用 SQL Server LocalDBEdit方法和Edit视图详解添加查询Entity Framework 数据迁移之添加字段添加验证…

如何将ListT转换相应的Html(xsl动态转换)(二)

一、前言 紧跟着上一篇随笔&#xff0c;本文主要涉及到如何将xml与xsl动态转换成html&#xff0c;这个才是最关键的地方&#xff0c;所有的内容都是围绕这个主题来进行开展的。根据指定的xsl样式将List<T>转换相应的Html&#xff0c;相关的随笔如下&#xff1a; &#xf…

win10大文件无法移动到U盘

想着把自己的一些文件整理整理&#xff0c;发现稍微大点的文件竟然不能copy到U盘&#xff0c;百度了一番&#xff08;不好意思&#xff0c;最近百度犯错查的正狠^_^&#xff09;,发现因为U盘的格式不是NTFS,只要把U盘格式改为NTFS就可以copy大文件了。 方法一&#xff1a;用命令…

为多孔介质的当量直径_新型纳米多孔碳材料在催化剂载体方面的应用

成分&#xff1a;基本成分为碳91-95%&#xff0c;氧4-8%&#xff0c;氢1%&#xff0c;具有良好的导电性&#xff08;2-10 S/cm&#xff09;和优良的化学稳定性。 结构&#xff1a;内部是三维贯通的纳米孔道结构&#xff0c;每个孔与周围12个孔相连&#xff0c;孔道结构有序&…

替换空格

题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串中的空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 时间复杂度o(n)的算法 先遍历一次字符串统计出空格的总数&#xff0c;计算出替换之后的字符串的总长…