【matplotlib基础】--画布
Matplotlib 库是一个用于数据可视化和绘图的 Python 库。
它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。
使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。
难点在于对绘制的图形进行调整,这些调整包括:
- 图形的大小
- 多个图形的组合
- 坐标轴的方向,刻度的精度
- 图形的颜色和字体
等等。
进行这些调整需要对 Matplotlib 的绘图机制和其中的主要元素有个整体的了解。
本篇首先整体介绍下Matplotlib绘制的图形中的主要元素,然后重点介绍下其中第一个重要的元素--画布。
1. 主要元素
下面绘制一个简单的图形来演示Matplotlib绘图时的主要元素。
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
#绘制一个展示主要元素的图
x = np.array(range(0, 8))
y1 = np.sin(x)
fig = plt.figure()
fig.set_size_inches(10,4)
fig.set_facecolor('lightgreen')
fig.suptitle("整个图形的总标题")
fig.subplots_adjust(wspace=0.3)
ax1 = fig.add_subplot(121)
ax1.plot(x, y1)
ax1.set_title("图1 标题")
ax1.set_xlabel("图1--x轴")
ax1.set_ylabel("图1--y轴")
ax2 = fig.add_subplot(122)
y2 = np.cos(x)
ax2.plot(x, y1)
ax2.plot(x, y2)
ax2.set_title("图2 标题")
ax2.set_xlabel("图2--x轴")
ax2.set_ylabel("图2--y轴")
ax2.legend(labels=["sin", "cos"])
fig.show()

上例中,我们绘制了2个子图。
主要的元素包括,图形的大小,图形的标题(主标题和子图标题),坐标轴(轴标签和刻度),图例,子图中曲线(这里可以根据情况换成其他图形,比如柱状图,散点图等等)。
上面的示例代码不用太关心,这里只是为了显示Matplotlib的主要元素。
后续的文章会介绍各个主要元素的常用属性,最终的目的是能够灵活的绘制出符合显示要求的图形,而不仅仅只是绘制出图形。
本篇介绍的主要元素是画布。
2. 画布
画布是其他所有的元素的载体,可以说是最重要,也是最容易被忽视的元素。
绘制图形之前,第一件事就是创建画布。
2.1. 主要属性
创建画布之后,一般主要用到的属性是调整画布的大小和颜色。Matplotlib画布的大小通过设置英寸和dpi来实现,dpi表示一英寸有多少像素。
2.1.1. 画布大小
比如下面的示例:
fig = plt.figure(figsize=[6, 3], dpi=100)
fig.suptitle("标题")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)

修改dpi=200,图形明显变大和清晰。
fig = plt.figure(figsize=[6, 3], dpi=200)

2.1.2. 画布颜色
除了大小,设置画布的颜色也是比较常用的。
颜色主要有两种,背景色和边框颜色(默认的边框宽度是0,所以要设置边框颜色时,别忘了设置边框的宽度)。
比如:下面示例设置了背景色浅绿色,边框宽度10,颜色红色。
fig = plt.figure(facecolor="lightgreen",
edgecolor="red",
linewidth=10)
fig.suptitle("标题")
x = np.array(range(0, 8))
y = np.sin(x)
plt.plot(x, y)

2.2. 主要方法
除了属性,画布还有几个方法也是经常使用的。
2.2.1. 设置标题
上面的示例中已经包含了,也就是 suptitle() 方法。
2.2.2. 添加子图
添加子图用 add_subplot() 方法,这个方法的参数一般是三个数组 xyz,x表示有几行,y表示有几列,z表示是第一个子图。
比如:一行两列2个图
fig = plt.figure()
fig.add_subplot(121)
fig.add_subplot(122)

比如:2行一列2个图:
fig = plt.figure()
fig.add_subplot(211)
fig.add_subplot(212)

比如:2行2列4个图:
fig = plt.figure()
fig.add_subplot(221)
fig.add_subplot(222)
fig.add_subplot(223)
fig.add_subplot(224)

2.2.3. 保存图像
画布还有个重要的功能就是把显示的图形保存下来,即 savefig() 方法。
可以把绘制的图形保存到磁盘,用于分享或者制作报告。
fig.savefig("d:/share/image.png")
3. 总结回顾
画布让我们可以整体上设置图形的质量和排版,分析和作图过程中虽然不用过多考虑它,但是最终如果要出报告和文档时,画布的设置就会变得重要。
画布是绘图的第一步,接下来这个系列会逐步介绍 Matplotlib的其他主要元素。
【matplotlib基础】--画布的更多相关文章
- Matplotlib基础知识
Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 ...
- Matplotlib基础使用
matplotlib 一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度 ...
- 数据分析与展示——Matplotlib基础绘图函数示例
Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...
- HTML5 Canvas(画布)实战编程初级篇:基本介绍和基础画布元素
欢迎大家阅读HTML5 Canvas(画布)实战编程初级篇系列,在这个系列中,我们将介绍最简单的HTML5画布编程.包括: 画布元素 绘制直线 绘制曲线 绘制路径 绘制图形 绘制颜色,渐变和图案 绘制 ...
- Matplotlib基础图形之散点图
Matplotlib基础图形之散点图 散点图特点: 1.散点图显示两组数据的值,每个点的坐标位置由变量的值决定 2.由一组不连续的点组成,用于观察两种变量的相关性(正相关,负相关,不相关) 3.例如: ...
- matplotlib基础
Matplotlib 基础 注:本文中的程序都默认引入了numpy库和matplotlib库,并且分别简写为np与plt:如果读者不知道怎么使用numpy库,可以移步到这一博客上进行简单的学习 一.简 ...
- 模块简介与matplotlib基础
模块简介与matplotlib基础 1.基本概念 1.1数据分析 对已知的数据进行分析,提取出一些有价值的信息. 1.2数据挖掘 对大量的数据进行分析与挖掘,得到一些未知的,有价值的信息. 1.3数据 ...
- [笔记]SciPy、Matplotlib基础操作
NumPy.SciPy.Matplotlib,Python下机器学习三大利器.上一篇讲了NumPy基础操作,这节讲讲SciPy和Matplotlib.目前接触到的东西不多,以后再遇到些比较常用的再更新 ...
- 第二周 数据分析之展示 Matplotlib基础绘图函数实例
Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...
- matplotlib基础知识全面解析
图像基本知识: 通常情况下,我们可以将一副Matplotlib图像分成三层结构: 1.第一层是底层的容器层,主要包括Canvas.Figure.Axes: 2.第二层是辅助显示层,主要包括Axis.S ...
随机推荐
- lec-6-Actor-Critic Algorithms
从PG→Policy evaluation 更多样本的均值+Causality+Baseline 减少variance 只要拟合估计Q.V:这需要两个网络 Value function fitting ...
- vscode运行java输出至指定文件夹
一.前言 最近呢,需要用vscode编写一点小的java程序,也就是单java文件,但是呢,我发现coderunner运行java,一个java文件编译出一个class文件,这也太乱了!不符合我简约的 ...
- 【pandas基础】--目录(完结)
pandas 基础内容的目录: 概述 pandas 主要功能和应用场景的介绍. 数据读取 数据读取是第一步,只有成功加载数据之后,后续的操作才有可能. pandas 可以读取和导入各种数据格式的数据, ...
- GIS融合之路(三)CesiumJS和ThreeJS相机同步
同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎.但由于ThreeJS引擎使用广泛,下文中直接用ThreeJS同CesiumJS的整合方案代替山海鲸中3D引擎和CesiumJS整合. ...
- XMLConfiguration -- Poco
Library : Util Package: Configuration Header : Poco/Util.XMLConfiguration.h 此配置类从 XML 文档中提取配置属性. 支持类 ...
- Greenplum 上手
最近因为一个项目需要,我们准备考虑使用 Greenplum 应用在我们的大数据平台中的数据治理项目中,期待着可以在我们的项目过程中有着更大的价值发现 Greenplum 介绍 Greenplum是一种 ...
- 程序包xx不存在解决方案:java: 程序包org.aspectj.lang.annotation
java: 程序包org.aspectj.lang.annotation不存在 #我自己已经配置好pom.xml文件,但是一直报错这个 aspectj 不存在 下面是我的pom.xml配置 可以看出来 ...
- 3. AOP
1. 代理模式 1.1 概念 ① 介绍 二十三种设计模式中的一种,属于结构型模式.它的作用就是通过提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用.让不 ...
- 使用Flask和Django构建Web应用程序:现代Web应用程序框架
目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 3.1 准备工作:环境配置与依赖安装 3.2 核心模块实现 3.3 集成 ...
- Unity的IPostGenerateGradleAndroidProject:深入解析与实用案例
Unity IPostGenerateGradleAndroidProject Unity是一款流行的跨平台游戏引擎,它支持多种平台,包括Android.在Unity中,我们可以使用IPostGene ...