#导入包
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. Kibana可视化数据(Visualize)详解

    可视化 (Visualize) 功能可以为您的 Elasticsearch 数据创建可视化控件.然后,您就可以创建仪表板将这些可视化控件整合到一起展示. Kibana 可视化控件基于 Elastics ...

  2. 「国产系统」Tubian 0.3,兼容Windows和Android的GNU/Linux系统!

    0.4版已发布:https://www.cnblogs.com/tubentubentu/p/16741197.html Sourceforge.net主页(提供下载):https://sourcef ...

  3. 邻接矩阵dfs

    #include<bits/stdc++.h> using namespace std; int a[11][11]; bool visited[11]; void store_graph ...

  4. struts.xml 中用OGNL表达式取不到中文文件名的原因

    在struts2中xml配置如下,以execl文件为例: <result name="success" type="stream">    < ...

  5. Mybatis-Plus自动生成器生成代码基于springboot项目启动

    创建springbootweb项目 pom.xml 导入 MBP 依赖 <dependency> <groupId>com.baomidou</groupId> & ...

  6. Linux 下搭建 HBase 环境

    Linux 下搭建 HBase 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 HBase 环境 CSDN:Linux 下搭建 HBase 环境 前置工作 首先,需要先完成 Linux ...

  7. k8s集群正常kubectl用不了

    今天有个客户反馈k8s集群服务正常,业务也正常.kubectl get no敲入这个命令就有夯住了 仔细去检查配置发现少了一个config 最后在master-2上的config文件cp拷一份过来问题 ...

  8. 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<支持JDK19虚拟线程的web ...

  9. go: can only use path@version syntax with 'go get' and 'go install' in module-aware mode

    一: 非gomod模式 需要在go文件目录下的src创建代码 但是后面的版本一般做项目部管理不适用上述方法 也不会出现 go: can only use path@version syntax wit ...

  10. Fidder 抓包工具

    fiddler抓包原理 如上图本文一些 不重要 的鸡肋功能 自行百度 1. 安装与配置 1. 安装 安装地址https://www.telerik.com/download/fiddler可能有点慢 ...