上位机知识篇---Python数据图表可视化
文章目录
- 前言
- 第一部分:Matplotlib
- 1. 图形和轴(Figure and Axes)
- Figure
- Axes
- 创建一个新的图形
- 在图形中添加一个或多个轴
- 2. 绘图命令
- 绘制折线图
- 绘制散点图
- 绘制条形图
- 绘制饼图
- 绘制直方图
- 等高线图(Contour plot)
- (1)导入库
- (2)创建数据
- (3)绘制等高线图
- 3. 设置图表属性
- 标题和标签
- 图例
- 限制
- 网格
- 4. 保存图表
- 5. 显示图表
- 6. 子图(Subplots)
- 7. 风格和样式
- 8. 注释和文本
- 第二部分:Seaborn
- 1.基本操作:
- (1)绘制分布图:
- (2)绘制热力图:
- 第三部分:Pandas Plotting
- 1.基本操作:
- 第四部分:Plotly
- 1.基本操作:
- 绘制交互式散点图:
- 第四部分:DataFrame
- 1. DataFrame 的结构
- (1)行
- (2)列
- (3)索引
- (4)数据类型
- 2. 创建 DataFrame
- (1)从列表或数组创建
- (2)从字典创建
- (3)从电子表格文件(如 Excel)创建
- (4)从 CSV 文件创建
- 3. DataFrame 的属性
- index
- columns
- values
- shape
- 4. DataFrame 的方法
- head
- tail
- describe
- info
- sort_values
- groupby
- merge()、join()
- append()
- drop()
- loc[]、iloc[]
- at[]、iat[]
- plot()
- 5. DataFrame 的数据访问和操作
- 6. DataFrame 的数据类型转换
- 7. 示例
- 总结
前言
以上就是今天要讲的内容,本文仅仅简单介绍了Python中的数据可视化库及其相应的操作,同时详细介绍了DataFrame数据格式。
第一部分:Matplotlib
Matplotlib是一个非常流行的Python绘图库,它提供了丰富的绘图功能。
和matlab中绘图功能又异曲同工之妙,感兴趣可以自行学习matlab绘图相关知识。
1. 图形和轴(Figure and Axes)
Figure
Figure: 整个图形(包括所有的轴、图例、标题等)。
Axes
Axes: 图形中的一个单独的绘图区域,包含数据、标签、标题等。
创建图形和轴:
import matplotlib.pyplot as plt
创建一个新的图形
fig = plt.figure()
在图形中添加一个或多个轴
ax1 = fig.add_subplot(1, 1, 1) # 1行1列的第一个子图
2. 绘图命令
绘制折线图
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
绘制散点图
plt.scatter([1, 2, 3, 4], [1, 4, 9, 16])
绘制条形图
plt.bar([1, 2, 3, 4], [1, 4, 9, 16])
绘制饼图
plt.pie([1, 2, 3, 4], labels=['A', 'B', 'C', 'D'])
绘制直方图
plt.hist([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
等高线图(Contour plot)
(1)导入库
import numpy as np
(2)创建数据
x = np.linspace(-3, 3, 100)
y = np.linspace(-3, 3, 100)
X, Y = np.meshgrid(x, y)
Z = np.exp(-X**2 - Y**2)
(3)绘制等高线图
plt.contour(X, Y, Z)
3. 设置图表属性
标题和标签
plt.title('Example Plot')
plt.xlabel('X axis label')
plt.ylabel('Y axis label')
图例
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], label='Line 1')
plt.legend()
限制
plt.xlim(0, 5)
plt.ylim(0, 10)
网格
plt.grid(True)
4. 保存图表
plt.savefig('plot.png')
5. 显示图表
plt.show()
6. 子图(Subplots)
创建多个子图
fig, axs = plt.subplots(2, 2) # 2行2列的子图
axs[0, 0].plot([1, 2, 3, 4], [1, 4, 9, 16])
7. 风格和样式
Matplotlib 允许你自定义图表的风格和样式。
自定义线条的样式、颜色、标记
使用样式表
plt.style.use('ggplot') # 使用ggplot样式
自定义线条样式
plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro--') # 红色虚线带圆圈标记
8. 注释和文本
在图表中添加文本和注释。
plt.text(1, 4, 'Text at (1, 4)')
plt.annotate('Annotation', xy=(2, 8), xytext=(3, 10),arrowprops=dict(facecolor='black', shrink=0.05))
Matplotlib 的功能非常丰富,这里仅介绍了最常用的部分。对于更高级的定制,如添加自定义形状、使用不同的坐标系统等,Matplotlib 也提供了相应的接口和方法。Matplotlib 的官方文档非常全面,是学习和参考的好资源。
第二部分:Seaborn
Seaborn是基于Matplotlib的更高级的绘图库,专为统计绘图设计。
1.基本操作:
导入库:
import seaborn as sns
(1)绘制分布图:
sns.distplot([1, 2, 3, 4, 5])
plt.show()
(2)绘制热力图:
data = [[1, 2], [3, 4]]
sns.heatmap(data)
plt.show()
由于并不常用,因此不做详细介绍,感兴趣可以自行查找学习。
第三部分:Pandas Plotting
Pandas库也提供了绘图功能,可以直接在DataFrame上操作。
1.基本操作:
导入库:
import pandas as pd
绘制DataFrame的线图:
df = pd.DataFrame({'x': [1, 2, 3, 4], 'y': [1, 4, 9, 16]})
df.plot(x='x', y='y')
plt.show()
第四部分:Plotly
Plotly是一个交互式图表库,可以创建交互式图表。
1.基本操作:
导入库:
import plotly.express as px
绘制交互式散点图:
fig = px.scatter(df, x='x', y='y')
fig.show()
由于并不常用,因此简单介绍,感兴趣可以自行查询相关知识。
总结
这些库提供了广泛的绘图功能,从简单的折线图和条形图到复杂的热力图和**交互式图表。**每个库都有其特定的用途和优势,你可以根据需要选择合适的库来创建图表。在数据分析和可视化中,绘图是一个非常重要的工具,可以帮助我们更好地理解和解释数据。
第四部分:DataFrame
DataFrame 是 Pandas 库中的一个核心数据结构,用于以表格的形式存储和操作数据。它类似于 Excel 表、SQL 表或 R 的数据框。DataFrame 是一个二维标记数据结构,具有以下特点:
1. DataFrame 的结构
(1)行
行(Rows):DataFrame 的每一行代表一个记录。
(2)列
列(Columns):DataFrame 的每一列代表一个字段。
(3)索引
索引(Index):每行都有一个唯一的索引标签,用于标识和访问数据。
(4)数据类型
数据类型(Data Types):每列都有一种数据类型,但不同的列可以有不同的数据类型。
2. 创建 DataFrame
可以通过多种方式创建 DataFrame,以下是一些常见的方法:
(1)从列表或数组创建
import pandas as pddata = [['Tom', 10], ['Nick', 15], ['John', 12]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
(2)从字典创建
data = {'Name': ['Tom', 'Nick', 'John'], 'Age': [10, 15, 12]}
df = pd.DataFrame(data)
(3)从电子表格文件(如 Excel)创建
df = pd.read_excel('data.xlsx')
(4)从 CSV 文件创建
df = pd.read_csv('data.csv')
3. DataFrame 的属性
index
df.index:获取 DataFrame 的行索引。
columns
df.columns:获取 DataFrame 的列名。
values
df.values:获取 DataFrame 的值,以二维数组的形式。
shape
df.shape:获取 DataFrame 的形状(行数,列数)。
4. DataFrame 的方法
DataFrame 提供了大量的方法来操作数据:
head
df.head(n):查看 DataFrame 的前 n 行。
tail
df.tail(n):查看 DataFrame 的后 n 行。
describe
df.describe():提供 DataFrame 的统计摘要。
info
df.info():显示 DataFrame 的基本信息。
sort_values
df.sort_values(by=‘column’):按指定列排序。
groupby
df.groupby(‘column’):按指定列进行分组。
merge()、join()
df.merge()、df.join():合并数据。
append()
df.append():向 DataFrame 添加行。
drop()
df.drop():删除指定的行或列
loc[]、iloc[]
df.loc[]、df.iloc[]:基于标签或整数位置选择数据。
at[]、iat[]
df.at[]、df.iat[]:快速访问单个标量。
plot()
df.plot():绘制图表。
5. DataFrame 的数据访问和操作
DataFrame 允许你通过多种方式访问和操作数据:
通过**列名**访问列:df['column_name']
通过**索引**访问行:df.loc[index_label]
通过**整数位置**访问行和列:df.iloc[row_position, column_position]
6. DataFrame 的数据类型转换
可以使用 astype() 方法转换 DataFrame 的数据类型:
df['column_name'] = df['column_name'].astype('desired_data_type')
7. 示例
以下是一个简单的 DataFrame 示例:
Name Age
0 Tom 10
1 Nick 15
2 John 12
在这个示例中,Name 和 Age 是列名,0、1 和 2 是行索引。
DataFrame 是一个非常灵活和强大的工具,适用于各种数据处理和分析任务。它提供了丰富的接口和方法,使得数据处理变得简单高效。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Python中的数据可视化库及其相应的操作,同时详细介绍了DataFrame数据格式。
相关文章:

上位机知识篇---Python数据图表可视化
文章目录 前言第一部分:Matplotlib1. 图形和轴(Figure and Axes)FigureAxes创建一个新的图形在图形中添加一个或多个轴 2. 绘图命令绘制折线图绘制散点图绘制条形图绘制饼图绘制直方图等高线图(Contour plot)ÿ…...

详解:TCP/IP五层(四层)协议模型
一.五层(四层)模型 1.概念 TCP/IP协议模型分为五层:物理层、数据链路层、网络层、传输层和应用层。这五层每一层都依赖于其下一层给它提供的网络去实现需求。 1)物理层:这是最基本的一层,也是最接近硬件…...

【原生记忆能力 怎么让大模型拥有原生的记忆能力】
首先,需要明确“原生记忆能力”具体指的是什么。通常来说,大模型如GPT-3或GPT-4在生成回复时是基于训练数据的模式识别,而不是真正的记忆。所以用户可能希望模型能够持续记住之前的交互信息,或者在多次使用中积累知识,…...

百度APP iOS端磁盘优化实践(上)
01 概览 在APP的开发中,磁盘管理已成为不可忽视的部分。随着功能的复杂化和数据量的快速增长,如何高效管理磁盘空间直接关系到用户体验和APP性能。本文将结合磁盘管理的实践经验,详细介绍iOS沙盒环境下的文件存储规范,探讨业务缓…...

qml Dialog详解
1、概述 Dialog是QML(Qt Modeling Language)中用于显示对话框的组件,它提供了一个模态窗口,通常用于与用户进行重要交互,如确认操作、输入信息或显示警告等。Dialog组件具有灵活的布局和样式选项,可以轻松…...

2025年的校招管理系统会全面实现智能化吗?
随着科技的不断进步,企业的招聘方式也在不断地演变。特别是在校园招聘领域,传统的招聘方法已经难以满足现代企业的需求。2025年的校招管理系统是否会全面实现智能化?这是一个值得探讨的话题。 想象一下,每年的校招季,…...

【Unity】使用Canvas Group改变UI的透明度
目录 一、前言二、Canvas Group三、结合DOTween达到画面淡进的效果 一、前言 在平时开发中,可以通过控制材质、Color改变UI透明度,除此之外还可以CanvasGroup组件来控制透明度。 二、Canvas Group 官方文档链接👉👉 点击进入 …...

2024年博客之星主题创作|2024年度感想与新技术Redis学习
Redis工具深入了解 1.引言与感想2.Redis工具了解2.分布式系统了解2.1单机架构2.2分布式是什么2.3应用服务和数据库服务分离2.4引入更多的应用服务器2.5理解负载均衡器2.6数据库读写分离2.7引入缓存2.8数据库分库分表2.9引入微服务2.10分布式系统小结 1.引言与感想 2024学习了很…...

6. 马科维茨资产组合模型+政策意图AI金融智能体(DeepSeek-V3)增强方案(理论+Python实战)
目录 0. 承前1. 幻方量化 & DeepSeek1.1 What is 幻方量化1.2 What is DeepSeek 2. 重写AI金融智能体函数3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对上一篇文章,链接: 5. 马科维茨资产组合模型政策意图AI金融智能体(Qwen-Max)增…...

Unity自学之旅05
Unity自学之旅05 Unity学习之旅⑤📝 AI基础与敌人行为🥊 AI导航理论知识(基础)开始实践 🎃 敌人游戏机制追踪玩家攻击玩家子弹碰撞完善游戏失败条件 🤗 总结归纳 Unity学习之旅⑤ 📝 AI基础与敌…...

linux中关闭服务的开机自启动
引言 systemctl 是 Linux 系统中用于管理 systemd 服务的命令行工具。它可以用来启动、停止、重启服务,管理服务的开机自启动,以及查看服务的状态等。 什么是 systemd? systemd 是现代 Linux 发行版中默认的 初始化系统(init sys…...

Python----Python高级(文件操作open,os模块对于文件操作,shutil模块 )
一、文件处理 1.1、文件操作的重要性和应用场景 1.1.1、重要性 数据持久化: 文件是存储数据的一种非常基本且重要的方式。通过文件,我们可 以将程序运行时产生的数据永久保存下来,以便将来使用。 跨平台兼容性: 文件是一种通用…...

ubuntu黑屏问题解决
重启Ubuntu后,系统自动进入tty1,无法进入桌面。想到前几天安装了一些主题之类的,然后今天才重启,可能是这些主题造成冲突或者问题了把。 这里直接重新安装ubuntu-desktop解决: 更新源: sudo apt-get upd…...

Java如何实现反转义
Java如何实现反转义 前提 最近做的一个需求,是热搜词增加换一批的功能。功能做完自测后,交给了测试伙伴,但是测试第二天后就提了一个bug,出现了未知词 levis。第一眼看着像公司售卖的一个品牌-李维斯。然后再扒前人写的代码&…...

动态规划(路径问题)
62. 不同路径 62. 不同路径 - 力扣(LeetCode) 动态规划思想第一步:描述状态~ dp[i][j]:表示走到i,j位置时,一共有多少种方法~ 动态规划思想第二步:状态转移方程~ 动态规划思想第三步…...

python http调用视觉模型moondream
目录 一、什么是moondream 二、资源地址 三、封装了http进行接口请求 四、代码解析 解释 可能的改进 一、什么是moondream Moondream 是一个针对视觉生成任务的深度学习模型,专注于图像理解和生成,包括图像标注(captioning)、问题回答(Visual Question Answering,…...

Spark Streaming编程基础
文章目录 1. 流式词频统计1.1 Spark Streaming编程步骤1.2 流式词频统计项目1.2.1 创建项目1.2.2 添加项目依赖1.2.3 修改源目录1.2.4 添加scala-sdk库1.2.5 创建日志属性文件 1.3 创建词频统计对象1.4 利用nc发送数据1.5 启动应用,查看结果 2. 编程模型的基本概念3…...

深入 Flutter 和 Compose 的 PlatformView 实现对比,它们是如何接入平台控件
在上一篇《深入 Flutter 和 Compose 在 UI 渲染刷新时 Diff 实现对比》发布之后,收到了大佬的“催稿”,想了解下 Flutter 和 Compose 在 PlatformView 实现上的对比,恰好过去写过不少 Flutter 上对于 PlatformView 的实现,这次恰好…...

C# OpenCV机器视觉:红外体温检测
在一个骄阳似火的夏日,全球却被一场突如其来的疫情阴霾笼罩。阿强所在的小镇,平日里熙熙攘攘的街道变得冷冷清清,人们戴着口罩,行色匆匆,眼神中满是对病毒的恐惧。阿强作为镇上小有名气的科技达人,看着这一…...

FCA-FineDataLink认证
FCA-FineDataLink证书 Part.1:判断题 (总分:18分 得分:16) 第1题 判断题 数据同步只支持写入到已存在表,不支持自动建表(得分:2分 满分:2分) 正确答案:B 你的答案&…...

第19篇:python高级编程进阶:使用Flask进行Web开发
第19篇:python高级编程进阶:使用Flask进行Web开发 内容简介 在第18篇文章中,我们介绍了Web开发的基础知识,并使用Flask框架构建了一个简单的Web应用。本篇文章将深入探讨Flask的高级功能,涵盖模板引擎(Ji…...

js截取video视频某一帧为图片
1.代码如下 <template><div class"box"><div class"video-box"><video controls ref"videoRef" preload"true"src"https://qt-minio.ictshop.com.cn:9000/resource-management/2025/01/08/7b96ac9d957c45a…...

[云讷科技]Kerloud Falcon四旋翼飞车虚拟仿真空间发布
虚拟仿真环境作为一个独立的专有软件包提供给我们的客户,用于帮助用户在实际测试之前验证自身的代码,并通过在仿真引擎中添加新的场景来探索新的飞行驾驶功能。 环境要求 由于环境依赖关系,虚拟仿真只能运行在装有Ubuntu 18.04的Intel-64位…...

Jetson nano 安装 PCL 指南
本指南帮助 ARM64 架构的 Jetson Nano 安装 PCL(点云库)。 安装步骤 第一步:安装依赖 在终端中运行以下命令,安装 PCL 所需的依赖: sudo apt-get update sudo apt-get install git build-essential linux-libc-dev s…...

go-zero框架基本配置和错误码封装
文章目录 加载配置信息配置 env加载.env文件配置servicecontext 查询数据生成model文件执行查询操作 错误码封装配置拦截器错误码封装 接上一篇:《go-zero框架快速入门》 加载配置信息 配置 env 在项目根目录下新增 .env 文件,可以配置当前读取哪个环…...

Android中Service在新进程中的启动流程2
目录 1、Service在客户端的启动入口 2、Service启动在AMS的处理 3、Service在新进程中的启动 4、Service与AMS的关系再续 上一篇文章中我们了解了Service在新进程中启动的大致流程,同时认识了与客户端进程交互的接口IApplicationThread以及与AMS交互的接口IActi…...

论文速读|Matrix-SSL:Matrix Information Theory for Self-Supervised Learning.ICML24
论文地址:Matrix Information Theory for Self-Supervised Learning 代码地址:https://github.com/yifanzhang-pro/matrix-ssl bib引用: article{zhang2023matrix,title{Matrix Information Theory for Self-Supervised Learning},author{Zh…...

ubunut22.04安装docker(基于阿里云 Docker 镜像源安装 Docker)
安装 更新包管理器: sudo apt update 安装 Docker 的依赖包 sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release添加阿里云 Docker 镜像源 GPG 密钥: curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gp…...

k8s namespace绑定节点
k8s namespace绑定节点 1. apiserver 启用准入控制 PodNodeSelector2. namespace 添加注解 scheduler.alpha.kubernetes.io/node-selector3. label node 1. apiserver 启用准入控制 PodNodeSelector vim /etc/kubernetes/manifests/kube-apiserver.yaml spec:containers:- co…...

【ElementPlus】在Vue3中实现表格组件封装
预览 搜索筛选组件 <template><div><el-formref"formView":model"formData"label-width"auto"label-position"right":label-col-style"{ min-width: 100px }":inline"true"><el-form-item …...