转自:https://www.cnblogs.com/nju2014/p/5620776.html

【Matplotlib】详解图像各个部分

首先一幅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

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

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

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

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

Tick Locators

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

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

一些不同类型的locators:

代码如下:

import numpy as np
import matplotlib.pyplot as pltdef tickline():
plt.xlim(0, 10), plt.ylim(-1, 1), plt.yticks([])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['left'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('none')
ax.xaxis.set_minor_locator(plt.MultipleLocator(0.1))
ax.plot(np.arange(11), np.zeros(11))
return axlocators = [
'plt.NullLocator()',
'plt.MultipleLocator(1.0)',
'plt.FixedLocator([0, 2, 8, 9, 10])',
'plt.IndexLocator(3, 1)',
'plt.LinearLocator(5)',
'plt.LogLocator(2, [1.0])',
'plt.AutoLocator()',
]n_locators = len(locators)size = 512, 40 * n_locators
dpi = 72.0
figsize = size[0] / float(dpi), size[1] / float(dpi)
fig = plt.figure(figsize=figsize, dpi=dpi)
fig.patch.set_alpha(0)for i, locator in enumerate(locators):
plt.subplot(n_locators, 1, i + 1)
ax = tickline()
ax.xaxis.set_major_locator(eval(locator))
plt.text(5, 0.3, locator[3:], ha='center')plt.subplots_adjust(bottom=.01, top=.99, left=.01, right=.99)
plt.show()

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

【Matplotlib】详解图像各个部分相关推荐

  1. 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐蚀和膨胀操作

    图像形态学中两种最基本的操作就是对图形的腐蚀和膨胀,可以说,形态学中的中高级操作都是建立在这两种操作之上.通过这两种基本的运算可以去除图像中的噪声,分割出独立的区域或者将两个区域连接在一起. 关于图像 ...

  2. OpenCV4萌新之路——详解图像读取函数 “imread”

    OpenCV4萌新之路--详解图像读取函数 "imread" 一.函数简析 二.参数详解 1.String& filename 2.flags = IMREAD_COLOR ...

  3. 零基础多图详解图神经网络(GNN/GCN)【论文精读】

    视频链接:零基础多图详解图神经网络(GNN/GCN)[论文精读] - 哔哩哔哩 (bilibili.com) 博客链接:A Gentle Introduction to Graph Neural Ne ...

  4. 详解图像形态学中的击中击不中变换操作(HMT),并提醒大家OpenCV4中的击中击不中变换操作是有问题的

    大家看这篇博文前可以先看一看下面这篇博文,下面这篇博文是这篇博文的基础: 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐 ...

  5. Python图像处理丨详解图像去雾处理方法

    摘要:本文主要讲解ACE去雾算法.暗通道先验去雾算法以及雾化生成算法. 本文分享自华为云社区<[Python图像处理] 三十.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算法)丨[拜托了 ...

  6. openstack架构详解图_英特尔顶级技术专家合力缔造精品:Linux开源网络全栈详解...

    日常水开篇 自1991年诞生起,Linux已经走过了接近三十年.Linux早已没有了问世时的稚气,正在各个领域展示自己成熟的魅力. 以Linux为基础,也衍生出了各种开源生态,例如网络和存储.而生态离 ...

  7. python之matplotlib详解

    参考 matplotlib-绘制精美的图表 matplotlib.pyplot.plt参数介绍 1 2 3 4 5 6 7 8 import matplotlib.pyplot as plt labe ...

  8. Python密度和轮廓图绘制--Matplotlib详解

    密度和轮廓图 有些情况下,我们需要在二维图表中使用轮廓或颜色区域来展示三维的数据(可以设想等高线地图或温度分布图).Matplotlib 提供了三个有用的函数来处理这项任务: plt.contour绘 ...

  9. python 三维数据绘制等高线_python密度与等高线绘制,Python,和,轮廓图,Matplotlib,详解...

    密度和轮廓图 有些情况下,我们需要在二维图表中使用轮廓或颜色区域来展示三维的数据(可以设想等高线地图或温度分布图).Matplotlib 提供了三个有用的函数来处理这项任务: plt.contour绘 ...

最新文章

  1. 网络犯罪:令牌化和区块链将终结数据盗窃行为?
  2. python教程:关于 [lambda x: x*i for i in range(4)] 理解
  3. VTK:Video之OggTheora
  4. P4838 P哥破解密码
  5. git remote prune,git prune,git fetch --prune等有什么区别
  6. [项目实战篇] Emos在线办公小程序--环境搭建
  7. S7-200SMART 模拟量间接寻址 批量处理
  8. Vue 生成海报的插件vue-canvas-poster
  9. 动词不定式(infinitive)的用法
  10. 楷书书法规则_硬笔书法中楷书结构八条原则
  11. Spring是什么?干什么的?怎么用?
  12. 【BZOJ 1925】【SDOI 2010】地精部落
  13. 如何开发一个药房药店小程序?药店小程序需要什么资质?
  14. 常用的操作系统镜像下载windows、linux 和MacOS
  15. 《Adobe After Effects CS4经典教程》——1 工作流程 1.1 开始
  16. 游戏开发中——垂直同步、绘制效率、显示器刷新频率与帧率
  17. 【小花仙】提供一个比较复杂但是可以截全身的截高清图的方法(重新整理)
  18. 摹客专访 | “猫系”设计师——开到茶花
  19. The content of element type “mapper“ must match “EMPTY“.错误
  20. 四分钟内明白 ARCore + 上手

热门文章

  1. 本地也能运行AWS?是的,AWS开始进军混合云领域了
  2. SpringCloud(第 054 篇)简单 Quartz-Cluster 微服务,采用注解配置 Quartz 分布式集群... 1
  3. mysql_install_db: /usr/bin/perl: bad interpreter:
  4. 1159: 零起点学算法66——反话连篇
  5. Linux第二次作业
  6. 【7集iCore3基础视频】7-2 iCore3原理图介绍
  7. libcurl 多线程使用注意事项 - Balder~专栏 - 博客频道 - CSDN.NET
  8. Delphi TStream 详细介绍
  9. sql IDENTITY(函数)
  10. 信息学奥赛一本通(1021:打印字符)