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

数据可视化:Matplotlib 与 Seaborn

数据可视化是数据分析中至关重要的一部分,它能帮助我们直观地理解数据的分布、趋势和关系。Python 中,Matplotlib 和 Seaborn 是两个最常用的可视化库。本文将详细介绍如何使用 Matplotlib 和 Seaborn 进行数据可视化,包括基本图形、图形定制、高级图形和实战案例等内容。

一、Matplotlib 基础

Matplotlib 是一个灵活而强大的绘图库,能够创建各种静态、动态和交互式图形。

1. 基本用法

import matplotlib.pyplot as plt # 简单的折线图 x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.plot(x, y) plt.xlabel('X axis') plt.ylabel('Y axis') plt.title('Simple Line Plot') plt.show()

2. 图形定制
线条样式和颜色

plt.plot(x, y, linestyle='--', color='r', marker='o') plt.show()

子图
subplots(2, 2) axs[0, 0].plot(x, y, 'r') axs[0, 1].plot(x, y, 'g') axs[1, 0].plot(x, y, 'b') axs[1, 1].plot(x, y, 'y') plt.show()
3. 常见图表
柱状图

categories = ['A', 'B', 'C', 'D'] values = [3, 7, 5, 4] plt.bar(categories, values) plt.show()

散点图

x = [5, 7, 8, 7, 2, 17, 2, 9, 4, 11, 12, 9, 6] y = [99, 86, 87, 88, 100, 86, 103, 87, 94, 78, 77, 85, 86] plt.scatter(x, y) plt.show()

直方图

data = [1.5, 2.5, 2.5, 3.5, 2.8, 4.2, 4.0, 5.5, 5.2, 4.8, 3.0, 4.0, 3.5, 2.5] plt.hist(data, bins=5) plt.show()

饼图

sizes = [15, 30, 45, 10] labels = ['A', 'B', 'C', 'D'] colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue'] explode = (0.1, 0, 0, 0) plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140) plt.axis('equal') plt.show()

二、Seaborn 基础

Seaborn 是基于 Matplotlib 之上的高级可视化库,专为统计图形而设计,能够生成更美观且信息丰富的图形。

1. 基本用法

import seaborn as sns # 设置主题 sns.set_theme() # 载入示例数据集 tips = sns.load_dataset("tips") # 创建一个简单的散点图 sns.scatterplot(x="total_bill", y="tip", data=tips) plt.show()

2. 常见图表
条形图

sns.barplot(x="day", y="total_bill", data=tips) plt.show()

箱线图

sns.boxplot(x="day", y="total_bill", data=tips) plt.show()

小提琴图

sns.violinplot(x="day", y="total_bill", data=tips) plt.show()

热力图

flights = sns.load_dataset("flights") flights_pivot = flights.pivot("month", "year", "passengers") sns.heatmap(flights_pivot, annot=True, fmt="d", cmap="YlGnBu") plt.show()

联合分布图

sns.jointplot(x="total_bill", y="tip", data=tips, kind="reg") plt.show()

三、Matplotlib 高级用法

1. 复杂图表
叠加图

x = range(1, 6) y1 = [1, 4, 6, 8, 10] y2 = [2, 2, 7, 10, 12] plt.plot(x, y1, label='Line 1') plt.plot(x, y2, label='Line 2') plt.legend() plt.show()

多子图

fig, axs = plt.subplots(2, 1) axs[0].plot(x, y1, 'tab:blue') axs[1].plot(x, y2, 'tab:orange') plt.show()

2. 动态图表

import matplotlib.animation as animation fig, ax = plt.subplots() x = [0] y = [0] line, = ax.plot(x, y) def update(frame): x.append(frame) y.append(frame ** 2) line.set_data(x, y) ax.relim() ax.autoscale_view() return line, ani = animation.FuncAnimation(fig, update, frames=range(10), blit=True) plt.show()

四、Seaborn 高级用法

1. FacetGrid

g = sns.FacetGrid(tips, col="time", row="sex") g.map(sns.scatterplot, "total_bill", "tip") plt.show()

2. PairGrid

g = sns.PairGrid(tips, hue="sex") g.map_diag(sns.histplot) g.map_offdiag(sns.scatterplot) g.add_legend() plt.show()

3. 自定义调色板

sns.set_palette("pastel") sns.boxplot(x="day", y="total_bill", data=tips) plt.show()

4. 风格设置

sns.set_style("whitegrid") sns.boxplot(x="day", y="total_bill", data=tips) plt.show()

五、实战案例:泰坦尼克号数据分析

在这个实战案例中,我们将使用 Matplotlib 和 Seaborn 来分析经典的泰坦尼克号乘客数据集。

1. 数据准备

import pandas as pd # 读取数据 titanic = sns.load_dataset("titanic") # 查看数据基本信息 print(titanic.info())

2. 数据预处理

# 填充缺失值 titanic['age'].fillna(titanic['age'].median(), inplace=True) titanic['embarked'].fillna(titanic['embarked'].mode()[0], inplace=True) titanic.drop(columns=['deck', 'embark_town', 'alive'], inplace=True)

3. 数据可视化
乘客年龄分布

plt.figure(figsize=(10, 6)) sns.histplot(titanic['age'], bins=30, kde=True) plt.title('Age Distribution of Passengers') plt.show()

各类舱乘客生还率

plt.figure(figsize=(10, 6)) sns.barplot(x='class', y='survived', data=titanic) plt.title('Survival Rate by Class') plt.show()

性别与生还率关系

plt.figure(figsize=(10, 6)) sns.barplot(x='sex', y='survived', data=titanic) plt.title('Survival Rate by Gender') plt.show()

年龄与生还率关系

plt.figure(figsize=(10, 6)) sns.violinplot(x='survived', y='age', data=titanic, split=True) plt.title('Age Distribution by Survival') plt.show()

结论

通过本文,我们深入了解了 Matplotlib 和 Seaborn 两个强大的 Python 可视化库的基础和高级用法。从基本图形的绘制到复杂图表和动态图表的创建,再到实际数据分析案例的应用,我们可以看到,Matplotlib 提供了灵活而强大的功能,Seaborn 则在统计图形方面更为便捷和美观。掌握这两个工具,将极大地提升我们在数据分析中的可视化能力。

参考文献

  1. Matplotlib 官方文档
  2. Seaborn 官方文档
  3. Pandas 官方文档
  4. 泰坦尼克号数据集

相关文章:

数据可视化:Matplotlib 与 Seaborn

数据可视化是数据分析中至关重要的一部分,它能帮助我们直观地理解数据的分布、趋势和关系。Python 中,Matplotlib 和 Seaborn 是两个最常用的可视化库。本文将详细介绍如何使用 Matplotlib 和 Seaborn 进行数据可视化,包括基本图形、图形定制…...

【linux】自定义快捷命令/脚本

linux自定义快捷命令 场景自定义命令自定义脚本 场景 深度学习经常要切换到自己环境,conda activate mmagic,但是又不想每次重复打这么多字,想使用快捷命令直接切换。 自定义命令 使用别名(alias)或自定义脚本来创建…...

使用onnxruntime加载YOLOv8生成的onnx文件进行目标检测

在网上下载了60多幅包含西瓜和冬瓜的图像组成melon数据集,使用 LabelMe 工具进行标注,然后使用 labelme2yolov8 脚本将json文件转换成YOLOv8支持的.txt文件,并自动生成YOLOv8支持的目录结构,包括melon.yaml文件,其内容…...

QT 信号和槽 一对多关联示例,一个信号,多个槽函数响应,一个信号源如何绑定多个槽函数

在窗体里放置一个单行文本编辑控件(QLineEdit)、一个标签控件(QLabel)和一个文本浏览控件(QTextBrowser),在单行文 本编辑控件里的文本被编辑时,标签控件和文本浏览控件都会同步显示…...

C++ AVL树 详细讲解

目录 一、AVL树的概念 二、AVL树的实现 1.AVL树节点的定义 2.AVL树的插入 3.AVL树的旋转 4.AVL树的验证 三、AVL树的性能 四、完结撒❀ 一、AVL树的概念 二叉搜索树虽可以缩短查找的效率,但 如果数据有序或接近有序二叉搜索树将退化为单支树,查 …...

Faster R-CNN:端到端的目标检测网络

本文回顾了由微软研究人员开发的 Faster R-CNN 模型。Faster R-CNN 是一种用于物体检测的深度卷积网络,在用户看来,它是一个单一的、端到端的统一网络。该网络可以准确快速地预测不同物体的位置。为了真正理解 Faster R-CNN,我们还必须快速概…...

如何给 MySQL 表和列授予权限?(官方版)

目录 授予表级别权限 授予列级别权限 如何给MySQL表和列授予权限是MySQL数据操作中非常重要的步骤,也是企业级使用MySQL数据库的起步点,以下分别参照官方教程整理的MySQL数据库的权限操作。 以下的语句可以直接使用MySQL的命令行进行操作(如何…...

攻防世界testre做法(考点:base58)

在做这道题目之前,我们先来简单了解一下base64加密和base58加密,先来说一些预备知识,bit为1个位,即一个0或1,八个位组成一个字节,即八个二进制数。 base64编码原理:1,在使用base64加…...

计算机视觉与模式识别实验1-1 图像的直方图平衡

文章目录 🧡🧡实验流程🧡🧡1.读入图像‘rice.png’,在一个窗口中显示灰度级n64,128和256的图像直方图。2.调解图像灰度范围,观察变换后的图像及其直方图的变化。3.分别对图像‘pout.tif’和‘ti…...

【C++课程学习】:C++入门(函数重载)

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🌈函数重载: 🍉1.参数个数不同: 🍉2.参数…...

skywalking介绍及搭建

链路追踪框架比对: skywalking安装部署: 下载地址:Downloads | Apache SkyWalking 配置微服务与skywalking整合: copy agent/optional-plugins/apm-spring-cloud-getway-xx.jar到plugins,然后重启skywalking 监控界面…...

分析示例 | Simufact焊接工艺仿真变形精确预测汽车结构

导语 焊接是汽车制造过程中一个关键环节,白车身、发动机、底盘和变速箱等都离不开焊接工艺的应用,主要涉及气保焊、电阻点焊、激光焊、电子束焊等多种焊接工艺。由于汽车车型众多、成形结构复杂、汽车制造质量、效率、成本等方面的综合要求。如何高效、…...

模式识别选择题

影响K-均值聚类算法效果的主要因素之一是什么? A. 初始聚类中心的选取 B. 样本输入顺序 C. 模式相似性测度 D. 分类准则 答案:A支持向量机(SVM)在处理非线性问题时,通常使用什么方法? A. 引入核函数 B. 增加…...

【Java基础】线程方法

start():启动线程,使线程进入就绪状态。 run():线程执行的代码逻辑,需要重写该方法。 停止线程 void interrupt() 中断线程,让它重新去争抢cpu 如果目标线程长时间等待,则应该使用interrupt方法来中断等待…...

C++之动态数组

C给我们提供了一个叫Vector的类,这个Vector在std命名空间中。这个Vector有点像一个集合,一个不强制其实际元素具有唯一性的集合,和数组一样,但是和C普通的数组又不太一样,和标准的数组不同当你创建Vector时&#xff0c…...

使用 image-combiner 开源项目实现对海报图片的生成

1:gitee 项目地址 image-combiner: ImageCombiner是一个专门用于Java服务端图片合成的工具,没有很复杂的功能,简单实用,从实际业务场景出发,提供简单的接口,几行代码即可实现图片拼合(当然用于…...

【缓存】框架层常见问题和对策

缓存是为了加快读写速度,再了解redis这类框架层的缓存应用之前,我们不妨先思考下操作系统层面的缓存解决方案,这样有助于我们更深的理解缓存,哪些是系统层面的,哪些是服务层面。 以下是一些常见的缓存问题及其解决方案…...

【FAS】《CN103106397B》

原文 CN103106397B-基于亮瞳效应的人脸活体检测方法-授权-2013.01.19 华南理工大学 方法 / 点评 核心方法用的是传统的形态学和模板匹配,亮点是双红外发射器做差分 差分:所述FPGA芯片控制两组红外光源(一近一远)交替亮灭&…...

3D按F3为什么显示不出模型?---模大狮模型网

对于3D建模软件的用户来说,按下F3键通常是用来显示或隐藏模型的功能之一。然而,有时当按下F3键时,却无法正确显示模型,这可能会让用户感到困惑。模大狮将探讨这种情况发生的可能原因以及解决方法,帮助设计师们更好地理…...

C++设计模式——Adapter适配器模式

一,适配器模式简介 适配器模式是一种结构型设计模式,用于将已有接口转换为调用者所期望的另一种接口。 适配器模式让特定的API接口可以适配多种场景。例如,现有一个名为"Reader()"的API接口只能解析txt格式的文件,给这…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...

c# 局部函数 定义、功能与示例

C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

raid存储技术

1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...