【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 ...
随机推荐
- mysql报错Unknown collation: utf8mb4_0900_ai_ci
mysql报错Unknown collation: utf8mb4_0900_ai_ci 解决方案: 将文件内的所有 utf8mb4_0900_ai_ci 换成 utf8_general_ci utf ...
- django--循环调用的解决办法
不要导入该APP的包,而是加上双引号写入"App.xxx"
- django之drf(部分讲解)
序列化类常用字段和字段参数 drf在Django字段类型的基础上派生了自己的字段类型以及字段参数 序列化器的字段类型用于处理原始值和内部数据类型直接的转换 还可以用于验证输入.以及父对象检索和设置值 ...
- 未来之JavaScript做嵌入式
只听说过汇编,c做嵌入式,从不曾想JAVAScript也牛到涉入硬件领域了,原本对他的思维定格就是一个浏览器脚本.看来真应了那句话'只有想不到,没有做不到' 话不多说看看这些大佬的帖子在嵌入式设备中使 ...
- MySQL之视图,索引,存储过程,触发器--实操
一.视图 什么是视图? 视图是一个虚拟表,其内容由查询定义. 同真实的表一样,视图包含系列带有名称的列和行数据. 行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成. 简单的来说视图是由 ...
- Hive执行计划之只有map阶段SQL性能分析和解读
目录 目录 概述 1.不带函数操作的select-from-where型简单SQL 1.1执行示例 1.2 运行逻辑分析 1.3 伪代码解释 2.带普通函数和运行操作符的普通型SQL执行计划解读 2. ...
- Rust 过程宏 proc-macro 是个啥
定义一个 procedural macro 新建一个 lib 类型的 crate: cargo new hello-macro --lib procedural macros 只能在 proc-mac ...
- Taurus .Net Core 微服务开源框架:Admin 插件【1】 - 微服务节点管理
前言: 最近发现 NetCore 的文章有点少,特来补几篇. 上一篇:Taurus.mvc .Net Core 微服务开源框架发布V3.1.7:让分布式应用更高效. 自上篇之后,期间更新了4个小版本, ...
- JavaCV人脸识别三部曲之二:训练
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<JavaCV人脸识别三部曲&g ...
- JDBC的增删改-结果集的元数据-Class反射-JDBC查询封装
一.使用JDBC批量添加 知识点复习: 1.JDBC的六大步骤 (导入jar包, 加载驱动类,获取连接对象, 获取sql执行器.执行sql与并返回结果, 关闭数据库连接) 2.封装了一个DBU ...