#导入包
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 学习——建立画布和坐标系的更多相关文章

  1. 【划重点】Python matplotlib绘图建立画布和坐标系

    一.建立画布 import matplotlib.pyplot as plt import numpy as np x=np.arange(8) y=np.arange(8) print(x,y) # ...

  2. 小白学Python——Matplotlib 学习(2):pyplot 画图

    matplotlib.pyplot是一组命令样式函数,使matplotlib像MATLAB一样工作.每个pyplot函数都会对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一 ...

  3. 小白学Python——Matplotlib 学习(1)

    众所周知,通过数据绘图,我们可以将枯燥的数字转换成容易被人们接受的图表,从而让人留下更加深刻的印象.而大多数编程语言都有自己的绘图工具,matplotlib就是基于Python的绘图工具包,使用它我们 ...

  4. 小白学Python——Matplotlib 学习(3) 函数图形

    import matplotlib.pyplot as plt import numpy as np x = np.linspace(-1,1,50) y = 2*x + 1 plt.figure() ...

  5. Matplotlib学习---matplotlib的一些基本用法

    Matplotlib有两种接口,一种是matlab风格接口,一种是面向对象接口.在这里,统一使用面向对象接口.因为面向对象接口可以适应更复杂的场景,在多图之间进行切换将变得非常容易. 首先导入matp ...

  6. Python - matplotlib 数据可视化

    在许多实际问题中,经常要对给出的数据进行可视化,便于观察. 今天专门针对Python中的数据可视化模块--matplotlib这块内容系统的整理,方便查找使用. 本文来自于对<利用python进 ...

  7. Python matplotlib绘图设置图例

    一.语法简介 plt.legend(loc=2,edgecolor='red',facecolor='green',shadow='True',fontsize=10) #edgecolor 图例边框 ...

  8. Python matplotlib绘图设置坐标轴的标题

    一.语法简介 plt.xlabel("销售月份",fontsize=16,color='red',fontweight='bold',loc='center',background ...

  9. 【划重点】Python matplotlib绘图设置坐标轴的刻度

    一.语法简介 plt.xticks(ticks,labels,rotation=30,fontsize=10,color='red',fontweight='bold',backgroundcolor ...

  10. python matplotlib plot 数据中的中文无法正常显示的解决办法

    转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...

随机推荐

  1. Logstash: 如何创建可维护和可重用的Logstash管道

  2. 生产环境中使用Kibana

    在 Kibana 中使用 X-Pack 使用 X-Pack 安全模块 控制用户通过 Kibana 可以访问哪些 Elasticsearch 数据. 当安装 X-Pack 时,Kibana 用户必须登陆 ...

  3. k8s上安装安装 Ingress Controller &卸载

    在 master 节点上执行 nginx-ingress.yaml文件内容 # 如果打算用于生产环境,请参考 https://github.com/nginxinc/kubernetes-ingres ...

  4. 使用ConfigMap配置您的应用程序

    转载自:https://kuboard.cn/learning/k8s-intermediate/config/config-map.html ConfigMap 作为 Kubernetes API ...

  5. MES与工业互联网的关联边界在哪里?

    MES和工业互联网本不存在关联边界,如果有,那也只是MES包括在工业互联网中,是工业互联网的一部分.二者本来就是处于两个不同维度提出来的概念.MES是从信息系统维度提出来的,上承ERP.下接PCS的制 ...

  6. 关于Oracle-VM-VirtualBox的安装与说明

    VirtualBox 是一款开源虚拟机软件.VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件 使用Qt编写,在 Sun 被 Oracle 收购 ...

  7. .Net WebApi 中的 FromBody FromForm FromQuery FromHeader FromRoute

    在日常后端Api开发中,我们跟前端的沟通中,通常需要协商好入参的数据类型,和参数是通过什么方式存在于请求中的,是表单(form).请求体(body).地址栏参数(query).还是说通过请求头(hea ...

  8. Docker | 自定义网络(网关、子网地址)

    了解 docker network 通过下面的命令来获取帮助 docker network --help Commands: connect Connect a container to a netw ...

  9. Java云原生崛起微服务框架Quarkus入门实践

    @ 目录 概述 定义 GraalVM简介 为何使用 特性 官方性能 实战 入门示例 步骤 安装GraalVM 创建quarkus工程 Idea导入项目 Idea运行和调试 打包成普通的Jar 打包成依 ...

  10. API接口笔记

    1.基类   定义返回信息 protected $user; //用户表 protected $token; //用户token protected $isSuccess = FALSE; //状态是 ...