Python matplotlib 学习——建立画布和坐标系
#导入包
import matplotlib.pyplot as plt
#让图表在jupyter展示出来
%matplotlib inline
#解决中文乱码问题
plt.rcParams["font.sans-serif"]='SimHei'
#解决负号无法显示
plt.rcParams["axes.unicode_minus"] = False
#将图表设置成矢量图
%config InlineBackend.figure_format = 'svg'
#建立画布,figsize设置画布大小
fig = plt.figure(figsize=(8,6))
#利用add_subplot函数建立坐标系时需要先有画布,再在画布上绘制坐标系。
#在画布fig上绘制1×1个坐标系,并且把坐标系赋值给变量ax1,代码如下所示。
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.subplot2grid函数建立坐标系时不需要先建立画布,只需要导
入plt库即可。导入plt库以后可以直接调用plt库的subplot2grid方法建立
坐标系,示例如下:
plt.subplot2grid((2,2),(0,0))
上面代码表示将图表的整个区域分成2行2列,且在(0,0)位置绘图,
坐标系如下图所示。

用这种方式建立坐标系时,具体的绘图代码需要跟在建立坐标系的
语句后面。将图表的整个区域分成2行2列,并在(0,0)位置做折线图,在
(0,1)位置做柱形图,具体实现如下所示。
import numpy as np
x = np.arange(6)
y = np.arange(6)
plt.subplot2grid((2,2),(0,0))
plt.plot(x,y)
plt.subplot2grid((2,2),(0,1))
plt.bar(x,y)

与plt.subplot2grid函数类似,plt.subplot也是plt库的一个函数,也表
示将区域分成几份,并指明在哪一块区域上绘图,两者的区别只是表现
形式不一样。
plt.subplot(2,2,1)
上面的代码表示将图表的整个区域分成2行2列,且在第1个坐标系
里面绘图,运行结果如下图所示。

用这种方式建立坐标系时同样需要将具体的绘图代码跟在建立坐标
系语句后面。将图表的整个区域分成2行2列,并在第1个坐标系上做折
线图,在第4个坐标系上做柱形图,具体实现如下所示。
plt.subplot(2,2,1)
plt.plot(x,y)
plt.subplot(2,2,4)
plt.bar(x,y)

plt.subplots函数也是plt库的一个函数,它与subplot2grid函数和
subplot函数的不同之处是,subplot2grid函数和subplot函数每次只返回一
个坐标系,而subplots函数一次可以返回多个坐标系。
fig,axes = plt.subplots(2,2)
上面代码表示将图表的整个区域分成2行2列,并将4个坐标系全部
返回,运行结果如下图所示。

你想在哪个坐标系里面绘图通过axes[x,y]指明即可。现在我们在上
例的图表中绘图,首先在[0,0]坐标系中绘制折线图,然后在[1,1]坐标系
中绘制折线图,具体实现如下所示。
axes[0,0].plot(x,y)
axes[1,1].bar(x,y)
fig

几种创建坐标系方法的区别
第一种创建坐标系的方法 add_subplot 属于对象式编程,所有的操
作都是针对某个对象进行的,比如先建立一块画布,然后在这块画布上
建立坐标系,进而在坐标系上绘图。而后三种建立坐标系的方法属于函
数式编程,都是直接调用 plt 库里面的某个函数或者方法达到创建坐标
系的目的。
对象式编程的代码比较烦琐,但是便于理解;函数式编程虽然代码
简洁,但是不利于新人掌握整体的绘图原理,所以建议大家刚开始的时
候多使用对象式编程,当大家对整个绘图原理很熟悉时,再尝试使用函
数式编程。
这两种编程方式不仅体现在创建坐标系中,在接下来的一些操作中
也会有涉及,有的时候两者会交叉使用,也就是在一段代码中既有函数
式编程,也有对象式编程。
本文摘自《对比Excel,轻松学习Python数据分析》张俊红 著,如有侵权,请告知,立删。
Python matplotlib 学习——建立画布和坐标系的更多相关文章
- 【划重点】Python matplotlib绘图建立画布和坐标系
一.建立画布 import matplotlib.pyplot as plt import numpy as np x=np.arange(8) y=np.arange(8) print(x,y) # ...
- 小白学Python——Matplotlib 学习(2):pyplot 画图
matplotlib.pyplot是一组命令样式函数,使matplotlib像MATLAB一样工作.每个pyplot函数都会对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一 ...
- 小白学Python——Matplotlib 学习(1)
众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用它我们 ...
- 小白学Python——Matplotlib 学习(3) 函数图形
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1,1,50) y = 2*x + 1 plt.figure() ...
- Matplotlib学习---matplotlib的一些基本用法
Matplotlib有两种接口,一种是matlab风格接口,一种是面向对象接口.在这里,统一使用面向对象接口.因为面向对象接口可以适应更复杂的场景,在多图之间进行切换将变得非常容易. 首先导入matp ...
- Python - matplotlib 数据可视化
在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进 ...
- Python matplotlib绘图设置图例
一.语法简介 plt.legend(loc=2,edgecolor='red',facecolor='green',shadow='True',fontsize=10) #edgecolor 图例边框 ...
- Python matplotlib绘图设置坐标轴的标题
一.语法简介 plt.xlabel("销售月份",fontsize=16,color='red',fontweight='bold',loc='center',background ...
- 【划重点】Python matplotlib绘图设置坐标轴的刻度
一.语法简介 plt.xticks(ticks,labels,rotation=30,fontsize=10,color='red',fontweight='bold',backgroundcolor ...
- python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
随机推荐
- Docker网络详解——原理篇
安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .host 网络模式 简介 Host 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP ...
- 用深度强化学习玩FlappyBird
摘要:学习玩游戏一直是当今AI研究的热门话题之一.使用博弈论/搜索算法来解决这些问题需要特别地进行周密的特性定义,使得其扩展性不强.使用深度学习算法训练的卷积神经网络模型(CNN)自提出以来在图像处理 ...
- ARC144 D - AND OR Equation
ARC144 D - AND OR Equation Solution 首先可以猜测和答案仅和每一个二进制位以及\(f(0)\)有关系,不妨把按位\(\operatorname{AND}\)和按位\( ...
- Hbase之理论
第1章 HBase简介 1.1 什么是HBase HBase的原型是Google的BigTable论文,受到了该论文思想的启发,目前作为Hadoop的子项目来开发维护,用于支持结构化的数据存储. 官方 ...
- PHP + ELK实现日志记录
一个简单的PHP 文件 效果 full.conf文件 流程: 开启logstash服务之后. 在业务代码里面操作函数写入日志.log logstash通过实践戳获取到用户的变更,取出最后一行数据,发送 ...
- 了解 Flutter 开发者们的 IDE 使用情况
作者 / JaYoung Lee, UX Researcher at Google Google 的 Flutter 团队负责构建和维护 Android Studio (基于 IntelliJ-IDE ...
- postman一些你不常用的实用技巧,竟然还能这么玩
序言 各位好啊,我是会编程的蜗牛,作为java开发者,平时调试接口的时候,肯定需要用到接口调试工具,或者Swagger之类的.Swagger的优势在于它可以将后台加的一些接口注释信息直接展示出来,但是 ...
- 前端监控系列4 | SDK 体积与性能优化实践
背景 字节各类业务拥有众多用户群,作为字节前端性能监控 SDK,自身若存在性能问题,则会影响到数以亿计的真实用户的体验.所以此类 SDK 自身的性能在设计之初,就必须达到一个非常极致的水准. 与此同时 ...
- 第一阶段:linux运维基础·2
1. 找到当前目录下所有的.txt文件,且将查询结果写入到allfile.txt中 find . -type f -name '*.txt' > allfile.txt 2. 解读如下语句 -r ...
- beego学习———安装bee
Bee安装 有各种坑,一会儿GOPATH的问题,一会儿局部的问题了 唉,搞了一个小时 很重要的问题!!!!!!!!!!!! beego的bee工具只能强制新建项目在GOPATH/src目录下 虽然在别 ...