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

完结!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面向对象学习小记

python中的类可以分为经典类和新式类。 类的定义方法: class 类名: pass 类名后面没有小括号!!! 【注意和函数的定义做区分。】 函数的定义: def 函数名(): pass

【Linux】并发解决(上)-中断屏蔽,原子操作

🔥博客主页:PannLZ 🎋系列专栏:《Linux系统之路》 😘欢迎关注:👍点赞🙌收藏✍️留言 文章目录 并发解决1.中断屏蔽2.原子操作2.1整形原子操作2.2位原子操作原子变量使用例子 并发解决…

(力扣)1314.矩阵区域和

给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&#xff1a; 输入&a…

【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论移动测试相关知识。主要知识点包括&#xff1a;移动测试分类及android环境搭建&#xff0c;adb常用命令&#xff0c;appium环境搭建及使用&#xff0c;pytest框架学习&#xff0c;PO模式&#xff0c;数据驱动&#xff0…

随机过程及应用学习笔记(三)几种重要的随机过程

介绍独立过程和独立增量过程。重点介绍两种独立增量过程-—维纳过程和泊松过程。 目录 前言 一、独立过程和独立增量过程 1、独立过程&#xff08;Independent Process&#xff09; 2、独立增量过程&#xff08;Independent Increment Process&#xff09; 二、正态过程&am…

C语言求解猴子分桃子

问题&#xff1a;海滩上有一堆桃子&#xff0c;五只猴子来分。第一只猴子把这堆桃子平均分为五份&#xff0c;多了一个&#xff0c;这只 猴子把多的一个扔入海中&#xff0c;拿走了一份。第二只猴子把剩下的桃子又平均分成五份&#xff0c;又多了 一个&#xff0c;它同样把多的…

【数据结构】图

文章目录 图1.图的两种存储结构2.图的两种遍历方式3.最小生成树的两种算法&#xff08;无向连通图一定有最小生成树&#xff09;4.单源最短路径的两种算法5.多源最短路径 图 1.图的两种存储结构 1. 图这种数据结构相信大家都不陌生&#xff0c;实际上图就是另一种多叉树&…

各指针含义区分

一、char *a P109: (1)(变量)指针变量&#xff1a;指针变量&#xff0c;即指针的定义&#xff1a;用来存放指针的变量。指向的是变量&#xff0c;且可以改变其指向的地址。P104 char *a (2)(变量)指针常量&#xff1a;指针常量&#xff0c;指向的是变量首字节的地址&#xff…

QT 工具栏 状态栏 停靠部件 核心部件

添加/删除工具栏 删除工具栏方法和删除菜单栏方法一样&#xff0c;不过工具栏可以有多个&#xff0c;所以每次右键MainWindow对象&#xff0c;都可以看到添加工具栏的选项。 工具栏添加动作 新添加的QAction对象会在动作编辑器里找到&#xff08;Action Editor&#xff09;&a…

【51单片机】AT24C02(江科大、爱上半导体)

一、AT24C02 1.AT24C02介绍 AT24C02是一种可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息 存储介质:E2PROM 通讯接口:12C总线 容量:256字节 2.引脚即应用电路 本开发板AT24C02原理图 12C地址全接地,即全为0 WE接地,没有写使能 SCL接P21 S…

WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体

在查看WordPress你好多莉插件时发现代码中使用了wptexturize()函数用来随机输出一句歌词&#xff0c;下面boke112百科就跟大家一起来学习一下WordPress函数wptexturize的介绍及用法示例。 WordPress函数wptexturize介绍 wptexturize( string $text, bool $reset false ): st…

VMware虚拟机网络配置

VMware虚拟机网络配置 桥接模式NAT网络 桥接模式 桥接模式其实就是借助你宿主机上的网卡进行联网和通信&#xff0c;所以相当于虚拟机和宿主机平级&#xff0c;处于同一个网段中。 配置要点&#xff1a; 注意选择正确的宿主机网卡 查看宿主机的网络信息&#xff0c;这些信息指…

PHP脉聊交友系统网站源码,可通过广告变现社交在线聊天交友即时通讯APP源码,附带视频搭建教程

探索全新社交体验&#xff1a;一站式PHP交友网站解决方案 &#x1f310; 全球化交友&#xff0c;无界沟通 在数字化的浪潮下&#xff0c;社交已不再受地域限制。我们的PHP交友网站不仅支持多国语言&#xff0c;还配备了即时翻译功能&#xff0c;让您轻松跨越语言障碍&#xff…

数据结构(2) 线性表

线性表 线性表的定义线性表的基本操作lnitList(&L)DestroyList(&L)Listlnsert(&L,i,e)ListDelete(&L,i,&e)LocateElem(L,e)GetElem(L,i)Length(L)PrintList(L)Empty(L)Tips:引用值 小结 根据数据结构的三要素–逻辑结构、数据的运算、存储结构&#xff0c;…

Uniapp(uni-app)学习与快速上手教程

Uniapp&#xff08;uni-app&#xff09;学习与快速上手教程 1. 简介 Uniapp是一个跨平台的前端框架&#xff0c;允许您使用Vue.js语法开发小程序、H5、安卓和iOS应用。下面是快速上手的步骤。 2. 创建项目 2.1 可视化界面创建 1、打开 HBuilderX&#xff0c;这是一款专为uni…

国家开放大学如何找答案?三个受欢迎的搜题分享了 #经验分享#学习方法

它里面有拍照搜题、文字搜题、语音搜题等多种搜题模式&#xff0c;大家可以根据自己的需求选择相应的搜题模式&#xff0c;很是方便&#xff1b; 1.The Sky The Sky 是一个让人惊艳的天文知识学习软件&#xff0c;也是一个唯美好看的天文科普软件。 它的功能全面丰富&#x…

如何使用C#调用LabVIEW算法

新建一个工程 这是必须的&#xff1b; 创建项目 项目 点击完成&#xff1b; 将项目另存为&#xff1b;方便后续的使用&#xff1b; 创建 一个测试VI 功能很简单&#xff0c;用的一个加法&#xff1b;将加数A&#xff0c;B设置为输入&#xff0c;和C设置为输出&#xff0c;…

windows vs 自己编译源码 leveldb 然后使用自己编译的文件

1 准备源码文件 1.1 第一种方法 git下载源码 vs项目中git leveldb源码和git third_party googletest-CSDN博客 1.2 第二种方法 手动下载 然后把第三方的源码下载 复制到 third_party 对应的文件夹中 没有文件夹 third_party -> powershell mkdir third_party 2 编译lev…

NLP_ChatGPT的RLHF实战

文章目录 介绍小结 介绍 ChatGPT 之所以成为ChatGPT&#xff0c;基于人类反馈的强化学习是其中重要的一环。而ChatGPT 的训练工程称得上是复杂而又神秘的&#xff0c;迄今为止&#xff0c;OpenAl也没有开源它的训练及调优的细节。 从 OpenAl已经公开的一部分信息推知&#xff…

第三百一十五回

文章目录 1. 概念介绍2. 基本用法3. 补充用法4. 内容总结 我们在上一章回中介绍了"再谈ListView中的分隔线"&#xff0c;本章回中将介绍showMenu的用法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在第一百六十三回中介绍了showMenu相关的内容…