当前位置: 首页 > article >正文

Python 数据可视化(一)熟悉Matplotlib

目录

一、安装包

二、先画个折线图

1、修改标签文字和线条粗细

2、内置样式

3、scatter() 绘制散点图

4、scatter() 绘制多个点

5、设置样式

6、保存绘图


数据可视化指的是通过可视化表示来探索和呈现数据集内的规律。

一、安装包

win + R   打开终端

安装 Matplotlib,在终端提示符下执行命令:

python -m pip install --user matplotlib## python -m pip:这个部分表示使用 Python 解释器来运行 pip 模块## --user:这个选项表示将包安装到当前用户的目录中,而不是全局环境## matplotlib:这是安装的具体包的名

结果如下:

二、先画个折线图

import matplotlib.pyplot as pltnums = [1, 2, 4, 8, 16, 32, 64]
# nums = [1, 4, 9, 16, 25, 36]
fig, ax = plt.subplots()
ax.plot(nums)
plt.show()# fig, ax = plt.subplots() 创建了一个图形对象 fig 和一个坐标轴对象 ax# ax.plot(nums) 使用 plot 方法绘制 nums 中的数据

变量 fig 表示由生成的一系列绘图构成的整个图形,变量 ax 表示图形中的绘图。

1、修改标签文字和线条粗细

import matplotlib.pyplot as pltnums = [1, 2, 4, 8, 16, 32, 64]
# nums = [1, 4, 9, 16, 25, 36]
fig, ax = plt.subplots()
ax.plot(nums, linewidth=3)ax.set_title("2**n", fontsize=24)
ax.set_xlabel("Value_2", fontsize=14)
ax.set_ylabel("2**n", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()

结果显示:

        参数 linewidth 决定了 plot() 绘制的线条的粗细;set_title() 方法给绘图指定标题;fontsize 用于指定图中各种文字的大小;tick_params() 方法设置刻度标记的样式。

当你运行如下代码时:

import matplotlib.pyplot as plt# nums = [1, 2, 4, 8, 16, 32, 64]
# input_value = [0, 1, 2, 3, 4, 5, 6]nums = [1, 4, 9, 16, 25, 36]
input_value = [1, 2, 3, 4, 5, 6]
fig, ax = plt.subplots()
# ax.plot(input_value, nums, linewidth=3)
ax.plot(nums, linewidth=3)ax.set_title("n**2", fontsize=24)
ax.set_xlabel("Value_n", fontsize=14)
ax.set_ylabel("n**2", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()

        结果输出:

        

        注意:如果看的仔细的话,上边的图是不是不太对,5的平方怎么到36了。

现在我们改动一行代码:

ax.plot(input_value, nums, linewidth=3)

输出结果:

        在向 plot() 提供一个数值序列时,它假设第一个数据点对应的 x 坐标值为 0,但这里的第一个点对应的 x 坐标值应该为 1。因此将输入的数据也提供给 plot() 函数

2、内置样式

Matplotlib 有很多定义好的内置样式,如果想知道有哪些能用的,可以直接打印出来查看:

print(plt.style.available)# plt 是别名
import matplotlib.pyplot as pltnums = [1, 2, 4, 8, 16, 32, 64]
input_value = [0, 1, 2, 3, 4, 5, 6]plt.style.use('classic')
fig, ax = plt.subplots()
ax.plot(input_value, nums, linewidth=3)ax.set_title("2**n", fontsize=24)
ax.set_xlabel("Value_2", fontsize=14)
ax.set_ylabel("2**n", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

3、scatter() 绘制散点图

绘制单个点,可使用 scatter() 方法,并向它传递该点的 x 坐标值和 y 坐标值:

import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
fig, ax = plt.subplots()
ax.scatter(2, 4)
plt.show()
print(plt.style.available)

输出结果:

设置样式后:

import matplotlib.pyplot as plt
plt.style.use('bmh')
fig, ax = plt.subplots()
ax.scatter(2, 4, s=200)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

4、scatter() 绘制多个点

import matplotlib.pyplot as pltx_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]plt.style.use('bmh')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, s=100)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
plt.show()
print(plt.style.available)

输出结果:

        两个列表传递给 scatter() 时,Matplotlib 会依次从每个列表中读取一个值来绘制一个点。要绘制的点的坐标分别为(1, 1)、(2, 4)、(3, 9)、(4, 16)和(5, 25)。但是这样手动设置列表数据,效率不高,试试自动生成数据,并画图。

import matplotlib.pyplot as pltx_values = range(1, 101)
y_values = [x**2 for x in x_values]plt.style.use('seaborn-v0_8-dark-palette')
fig, ax = plt.subplots()
ax.scatter(x_values, y_values, s=10)
# 设置图题并给坐标轴加上标签
ax.set_title("Pingfang", fontsize=24)
ax.set_xlabel("x_value", fontsize=14)
ax.set_ylabel("y_value", fontsize=14)# 设置刻度标记的样式
ax.tick_params(labelsize=14)
# 设置每个坐标轴的取值范围
ax.axis([0, 110, 0, 11_000])plt.show()
print(plt.style.available)

        使用 axis() 方法指定每个坐标轴的取值范围,x轴和 y 轴各自的最小值和最大值。这里将 x 轴的取值范围设置为 0~110,将 y 轴的取值范围设置为 0~11000。

5、设置样式

# 刻度数值的常规表示,当数字过大时会自动转换为科学计数,如下可以常规表示
ax.ticklabel_format(style='plain')# scatter() 传递参数 color 并将其设置为要使用的颜色
ax.scatter(x_values, y_values, color='red', s=10)# 颜色映射:是一个从起始颜色渐变到结束颜色的颜色序列
ax.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, s=10)

        参数 c 设置成了一个 y 坐标值列表,并使用参数 cmap 告诉 pyplot 使用哪个颜色映射。这些代码将 y 坐标值较小的点显示为浅蓝色,将 y 坐标值较大的点显示为深蓝色。

6、保存绘图

        将绘图保存到文件中:

plt.savefig('nums_plot.png', bbox_inches='tight')

        第一个实参指定要以什么文件名保存绘图,这个文件将被存储到 xxxx.py 所在的程序目录中。第二个实参指定将绘图多余的空白区域裁剪掉。如果要保留绘图周围多余的空白区域,只需省略这个实参。注意:使用 Path对象,将输出文件存储到其他目录。

相关文章:

Python 数据可视化(一)熟悉Matplotlib

目录 一、安装包 二、先画个折线图 1、修改标签文字和线条粗细 2、内置样式 3、scatter() 绘制散点图 4、scatter() 绘制多个点 5、设置样式 6、保存绘图 数据可视化指的是通过可视化表示来探索和呈现数据集内的规律。 一、安装包 win R 打开终端 安装 Matplotlib&…...

c#实现485协议

在C#中实现RS-485协议通信,需要结合串口(SerialPort)操作和硬件收发控制(如RTS信号切换)。以下是详细的步骤和示例代码: 1. RS-485通信原理 物理层:RS-485是差分信号标准,支持多点通信(半双工)。 收发控制:通过控制RTS(Request to Send)或DTR引脚切换发送/接收模式…...

考研出分24小时,人类精神状态图鉴

2月24日,上午10点起,各省考研初试成绩陆续公布,考生们或紧张的输入准考证号,或抱团等待“审判”。然而更魔幻的还在后头——下午4点,教育部竟在同一天直接发布了《2025年研考国家分数线》。 不少网友表示:…...

神经网络AI原理回顾

长期记忆存储在大模型的参数权重中,不经过推理和编码无法读取,且必须依赖输入的提示,因为大模型不会无缘无故的自言自语,毕竟输入层是它唯一 与外界交互的窗口。 目前个性化大模型的局限就是训练成本过高,除非使用RAG&…...

不同数据类型在数据库和编程语言之间的对应关系表

不同数据类型在数据库和编程语言之间的对应关系表 MySql 与 C# MySqlC#varcharstringbigintlongbigint unsignedulongintintint unsigneduintsmallintshortsmallint unsignedushortVARCHAR(36)GuidsmalldatetimeDateTimedateDateTimedatetimeDateTimetimestampDateTimefloatf…...

数据库导出

MySQL数据库 使用命令行导出 导出整个数据库:在命令行中输入mysqldump -u用户名 -p密码 数据库名 > 导出文件路径/文件名.sql。例如mysqldump -uroot -p123456 mydb > /home/user/mydb_backup.sql,回车后输入密码即可将名为mydb的数据库导出为SQL…...

进程间通信 —— 共享内存

目录 1.共享内存实现通信的原理 2.如何使用共享内存实现通信 共享内存通信接口介绍 shmget shmat shmdt shmctl 使用示例 key和shmid 3.共享内存通信的优缺点 缺点:不提供任何同步机制,可能会造成数据混乱。 优点:共享内存是进程…...

本地搭建dify结合ollama+deepseek方法详解

1.安装ollama,安装deepseek-r1:8b模型 2.安装dify社区版 访问Dify GitHub项目地址 git clone https://github.com/langgenius/dify.git cd dify/docker cp .env.example .env docker compose up -d docker compose ps 查重以下实例是否启动成功: 更新Dif…...

冒泡排序算法优化

一 概述 冒泡排序是一种简单的交换排序算法,其核心思想是通过相邻元素比较和交换将最大元素逐步移动到数组末尾。 二、基础冒泡排序 void bubbleSort(int arr[], int n) { for (int i = 0; i < n-1; i++) { for (int j = 0; j < n-i-1; j++) { if…...

Linux系统软件管理

systemctl 控制软件启动和关闭 Linux系统很多软件支持使用systemctl命令控制&#xff1a;启动&#xff0c;停止&#xff0c;开启自启。 能被systemctl管理的软件&#xff0c;一般被称为&#xff1a;服务。 语法&#xff1a;systemctl start|stop|status|enable|disable 服务名…...

C# 使用 Newtonsoft.Json 序列化和反序列化对象实例

Newtonsoft.Json&#xff08;也被称为 Json.NET&#xff09;是一个广泛使用的用于在 C# 中进行 JSON 序列化和反序列化的开源库。下面将详细介绍如何使用它来序列化和反序列化对象。 1. 安装 Newtonsoft.Json 如果你使用的是 Visual Studio&#xff0c;可以通过 NuGet 包管理…...

在Linux桌面上创建Idea启动快捷方式

1、在桌面新建idea.desktop vim idea.desktop [Desktop Entry] EncodingUTF-8 NameIntelliJ IDEA CommentIntelliJ IDEA Exec/home/software/idea-2021/bin/idea.sh Icon/home/software/idea-2021/bin/idea.svg Terminalfalse TypeApplication CategoriesApplication;Developm…...

从0开始的操作系统手搓教程19:构建我们的内存管理——第二步:内存子系统进化,获取页!

目录 讨论页表的分析和索引的完成 完成一个宽泛的页获取 从指定的内存池中分配若干页 获取准备用来提供给客户端方向的虚拟地址起始位置 根据内存池的选择&#xff0c;完成对物理内存的获取 关联我们的物理内存和虚拟内存 编写尝试 运行的截图 现在&#xff0c;我们将会…...

数学软件Matlab下载|支持Win+Mac网盘资源分享

如大家所了解的&#xff0c;Matlab与Maple、Mathematica并称为三大数学软件。Matlab应用广泛&#xff0c;常被用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人&#xff0c;控制系统等领域。 Matlab将数值分析、矩阵计算、科学…...

Basler acA1920-40gc

软件 下载Basler软件 | Basler AG 说明书 ace acA1920-40gc | GigE相机 | Basler | Basler AG 支持PTP同步 在使用 Basler acA1920-40gc 相机和 Polyn View 软件时&#xff0c;确认 PTP&#xff08;Precision Time Protocol&#xff09;同步是否成功&#xff0c;可以通过…...

FASIONAD:自适应反馈的类人自动驾驶中快速和慢速思维融合系统

24年11月来自清华、早稻田大学、明尼苏达大学、多伦多大学、厦门大学马来西亚分校、电子科大&#xff08;成都&#xff09;、智平方科技和河南润泰数字科技的论文“FASIONAD : FAst and Slow FusION Thinking Systems for Human-Like Autonomous Driving with Adaptive Feedbac…...

sql server 复制从备份初始化数据

参考 &#xff1a; 从备份初始化订阅&#xff08;事务&#xff09; - SQL Server | Microsoft Learn sql server 复制默认是用快照初始化数据的&#xff0c;也支持从备份初始化数据&#xff0c;参考如上...

java八股文之框架

1.Spring框架中的Bean是否线程安全的 Spring框架中的Bean默认是单例的&#xff0c;不是线程安全的。因为一般在Spring的bean的中都是注入无状态的对象&#xff0c;没有线程安全问题&#xff0c;如果在bean中定义了可修改的成员变量&#xff0c;是要考虑线程安全问题的&#xf…...

R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析

全文链接&#xff1a;https://tecdat.cn/?p40797 本文旨在帮助0基础或只有简单编程基础的研究学者&#xff0c;通过 AI 的提示词工程&#xff0c;使用 R 语言完成元分析&#xff0c;包括数据处理、模型构建、评估以及结果解读等步骤&#xff08;点击文末“阅读原文”获取完整代…...

2020年蓝桥杯Java B组第二场题目+部分个人解析

#A&#xff1a;门牌制作 624 解一&#xff1a; public static void main(String[] args) {int count0;for(int i1;i<2020;i) {int ni;while(n>0) {if(n%102) {count;}n/10;}}System.out.println(count);} 解二&#xff1a; public static void main(String[] args) {…...

【Azure 架构师学习笔记】- Azure Databricks (13) -- 搭建Medallion Architecture part 1

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (12) – Medallion Architecture简介 前言 上文已经介绍了关于Medallion的知识&#xff0c;本文开始用ADB 来实现&#xff0c; 但是基于内容较…...

2025年2月21日优雅草内测分发站全新升级-测试运营-优雅草内测分发站新用户提供免费100下载点-2月28日正式运营并且提供私有化部署版本

2025年2月21日优雅草内测分发站全新升级-测试运营-优雅草内测分发站新用户提供免费100下载点-2月28日正式运营并且提供私有化部署版本 说明 优雅草内测分发站新用户提供免费100下载点&#xff0c;优雅草分运营站和demo测试站 运营站&#xff1a;www.youyacao.cn 提供免费100…...

通过 PromptTemplate 生成干净的 SQL 查询语句并执行SQL查询语句

问题描述 在使用 LangChain 和 Llama 模型生成 SQL 查询时&#xff0c;遇到了 sqlite3.OperationalError 错误。错误信息如下&#xff1a; OperationalError: (sqlite3.OperationalError) near "sql SELECT Name FROM MediaType LIMIT 5; ": syntax error [SQL: …...

本地部署Embedding模型API服务的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

IP段转CIDR:原理Java实现

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

[STM32]从零开始的STM32 DEBUG问题讲解及解决办法

一、前言 最近也是重装了一次keil&#xff0c;想着也是重装了&#xff0c;也是去官网下载了一个5.41的最新版&#xff0c;在安装和配置编译器和别的版本keil都没太大的区别&#xff0c;但是在调试时&#xff0c;遇到问题了&#xff0c;在我Debug的System Viewer窗口中没有GPIO&…...

MySQL当中的Lock

1. 总览锁的类型 锁的类型&#xff1a; 锁类型 符号/缩写 描述 全局锁 FTWRL 锁定整个数据库&#xff08;FLUSH TABLES WITH READ LOCK&#xff09;&#xff0c;用于全库备份。 表级锁 - 表锁 S/X LOCK TABLES ... READ&#xff08;共享锁&#xff09;或 WRITE&#…...

electron-builder打包时github包下载失败【解决办法】

各位朋友们&#xff0c;在使用electron开发时&#xff0c;选择了electron-builder作为编译打包工具时&#xff0c;是否经常遇到无法从github上下载依赖包问题&#xff0c;如下报错&#xff1a; Get "https://github.com/electron/electron/releases/download/v6.1.12/ele…...

【免费】YOLO[笑容]目标检测全过程(yolo环境配置+labelimg数据集标注+目标检测训练测试)

一、yolo环境配置 这篇帖子是我试过的&#xff0c;非常全&#xff0c;很详细【cudaanacondapytorchyolo(ultralytics)】 yolo环境配置 二、labelimg数据集标注 可以参考下面的帖子&#xff0c;不过可能会出现闪退的问题&#xff0c;安装我的流程来吧 2.1 labelimg安装 label…...

服务器禁止操作汇总(Server Prohibits 0peration Summary)

服务器禁止操作汇总 一、禁忌操作TOP10 1. 直接断电关机 &#x1f4a5; 血泪案例&#xff1a;某物流公司运维拔电源强制关机&#xff0c;导致数据库事务中断&#xff0c;20万订单状态丢失。 &#x1f4cc; 技术解析&#xff1a; • 直接断电可能引发&#xff1a; ✅ 文件系统…...