首页 > 编程语言 >Python matplotlib 学习——建立画布和坐标系

Python matplotlib 学习——建立画布和坐标系

时间:2022-11-01 11:57:44浏览次数:62  
标签:subplot plt 函数 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数据分析》张俊红 著,如有侵权,请告知,立删。

标签:subplot,plt,函数,Python,matplotlib,画布,绘图,坐标系
From: https://www.cnblogs.com/meng-xiaoyi/p/16843662.html

相关文章

  • Python 生成器
    什么是生成器:生成器是Python中的一个对象(按照某种规律,来生成元素的对象),生成器不是列表,保存了产生元素的算法,同时会记录游标的位置(现在拿到第几个元素了),为了下次继续拿......
  • 【Python】AES.MODE_CBC和 AES.MODE_ECB 加解密
    AES加解密MODE_CBC和MODE_ECB两种模式的完整实现 importjsonfromCrypto.CipherimportAESimportbase64importbinascii#数据类classMData():def__i......
  • Python 基础:入门必备知识
    Python基础:入门必备知识1标识符标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。以下......
  • 【Python】django
    安装虚拟环境windowsmkvirtualenv-pC:\Users\Administrator\AppData\Local\Programs\Python\Python38\Python.exedjango_testlinuxmkvirtualenv-ppython3django......
  • python绘制时序图
    使用python绘制时序图《应用时间序列分析》,第6版,王燕,中国人名大学出版社第8章多元时间序列分析,P298,例8-4的数据对1962-1979年美国白领阶层平均年薪和可能对它有显著影......
  • Python代码上传要求
    Python代码上传要求基本要求i==1(√)i==1(X)i==1(X)i==1(√)i<=1(√)i<=1(X)i<=1(X)i<=1(√)函数要求input("内容")(√)......
  • Python学习笔记
    20221031:对比python的列表数组与numpy插件在数据处理效率上的差别,importtime导入了常用的模板,importnumpyasnp导入numpy模块,别名为np。当时在操作时,pycharm没有安装num......
  • 学习python第二天
    ##字符串的操作##tyep查看对象的类型#name="wode"#print(type(name))###常用的类型:strintfloatbool##布尔型:bool##Ture1##flse0#print()#字符串......
  • python3-venv虚拟环境使用-解决包管理|版本控制混乱的问题
    安装sudoaptinstallpython3-venv创建虚拟环境python3-mvenvtest_env会自动在用户目录创建一个test_env的虚拟环境目录开启&使用虚拟环境source~/test_env/......
  • python基础-函数
    1.函数定义  函数就是将完成一件事情的步骤封装在一起并得到最终的结果;  函数名代表了这个函数要做的事情;  函数体是实现函数功能的流程;  添加一个函数也被叫......