pyplot绘图区域

Matplotlib图像组成

  • matplotlib中,整个图像为一个Figure对象,与用户交互的整个窗口
  • Figure对象中包含一个或多个Axes(ax)子对象,每个ax子对象都是一个拥有自己坐标系的绘图区域


创建figure窗口对象

plt.figure(num=None, figsize=None, dpi=None, facecolor=N)

  • num,num=n,选择图表n或创建图表n,给figure赋与编号
  • figsize,图像尺寸,figsize=(4,8)
  • facecolor,背景颜色
import matplotlib.pyplot as plt

plt.figure()
plt.plot([1,2,3]) plt.figure(2, figsize=(4,4), dpi=80, facecolor='#ff0000')
plt.plot([1,3,2]) plt.show()



绘图时,如果不设置figure窗口和ax子窗口,Matplotlib会自动创建一个figure窗口和一个ax子窗口subplots(111)

import matplotlib.pyplot as plt

#生成图像

#简写
plt.plot([1,2,3]) ######################### #等价于正常写法
plt.figure() # 创建figure,默认值为1
plt.subplot(111) #创建ax,默认值111
plt.plot([1,2,3]) #绘图 ######################### #面向对象的写法,将窗口对象赋给变量
fig, ax = plt.subplots() # 常用的面向对象简写方式
#上面代码等价于:
#fig = plt.figure()
#ax = fig.add_subplot(111) ax.plot([1,2,3]) plt.show()

 


多个ax子对象

plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False)

  • nrows,选中子图行数
  • ncols,选中子图列数
  • sharex,是否共享X轴(True共享,Flase不共享,col每列共享,row每行共享)
  • sharey,是否共享Y轴
  • figsize,figsize=(5,10),给本figure设置大小
import matplotlib.pyplot as plt

fig, ax = plt.subplots(3,2)
# fig, ax = plt.subplots(nrows=2, ncols=3, figsize=(6, 6), sharex=False, sharey=True) ax[0, 1].plot([1,2,3]) #0,1表示选中第0行第1列的ax子图 plt.show()


绘图区域:将一个大图分隔为多个子图,分别绘图,同时输出


简单绘图区域:plt.subplot

plt.subplot(nrows,ncols,plot_number)

  • nrows,横轴数量,类似表格的 行
  • ncols,纵轴数量,类似表格的 列
  • plot_number,当前绘图区域

例子:

import matplotlib.pyplot as plt

plt.subplot(3,2,1) #绘制3行两列6个子图,当前绘制第1个(从左上角横排往右下角数)
plt.plot([1,2,3]) plt.subplot(3,2,2)
plt.plot([1,3,2]) plt.subplot(3,2,3)
plt.plot([2,1,3]) plt.subplot(3,2,4)
plt.plot([2,3,1]) plt.subplot(3,2,5)
plt.plot([3,1,2]) plt.subplot(3,2,6)
plt.plot([3,2,1]) plt.show()


如果是横纵行列都是个位数,可以去掉逗号plt.subplot(324)


复杂绘图区域:pyplot子绘图区域

设定网格,选中网格,确定选中行列区域数量,编号从0开始

plt.subplot2grid(GridSpee,CurSpee,rowspan=1,colspan=1)

  • GridSpee:元组,这个图表共有几行几列

    • 例如(3,3),表示将区域分隔成3行3列9块区域
  • CurSpee:当前选中第几行第几列的子图表
    • 例如(1,0),这里表示第1行第0列(行列都以0开头)
  • rowspan:合并行
    • 例如rowspan=2,合并本块和下方块
  • conlspan:合并列
    • 例如colspan=3,合并本块和右侧两块

例子:

import matplotlib.pyplot as plt

plt.subplot2grid((4,3),(0,0),colspan=3) #4行3列,选中0行0列单元格,合并3列
plt.subplot2grid((4,3),(1,0),rowspan=2,colspan=2) # 选中1行0列单元格,合并2行,合并2列
plt.subplot2grid((4,3),(1,2),rowspan=2) #选中1行2列单元格,合并2行
plt.plot([2,3,1])
plt.subplot2grid((4,3),(3,0)) #选中3行0列单元格
plt.subplot2grid((4,3),(3,1)) #选中3行1列单元格
plt.subplot2grid((4,3),(3,2)) #选中3行2列单元格 plt.show()



pyplot绘图区域的更多相关文章

  1. matplotlib学习日记(十)-共享绘图区域的坐标轴

    (1)共享单一绘图区域的坐标轴 ''' 上一讲介绍了画布的划分,有时候想将多张图放在同一个绘图区域, 不想在每个绘图区域只绘制一幅图形,这时候借助共享坐标轴的方法实现在一个绘图区 绘制多幅图形的目的. ...

  2. 『Python』matplotlib共享绘图区域坐标轴

    1. 共享单一绘图区域的坐标轴 有时候,我们想将多张图形放在同一个绘图区域,不想在每个绘图区域只绘制一幅图形.这时候,就可以借助共享坐标轴的方法实现在一个绘图区域绘制多幅图形的目的. import n ...

  3. 【转】如何调整visio绘图区域尺寸大小

    原文网址:http://jingyan.baidu.com/article/948f5924033870d80ff5f9f1.html 在使用microsoft visio软件绘图时,为了绘图的质量和 ...

  4. echarts - 条形图grid设置距离绘图区域的距离

    在一些数据量过大的情况下,在一个固定的区域绘图往往需要对图表绘制区域的大小进行动态改变.这时候设置条形图距离绘图区域上下左右的距离可使用如下方式:表示条形图的柱子距离绘图区左边30%,距离右边40%, ...

  5. 关于C#界面开发winform与SharpGL结合鼠标只在OpenGLControl绘图区域显示坐标移动消息响应(鼠标单独在某个控件上的消息响应)

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773260.html 因为很多时候我们开发画图之类的工具时,鼠标移动之类的,都只想在绘图区域 ...

  6. 关于MFC与OpenGL结合绘图区域用鼠标来控制图形的移动的坑

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773171.html 之前开发的导入多个模型,旋转,分别移动什么什么的,都是在纯OpenGL ...

  7. QT 设置有效绘图区域

    void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::Re ...

  8. matplotlib.pyplot 绘图详解 matplotlib 安装

    apt-get install python-matplotlib 转载自: http://www.cnblogs.com/qianlifeng/archive/2012/02/13/2350086. ...

  9. 服务器上使用matplotlib.pyplot绘图

    在linux服务器端执行python脚本,有时候需要画图,但是linux没有GUI界面,因此需要在导入matplotlib.pyplot库之前先执行 import matplotlib as mpl ...

随机推荐

  1. 跨域获取json数据

    原文地址:http://my.oschina.net/LinBandit/blog/34570   前阵子做了一个前端动态加载json数据的应用,其中使用xmlhttprequest动态加载js,但是 ...

  2. [UE4]C++ getter and setter

    问:以前面向对象没学好.... 最近老是在想,既然要设为private为什么还要写个setter来改变它的值呢? 为什么不直接把它直接设成public倒省事? 呵呵,谢啦 答:用setter来改变数据 ...

  3. ECCV 2018 | 旷视科技提出GridFace:通过学习局部单应变换实现人脸校正

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕,旷视科技有多篇论文被此 ...

  4. 基于Linux的Samba开源共享解决方案测试(四)

    对于客户端的网络监控如图: 双NAS网关100Mb码率视音频文件的稳定读测试结果如下: 100Mb/s负载性能记录 NAS网关资源占用 稳定写 稳定写 CPU空闲 内存空闲 网卡占用 NAS1 8个稳 ...

  5. BFC概念及应用

    定义 块级格式化上下文   特性 1.内部box在垂直方向,一个接一个放置 2.box垂直方向的间距由margin决定    属于同一个BFC的相邻box的margin会发生重叠(外边距重叠)    ...

  6. linux 常规操作EOF写法梳理

    在平时的运维工作中,我们经常会碰到这样一个场景:执行脚本的时候,需要往一个文件里自动输入N行内容.如果是少数的几行内容,还可以用echo追加方式,但如果是很多行,那么单纯用echo追加的方式就显得愚蠢 ...

  7. python高亮显示输出

    知识内容: 1.高亮输出语法 2.高亮输出实例 前言: 在做购物车这道题时遇到了高亮显示输出某些内容的需求,于是就学了一下这方面的知识,以下是python高亮显示输出的使用方法: 购物车链接:  ht ...

  8. selenium+python自动化92-多线程启动多个不同浏览器

    前言 如果想用多个浏览器跑同一套测试代码,driver=webdriver.Firefox()这里的driver就不能写死了,可以把浏览器名称参数化. 后续如果想实现多线程同时启动浏览器执行用例,用前 ...

  9. 2013年6月编程语言排行榜,C语言位据第一位

    2013年6月编程语言排行榜,C语言位据第一位 C语言是很多主流开发语言的母体,.NET的底层,Java的底层都是C开发的,虽然很多新语言来势汹汹,但究其根源,都脱离不开C语言

  10. [Vue warn]: Cannot find element: #app

    转自:https://blog.csdn.net/linyeban/article/details/54629869 学习vue的时候,刚开始按照官网的例子敲写,却出现以下的问题: 问题:这是因为你的 ...