首先一幅Matplotlib的图像组成部分介绍。

在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。所属关系如下:

下面以一个直线图来详解图像内部各个组件内容:

其中:title为图像标题,Axis为坐标轴, Label为坐标轴标注,Tick为刻度线,Tick Label为刻度注释。各个对象关系可以梳理成以下内容:

图像中所有对象均来自于Artist的基类。

上面基本介绍清楚了图像中各个部分的基本关系,下面着重讲一下几个部分的详细的设置。

一个"Figure"意味着用户交互的整个窗口。在这个figure中容纳着"subplots"。

当我们调用plot时,matplotlib会调用gca()获取当前的axes绘图区域,而且gca反过来调用gcf()来获得当前的figure。如果figure为空,它会自动调用figure()生成一个figure, 严格的讲,是生成subplots(111)

Figures

Subplots

  1. plt.subplot(221) # 第一行的左图
  2. plt.subplot(222) # 第一行的右图
  3. plt.subplot(212) # 第二整行
  4. plt.show()

注意:其中各个参数也可以用逗号,分隔开。第一个参数代表子图的行数;第二个参数代表该行图像的列数; 第三个参数代表每行的第几个图像。

另外:fig, ax = plt.subplots(2,2),其中参数分别代表子图的行数和列数,一共有 2x2 个图像。函数返回一个figure图像和一个子图ax的array列表。

补充:gridspec命令可以对子图区域划分提供更灵活的配置。

Tick Locators

Tick Locators 控制着 ticks 的位置。比如下面:

  1. ax = plt.gca()
  2. ax.xaxis.set_major_locator(eval(locator))

一些不同类型的locators:

代码如下:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. def tickline():
  4. plt.xlim(0, 10), plt.ylim(-1, 1), plt.yticks([])
  5. ax = plt.gca()
  6. ax.spines['right'].set_color('none')
  7. ax.spines['left'].set_color('none')
  8. ax.spines['top'].set_color('none')
  9. ax.xaxis.set_ticks_position('bottom')
  10. ax.spines['bottom'].set_position(('data',0))
  11. ax.yaxis.set_ticks_position('none')
  12. ax.xaxis.set_minor_locator(plt.MultipleLocator(0.1))
  13. ax.plot(np.arange(11), np.zeros(11))
  14. return ax
  15. locators = [
  16. 'plt.NullLocator()',
  17. 'plt.MultipleLocator(1.0)',
  18. 'plt.FixedLocator([0, 2, 8, 9, 10])',
  19. 'plt.IndexLocator(3, 1)',
  20. 'plt.LinearLocator(5)',
  21. 'plt.LogLocator(2, [1.0])',
  22. 'plt.AutoLocator()',
  23. ]
  24. n_locators = len(locators)
  25. size = 512, 40 * n_locators
  26. dpi = 72.0
  27. figsize = size[0] / float(dpi), size[1] / float(dpi)
  28. fig = plt.figure(figsize=figsize, dpi=dpi)
  29. fig.patch.set_alpha(0)
  30. for i, locator in enumerate(locators):
  31. plt.subplot(n_locators, 1, i + 1)
  32. ax = tickline()
  33. ax.xaxis.set_major_locator(eval(locator))
  34. plt.text(5, 0.3, locator[3:], ha='center')
  35. plt.subplots_adjust(bottom=.01, top=.99, left=.01, right=.99)
  36. plt.show()

所有这些locators均来自于基类matplotlib.ticker.Locator。你可以通过继承该基类创建属于自己的locator样式。同时matplotlib也提供了特殊的日期locator, 位于matplotlib.dates.

【Matplotlib】详解图像各个部分的更多相关文章

  1. jquery详解图片平滑滚动

    jquery详解图片平滑滚动 随便写了个DOM,没有美观性,见谅 原理: 1.定义两组ul列表放图,第一个ul放5张图,第二个ul为空 2.为什么要用两个ul?因为要用到jQuery的克隆方法clon ...

  2. MySQL安装详解图文版(V5.5 For Windows)

    MySQL在Windows中会得到越来越广泛的应用.故整理MySQL安装详解如下,以备不时之需.安装环境:Windows Server 2003 [32bit NTFS]版本信息:MySQL 5.5. ...

  3. .Net事件管道详解图

  4. Linux目录结构示意详解图

  5. KMP 详解图

  6. [IOS] 详解图片局部拉伸 + 实现图片局部收缩

    (图为微信首页右上角『+』效果) 当初还在开发WP7的时候,从IOS同事那边了解到类似微信以上功能的实现. Item条数不同,总高度也不同,这就需要将背景图片进行局部拉伸到响应的高度,并且保持上方的三 ...

  7. STP生成树详解图

  8. Matplotlib.pyplot 常用方法

    1.介绍 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形.通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图 ...

  9. Pandas模块

    前言: 最近公司有数据分析的任务,如果使用Python做数据分析,那么对Pandas模块的学习是必不可少的: 本篇文章基于Pandas 0.20.0版本 话不多说社会你根哥!开干! pip insta ...

随机推荐

  1. Linux - expect自动化远程登录脚本

    简单模式: #!/usr/bin/expect -f spawn ssh root@192.168.0.1 expect "*assword*" send "root\r ...

  2. ZooKeeper:Quick Start

    下载.安装与配置 下载地址 安装 配置 ZooKeeper bin目录下脚本说明 Server 启动.停止 客户端操作 使用简易客户端访问 使用Java客户端访问 使用开源客户端ZkClient访问 ...

  3. MongoDB学习笔记~数据结构与实体对象不一致时,它会怎么样?

    回到目录

  4. Spring事务管理的三种方式

    一 .第一种:全注解声明式事务 Xml代码 复制代码 收藏代码 .<?xml version="1.0" encoding="UTF-8"?> .& ...

  5. CentOS 7 恢复 Windows 启动项

    安装Linux时一般会自动识别windows系统并添加引导项,而 CentOS 默认不支持 NTFS 分区,CentOS7采用了Grub2,与CentOS6有区别.手动引导windows分区修改配置稍 ...

  6. ubuntu下网络IP设置相关命令

    一.使用命令设置ubuntu的ip地址 1.修改配置文件blacklist.conf禁用IPV6: sudo vi /etc/modprobe.d/blacklist.conf 2.在文档最后添加 b ...

  7. ELF Format 笔记(十)—— 重定位(relocation)

    ilocker:关注 Android 安全(新手) QQ: 2597294287 重定位就是把符号引用与符号定义链接起来的过程,这也是 android linker 的主要工作之一. 当程序中调用一个 ...

  8. 浏览器请求页面时Etag和cache的区别

    etag:简单的说就是服务器收到客户端的请求后,根据返回的内容计算出来一个etag值,返回给客户端,当客户端下次再请求相同路径的时候会带上之前的etag值,服务器端会根据这次请求应该返回的内容计算出新 ...

  9. 《InsideUE4》-7-GamePlay架构(六)PlayerController和AIController

    PlayerController:你不懂,伴君如伴虎啊 AIController:上来,我自己动 引言 上文我们谈到了Component-Actor-Pawn-Controller的结构,追溯了ACo ...

  10. Ural 1011. Conductors

    1011. Conductors Time limit: 2.0 secondMemory limit: 64 MB Background Everyone making translations f ...