Python Matplotlib 的学习笔记

Python Matplotlib 的学习笔记

  • 0. Python Matplotlib 简介
  • 1. 为什么要用 Matplotlib?
  • 2. Matplotlib 基础类详解
    • 2-1. Line(线)
    • 2-2. Marker(标记)
    • 2-3. Text(文本)
    • 2-4. Legend(图例)
    • 2-5. Grid(网格)
    • 2-6. Title(标题)
    • 2-7. Image(图片)
  • 3. Matplotlib 容器类详解
    • 3-1. Figure(画布)
    • 3-2. Axes(画框)
    • 3-3. Axis(坐标轴)
    • 3-4. Tick(刻度)
  • 4. Matplotlib 常见的图形类型详解
    • 4-1. plot(线图)
    • 4-2. scatter(散点图)
    • 4-3. bar(柱状图)
    • 4-4. barh(水平柱状图)
    • 4-5. fill_between(填充区域图)
    • 4-6. stackplot(堆叠区域图)
    • 4-7. pie(饼图)
    • 4-8. errorbar(误差棒图)
    • 4-9. hist(直方图)
    • 4-10. boxplot(箱线图)
    • 4-11. axhline、axvline(水平/垂直线)
    • 4-12. axhspan、axvspan(水平/垂直区域)
    • 4-13. text(文本)
    • 4-14. annotate(注释)

0. Python Matplotlib 简介

想象一下,如果数据是一群小动物,那么Matplotlib就是一个魔法画笔,可以让这些小动物变成美丽的图画。Matplotlib是Python中一个非常强大的库,它可以帮助我们将数据绘制成图表,让复杂的信息变得简单易懂。

1. 为什么要用 Matplotlib?

  • 可视化数据:就像用画笔在纸上画出你想象中的世界一样,Matplotlib可以将数据画出来,让我们更直观地理解数据。
  • 多样的图表:无论是简单的线图、柱状图,还是复杂的3D图,Matplotlib都能轻松应对。
  • 高度定制:你可以调整图表的每一个细节,就像给画作添加不同的颜色和装饰一样。

2. Matplotlib 基础类详解

想象你在一个巨大的画布上绘画,Matplotlib就是你的画笔和颜料,让你能够在数据的世界中创作出美丽的艺术品。让我们一起来了解一下Matplotlib中的一些基础类,它们如何帮助我们绘制各种图形元素。

2-1. Line(线)

线就像是画布上的笔触,连接着数据点,展示数据之间的关系。

x = [1, 2, 3, 4]
y = [10, 20, 15, 25]

# linestyle: supported values are '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted'
plt.plot(x, y, linestyle='-', linewidth=2, color='blue')  # 绘制蓝色实线
plt.show()

输出,

在这里插入图片描述

2-2. Marker(标记)

标记就像是高亮数据点的小星星,帮助我们标注出重要的数据点。

plt.plot(x, y, marker='o', color='red')  # 使用红色圆圈标记每个数据点
plt.show()

输出,

在这里插入图片描述

2-3. Text(文本)

文本就像是在画布上添加注释,解释图中的各个部分。

plt.plot(x, y)
plt.text(2, 20, 'Important Point')  # 在(2,20)的位置添加注释
plt.show()

输出,

在这里插入图片描述

2-4. Legend(图例)

图例就像是地图上的指南针,告诉我们每种颜色或形状代表的意义。

plt.plot(x, y, label='Line 1')
plt.legend()  # 显示图例
plt.show()

输出,

在这里插入图片描述

2-5. Grid(网格)

网格就像是画布上的参考线,帮助我们更准确地理解数据点的位置。

plt.plot(x, y)
plt.grid(True)  # 显示网格
plt.show()

输出,

在这里插入图片描述

2-6. Title(标题)

标题就像是画作的名称,告诉我们这幅画想要表达的主题。

plt.plot(x, y)
plt.title("Data Visualization")  # 添加标题
plt.show()

输出,

在这里插入图片描述

2-7. Image(图片)

你还可以在Matplotlib中添加图片,就像是在画布上贴上一张照片。

img = plt.imread('image.png')  # 读取图片
plt.imshow(img)  # 显示图片
plt.axis('off')  # 不显示坐标轴
plt.show()

输出示例,

在这里插入图片描述

3. Matplotlib 容器类详解

在Matplotlib的艺术世界中,画布和画框就像是展示美丽图表的舞台和框架。让我们一起探索Matplotlib中的容器类:Figure(画布)、Axes(画框)、Axis(坐标轴)和Tick(刻度),它们如何共同作用来创造出精美的数据可视化作品。

3-1. Figure(画布)

Figure是Matplotlib中最顶层的容器,可以想象成一个空白的画布,所有的图表和元素都是在这个画布上绘制的。

fig = plt.figure(figsize=(8, 6))  # 创建一个大小为8x6英寸的画布
plt.show()

这就像是你准备了一个足够大的画布,准备在上面创作。

3-2. Axes(画框)

在Figure画布上,Axes是图表的主体,包括了图表内的数据区域、坐标轴、标题、图例等。一个Figure可以包含多个Axes。

fig, ax = plt.subplots()  # 创建一个包含单个Axes的Figure
ax.plot([1, 2, 3], [10, 20, 30])  # 在Axes上绘图
plt.show()

输出,

在这里插入图片描述

这就像是在你的画布上定义了一个绘画区域,准备在这个区域内绘制你的作品。

3-3. Axis(坐标轴)

Axis对象控制着图表中的坐标轴,包括坐标轴的界限、坐标轴上的刻度(Tick)和刻度标签等。

fig, ax = plt.subplots()  # 创建一个包含单个Axes的Figure
ax.plot([1, 2, 3], [10, 20, 30])  # 在Axes上绘图
ax.xaxis.set_major_locator(plt.MaxNLocator(5))  # 设置x轴主刻度的最大数量为5
ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: f'${x}'))  # 设置y轴刻度标签的格式
plt.show()

输出,

在这里插入图片描述

这就像是为你的绘画区域定制了尺子,帮助你更准确地标出数据的位置。

3-4. Tick(刻度)

Tick是坐标轴上的小标记,表示特定的数值。通过控制Tick,你可以调整刻度的位置、大小和标签。

fig, ax = plt.subplots()  # 创建一个包含单个Axes的Figure
ax.tick_params(axis='x', rotation=45)  # 将x轴的刻度标签旋转45度
ax.tick_params(axis='y', length=10)  # 设置y轴刻度的长度为10
plt.show()

输出,

在这里插入图片描述

这就像是在尺子上标出了刻度,帮助人们读取具体的数值。

4. Matplotlib 常见的图形类型详解

想象你是一位艺术家,面前有各种画笔和颜料,Matplotlib就是你的工具箱,里面装着各种图形类型的工具,让你能够创作出各式各样的数据艺术品。

4-1. plot(线图)

线图就像是用画笔在纸上勾勒出的轨迹,展示数据随时间或其他变量的变化趋势。

plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.show()

输出,

在这里插入图片描述

4-2. scatter(散点图)

散点图就像是在画布上随意洒下的彩色点,用来展示两个变量之间的关系。

plt.scatter([1, 2, 3, 4], [10, 20, 25, 30])
plt.show()

输出,

在这里插入图片描述

4-3. bar(柱状图)

柱状图就像是建立起来的一根根柱子,用来比较不同类别之间的数量或大小。

plt.bar(["A", "B", "C", "D"], [10, 20, 25, 30])
plt.show()

输出,

在这里插入图片描述

4-4. barh(水平柱状图)

水平柱状图是柱状图的一个变种,柱子横向展开,方便比较长度。

plt.barh(["A", "B", "C", "D"], [10, 20, 25, 30])
plt.show()

输出,

在这里插入图片描述

4-5. fill_between(填充区域图)

填充区域图就像是用颜料填充在两条线之间的区域,常用于表示范围或区间。

x = [1, 2, 3, 4]
y1 = [10, 20, 15, 25]
y2 = [15, 25, 20, 30]
plt.fill_between(x, y1, y2)
plt.show()

输出,

在这里插入图片描述

4-6. stackplot(堆叠区域图)

堆叠区域图就像是多层的彩色纸张叠加在一起,用来展示各部分随时间的变化。

plt.stackplot(x, y1, y2)
plt.show()

输出,

在这里插入图片描述

4-7. pie(饼图)

饼图就像是一个完整的圆形蛋糕被切成几块,每块代表数据的一部分,用来展示比例。

plt.pie([10, 20, 30, 40], labels=["A", "B", "C", "D"])
plt.show()

输出,

在这里插入图片描述

4-8. errorbar(误差棒图)

误差棒图用来表示数据的变异范围或不确定性,就像是在点上加上了能表达波动范围的小帽子。

plt.errorbar([1, 2, 3, 4], [10, 20, 25, 30], yerr=2)
plt.show()

输出,

在这里插入图片描述

4-9. hist(直方图)

直方图就像是将数据分组后,每组数据数量的高度,用来查看数据的分布情况。

plt.hist([1, 2, 2, 3, 4, 4, 4, 5])
plt.show()

输出,

在这里插入图片描述

4-10. boxplot(箱线图)

箱线图就像是数据分布的小房子,展示了数据的中位数、四分位数和异常值。

plt.boxplot([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
plt.show()

输出,

在这里插入图片描述

4-11. axhline、axvline(水平/垂直线)

这就像是在画布上画一条水平线或垂直线,用来标示出一个特定的值。

plt.axhline(y=0.5, color='r', linestyle='-')  # 在y=0.5的位置画一条红色水平线
plt.axvline(x=0.5, color='b', linestyle='--')  # 在x=0.5的位置画一条蓝色虚线垂直线
plt.show()

输出,

在这里插入图片描述

4-12. axhspan、axvspan(水平/垂直区域)

这些函数可以在画布上标记出一个水平或垂直的区域,就像是用透明颜色高亮某个区间。

plt.axhspan(0.25, 0.75, color='yellow', alpha=0.5)  # 高亮y=0.25到y=0.75的区域
plt.axvspan(0.25, 0.75, color='green', alpha=0.5)  # 高亮x=0.25到x=0.75的区域
plt.show()

输出,

在这里插入图片描述

4-13. text(文本)

text允许你在图中的任意位置添加文本,就像是在画中写下注释或说明。

plt.text(0.5, 0.5, 'Hello Matplotlib', ha='center', va='center')  # 在图中央添加文本
plt.show()

输出,

在这里插入图片描述

4-14. annotate(注释)

annotate用于在图表中添加注释,你可以指定注释文本的位置和被注释点的位置,还可以有一个箭头指向被注释的点。

plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.annotate('This is the top', xy=(3, 25), xytext=(2, 28),
             arrowprops=dict(facecolor='black', shrink=0.05))  # 在第三个点添加注释
plt.show()

输出,

在这里插入图片描述

Matplotlib提供了丰富的图形类型和绘图工具,就像一个艺术家的画笔集,允许你以各种创意方式展示数据。从简单的线图到复杂的注释和区域高亮,你可以利用这些工具来讲述数据的故事,使你的分析结果生动、直观。探索这些图形类型,让你的数据可视化作品更加丰富和有说服力。

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/387460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安卓价值1-如何在电脑上运行ADB

ADB(Android Debug Bridge)是Android平台的调试工具,它是一个命令行工具,用于与连接到计算机的Android设备进行通信和控制。ADB提供了一系列命令,允许开发人员执行各种操作,包括但不限于: 1. 安…

5种风格非常经典的免费wordpress主题

免费wordpress主题下载 高端大气上档次的wordpress主题,也可以是免费的,可以在线免费下载。 https://www.wpniu.com/themes/288.html wordpress免费主题 高端大气的wordpress免费主题,LOGO在顶部左侧,导航菜单在顶部右侧。 ht…

如何流畅进入Github

前言 以下软件是免费的,放心用 一、进入右边的下载链接https://steampp.net/ 二、点击下载 三、点击接受并下载 四、随便选一个下载链接进行下载 五、软件安装好打开后,找到Github 六、点击全部启用 七、再点击左上角的一键加速 八、这个时候你再进Git…

idea启动不起来

把进程杀了就好了 taskkill /pid 9744 -f

支付交易——跨境交易

摘要 老王兢兢业业经营生意多年,一步步从小杂货店做到现在,成立大型贸易公司。在做大做强的过程中,老王觉得国内市场已经饱和,竞争处处是红海。老王留意海外很多年了,决定走出去,转向海外:将国外的商品引进…

腾讯云4核8G服务器3年600元?

腾讯云4核8G服务器3年600元?目前的价格是轻量应用服务器4核8G12M带宽一年446元、646元15个月,云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元,5年6490.44元,标准型SA2服务器1444.8元一年,在txy.wiki可以查询详细…

坚持刷题|重建二叉树

文章目录 题目考察点代码实现实现总结扩展问题从前序和中序遍历中序列构建二叉树题目代码实现与后序实现的异同点 前序和后序可不可以唯一确定一棵二叉树呢? Hello,大家好,我是阿月。坚持刷题,老年痴呆追不上我,今天刷…

机器学习12-基本感知器

感知器(Perceptron)是一种最简单的人工神经网络结构,由美国心理学家Frank Rosenblatt在1957年提出。它是一种单层的前馈神经网络,通常用于二分类问题。 基本感知器由多个输入节点、一个输出节点和一组权重参数组成。每个输入节点都与输出节点连接,并且具有一个对应的权重参…

尚硅谷最新Node.js 学习笔记(一)

目录 一、Nodejs入门 1.1、为什么要学习Nodejs? 1.2、Nodejs是什么? 1.3、Nodejs的作用 1.4、Nodejs安装 1.5、Nodejs初体验 1.6、编码注意事项 二、Buffer(缓冲器) 2.1、概念 2.2、特点 2.3、使用 创建Buffer Buffe…

【AI视野·今日CV 计算机视觉论文速览 第299期】Mon, 29 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Mon, 29 Jan 2024 Totally 55 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers Annotated Hands for Generative Models Authors Yue Yang, Atith N Gandhi, Greg TurkGAN 和扩散模型等生成模型已经展示了…

如何用 ChatGPT 做项目管理?

ChatGPT 可以通过创建和维护跨团队项目协作计划,让员工更容易理解他们的角色和职责。 这个协作计划里面会包括每个团队或个人要执行的具体任务,每个任务最后期限和任何事情之 间的依赖关系。 该场景对应的关键词库:(24 个) 项目管理、项目协作计划、跨…

数学实验第三版(主编:李继成 赵小艳)课后练习答案(十)(2)(3)

实验十:非线性函数极值求解 练习二 1.求解极值问题: (1) s.t. function [c,ceq]fun(x) c(1)-(25-x(1)^2-x(2)^2); c(2)-(7-x(1)^2x(2)^2); ceq0;换一个窗口运行下面的程序: clc;clear; f(x)-2*x(1)-x(2); a[]; b[]; aeq[];beq[]; u[5;10]; l[0;0];…

AI换脸离线本地版-讲解2

嘿,准备好了吗?我来给你幽默地讲解下AI换脸! 所谓AI换脸,就是让你变成“百变小萝莉”或者“花心大少爷”一样,只需一键操作,就能把你的脸魔法般地贴到别人脸上,就像是面部贴纸一样。你可以秒变…

智慧园区的可视化大屏,比你见过的更漂亮。

智慧园区云平台的建设旨在建立统一的工作流程,协同、调度和共享机制,以云平台为枢纽,形成一个紧密联系的整体,获得高效、协同、互动、整体的效益。

Windows 安装和连接使用 PgSql数据库

一. PostgreSQL 安装详细步骤 下载地址:https://www.enterprisedb.com/postgresql-tutorial-resources-training-1?uuidd732dc13-c15a-484b-b783-307823940a11&campaignIdProduct_Trial_PostgreSQL_16 1. 双击打开安装包 2. 选择安装目录 3. 选择安装组件 4.…

ARM:AI 的翅膀,还能飞多久?

ARM(ARM.O)于北京时间 2024 年 2 月 8 日上午的美股盘后发布了 2024 年第三财年报告(截止 2023 年 12 月),要点如下: 1、整体业绩:收入再创新高。ARM 在 2024 财年第三季度(即 23Q4…

Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏解锁图标置顶显示功能实现

1.前言 在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏锁屏功能中,时钟显示的很大,并且是在左旁边居中显示的, 由于需要和竖屏显示一样,所以就需要用到小时钟显示,然后同样需要居中,所以就来分析下相关的源码,来实现具体的功能 如图…

蓝桥杯2023年真题(3)

1.冶炼金属&#xff08;二分、数学&#xff09; //二分 #include <iostream> using namespace std;int get1(int a, int b){int l 0, r 1e9;while(l 1 < r){int mid (l r) / 2;if(a / mid < b) r mid;else l mid;}return r; }int get2(int a, int b){int l …

FL Studio 21.2.3.4004 All Plugins Edition Win/Mac音乐软件

FL Studio 21.2.3.4004 All Plugins Edition 是一款功能强大的音乐制作软件&#xff0c;提供了丰富的音频处理工具和插件&#xff0c;适用于专业音乐制作人和爱好者。该软件具有直观的用户界面&#xff0c;支持多轨道录音、混音和编辑&#xff0c;以及各种音频效果和虚拟乐器。…

六、Datax通过json字符串运行

Datax通过json字符串运行 一、场景二、代码实现 一、场景 制作一个web应用&#xff0c;在页面上配置一个json字符串&#xff0c;保存在数据库里面。在执行json的时候&#xff0c;动态在本地创建一个json文件后执行&#xff0c;并识别是否成功&#xff0c;将执行过程保存在数据…