matplotlib基础知识全面解析

图像基本知识:

通常情况下,我们可以将一副Matplotlib图像分成三层结构:

1.第一层是底层的容器层,主要包括Canvas、Figure、Axes;

2.第二层是辅助显示层,主要包括Axis、Spines、Tick、Grid、Legend、Title等,该层可通过set_axis_off()或set_frame_on(False)等方法设置不显示;

3.第三层为图像层,即通过plot、contour、scatter等方法绘制的图像。

容器层:容器层主要由Canvas、Figure、Axes组成

  Canvas是位于最底层的系统层,绘图过程中充当画板的角色,即放置画布的工具。通常情况下,我们并不需要对Canvas特别的声明,但是当我需要在其他模块如PyQt中调用Matplotlib模块绘图时,就需要首先声明Canvas,这就相当于我们在自家画室画画不用强调要用画板,出去写生时要特意带一块画板。

  Figure(fig)是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。当我们对Figure大小、背景色彩等进行设置的时候,就相当于是选择画布大小、材质的过程。因此,每当我们绘图的时候,写的第一行就是创建Figure的代码。

  Axes(ax,坐标系)是应用层的第二层,在绘图的过程中相当于画布上绘图区的角色。一个Figure对象可以包含多个Axes对象,每个Axes都是一个独立的坐标系,绘图过程中的所有图像都是基于坐标系绘制的。

辅助显示层:

  辅助显示层为Axes内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。该层的设置可使图像显示更加直观更加容易被用户理解,但又并不会对图像产生实质的影响。

图像层:

  图像层指Axes内通过plot、scatter、hist、contour、bar、barbs等函数根据数据绘制出的图像。

保存图表plt.savefig()

  调用plt.savefig()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定。下面程序将当前的图表保存为“test.png”,并且通过dpi指定图像的分辨率为120,因此输出图像的宽度为“8X120 = 960”个像素。使用这种方法可以很容易编写出批量输出图表的程序。plt.savefig("test.png",dpi=120)

plt.imshow()

imshow()函数格式为:matplotlib.pyplot.imshow(X, cmap=None)

X: 要绘制的图像或数组

cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。其它可选的颜色图谱如下列表:


颜色图谱


描述


autumn


红-橙-黄


bone


黑-白,x线


cool


青-洋红


copper


黑-铜


flag


红-白-蓝-黑


gray


黑-白


hot


黑-红-黄-白


hsv


hsv颜色空间, 红-黄-绿-青-蓝-洋红-红


inferno


黑-红-黄


jet


蓝-青-黄-红


magma


黑-红-白


pink


黑-粉-白


plasma


绿-红-黄


prism


红-黄-绿-蓝-紫-...-绿模式


spring


洋红-黄


summer


绿-黄


viridis


蓝-绿-黄


winter


蓝-绿

Plt.figure()

matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None)

所有参数都是可选的,都有默认值,因此调用该函数时可以不带任何参数,其中:

num: 整型或字符型都可以。设置为整型,则该整型数字表示窗口序号。设置为字符型,则该字符串表示窗口名称。用该参数来命名窗口,两个窗口序号或名相同,则后一个窗口会覆盖前一个窗口。

figsize: 设置窗口大小。是一个tuple型的整数,如figsize=(8,8)。

dpi: 整形数字,表示窗口的分辨率。

facecolor: 窗口的背景颜色。edgecolor: 窗口的边框颜色。

用figure()函数创建的窗口,只能显示一幅图片,显示多幅图片,则需要将这个窗口再划分为几个子图,在每个子图中显示不同的图片。

可以使用subplot()函数来划分子图,函数格式为:

matplotlib.pyplot.subplot(nrows, ncols, plot_number)

nrows: 子图的行数。

ncols:  子图的列数。

plot_number: 当前子图的编号。

ax.get_xlim()

获得Axes的x坐标范围,默认是 (0.0, 1.0)

ax.get_yscale()

获得y轴的数据刻画类型

ax.set_xscale(‘log‘)

将x轴设置为log

plt.tight_layout()

如果有多个子图,我们可以使用tight_layout()函数来调整显示的布局,该函数格式为:

matplotlib.pyplot.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None)

所有的参数都是可选的,调用该函数时可省略所有的参数:

pad: 主窗口边缘和子图边缘间的间距,默认为1.08

h_pad, w_pad: 子图边缘之间的间距,默认为 pad_inches

rect: 一个矩形区域,如果设置这个值,则将所有的子图调整到这个矩形区域内。

一般调用为:plt.tight_layout()  #自动调整subplot间的参数

原文地址:https://www.cnblogs.com/wzdLY/p/10068283.html

时间: 2024-11-06 03:31:03

matplotlib基础知识全面解析的相关文章

Matplotlib基础使用

matplotlib 一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 tick label 表示特定坐标轴的值 绘图区域(坐标系) axes 实际绘图的区域 坐标系标题 title 实际绘图的区域 轴标签 xlabel ylabel 实际绘图的区域 import numpy as np import pandas as pd impor

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包        二.Numpy科学计算包        三.Pandas数据分析包        四.Matplotlib绘图包 前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.K

android基础知识13:AndroidManifest.xml文件解析

1.重要性 AndroidManifest.xml是Android应用程序中最重要的文件之一.它是Android程序的全局配置文件,是每个 android程序中必须的文件.它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件 (activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息. 因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

网络基础知识解析

随笔 - 63  文章 - 1  评论 - 289 [Network] 计算机网络基础知识总结 阅读目录 1. 网络层次划分 2. OSI七层网络模型 3. IP地址 4. 子网掩码及网络划分 5. ARP/RARP协议 6. 路由选择协议 7. TCP/IP协议 8. UDP协议 9. DNS协议 10. NAT协议 11. DHCP协议 12. HTTP协议 13. 一个举例 计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合

Linux-dns基础知识和BIND的简单配置-2(正向解析和反向解析)

DNS服务器基本配置 bind详解:包名:bind进程:named协议:dns使用端口:53(tcp,udp)相关包:bind-chroot:将named进程的活动范围限定在chroot目录,保证安全性.bind-devel:与开发相关的头文件和库文件(编译安装bind时所需)bind-libs:bind服务器端和客户端都使用到的公共库文件bind-utils : bind客户端工具程序文件:/usr/sbin/namedbind权限相关:安装完named会自动创建用户named系统用户,nam

nginx 基础知识解析

工作架构模型是 nginx做前端反向代理处理请求,后端为lamp(php-fpm也为代理,代理处理动态网页请求,此外我们还可以安装Xcache为php-fpm处理动态网页加速)或者lnmp 基础知识理解 1.代理基础知识 代理:就是客户端请求一个互联网资源时,他没有能力到达真正的服务器,而是通过委托一个能够在互联网上取得各种资源的专业服务器帮他完成它想要请求的资源,并把结果返回给客户端的服务器叫做代理服务器 代理工作原理 分两个阶段,一是客户端请求到代理,代理到服务器取回资源到代理,然后代理服务

[C# 基础知识系列]专题一:深入解析委托——C#中为什么要引入委托

转自http://www.cnblogs.com/zhili/archive/2012/10/22/Delegate.html 引言: 对于一些刚接触C# 不久的朋友可能会对C#中一些基本特性理解的不是很深,然而这些知识也是面试时面试官经常会问到的问题,所以我觉得有必要和一些接触C#不久的朋友分享下关于C#基础知识的文章,所以有了这个系列,希望通过这个系列让朋友对C#的基础知识理解能够更进一步.然而委托又是C#基础知识中比较重要的一点,基本上后面的特性都和委托有点关系,所以这里就和大家先说说委托

Keepalived基础知识

大纲: 一.什么是Keepalived? 二.VRRP协议简介. 三.Keepalived原理. 四.Keepalived配置文件详解. 五.Keepalived配置示例. 一.什么是Keepalived? 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是