【Python入门系列】第十五篇:Python数据可视化和图表绘制
文章目录
- 前言
- 一、可视化与绘图常用库
- 二、Matplotlib
- 1、折线图
- 2、散点图
- 3、柱状图:
- 三、Seaborn
- 1、散点图
- 2、箱线图
- 3、小提琴图
- 4、热力图
- 四、Plotly
- 1、折线图
- 2、散点图
- 3、条形图
- 总结
前言
数据可视化是数据分析和数据科学中非常重要的一部分。通过可视化,我们可以更好地理解数据、发现数据之间的关系、展示数据的趋势和模式,并向他人传达我们的发现。
Python是一种功能强大的编程语言,拥有许多用于数据可视化的库和工具。其中,Matplotlib是最常用的绘图库之一,它提供了各种绘图函数和方法,可以绘制折线图、散点图、柱状图、饼图等等。Seaborn是基于Matplotlib的高级绘图库,它提供了更美观和简化的绘图接口,能够轻松绘制统计图表。Plotly是一个交互式绘图库,可以创建漂亮的可交互图表和可视化仪表板。
在数据可视化过程中,我们通常需要先加载数据,然后选择合适的图表类型进行绘制,并对图表进行进一步的定制和美化。最后,我们可以使用适当的标题、标签和图例来解释和传达图表的含义。
一、可视化与绘图常用库
Python中常用的数据可视化和图表绘制库有以下几个:
-
Matplotlib:Matplotlib是Python中最常用的绘图库之一。它提供了广泛的绘图功能,包括折线图、散点图、柱状图、饼图等。Matplotlib的接口灵活,可以进行各种定制和美化操作。
-
Seaborn:Seaborn是基于Matplotlib的高级绘图库。它提供了更美观和简化的绘图接口,并且支持许多统计图表的绘制,如箱线图、热力图、小提琴图等。Seaborn还可以轻松地处理缺失值和异常值。
-
Plotly:Plotly是一个交互式的绘图库,可以创建漂亮的可交互图表和可视化仪表板。它支持多种图表类型,包括折线图、散点图、柱状图、饼图等。Plotly还提供了在线共享和协作的功能。
二、Matplotlib
Matplotlib是Python中最常用的绘图库之一。它提供了广泛的绘图功能,包括折线图、散点图、柱状图、饼图等。
1、折线图
下面是一个简单的Matplotlib绘图示例,以折线图为例:
import matplotlib.pyplot as plt# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]# 绘制折线图
plt.plot(x, y)# 添加标题和标签
plt.title('折线图示例')
plt.xlabel('x轴')
plt.ylabel('y轴')# 显示图表
plt.show()
在这个示例中,我们首先导入 matplotlib.pyplot 模块,并创建了两个列表 x 和 y 作为数据。然后,使用 plt.plot() 函数绘制了折线图。接下来,我们使用 plt.title() 、 plt.xlabel() 和 plt.ylabel() 函数添加了标题和标签。最后,使用 plt.show() 函数显示了图表。
2、散点图
Matplotlib绘制散点图:
import matplotlib.pyplot as plt# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]# 绘制散点图
plt.scatter(x, y)# 添加标题和标签
plt.title('散点图示例')
plt.xlabel('x轴')
plt.ylabel('y轴')# 显示图表
plt.show()
在这个示例中,我们使用 plt.scatter() 函数绘制了散点图。其他部分的代码和之前的折线图示例相似。
3、柱状图:
Matplotlib绘制柱状图:
import matplotlib.pyplot as plt# 创建数据
x = ['A', 'B', 'C', 'D', 'E']
y = [10, 15, 7, 12, 9]# 绘制柱状图
plt.bar(x, y)# 添加标题和标签
plt.title('柱状图示例')
plt.xlabel('类别')
plt.ylabel('数量')# 显示图表
plt.show()
在这个示例中,我们使用 plt.bar() 函数绘制了柱状图。x轴的标签是一个字符串列表,y轴是对应的数值列表。
三、Seaborn
Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了更高级的绘图接口和更美观的默认样式。Seaborn旨在简化数据可视化的过程,并且支持许多统计图表的绘制。
Seaborn相比于Matplotlib,具有以下几个优点:
- 更美观的默认样式:Seaborn提供了一些美观的默认样式,使得绘制的图表更加吸引人。
- 更简单的绘图接口:Seaborn的绘图接口更加简单,可以轻松地绘制各种图表,如箱线图、小提琴图、热力图等。
- 支持统计图表:Seaborn内置了许多统计图表的绘制函数,可以直接绘制例如分布图、回归图、分类图等常见的统计图表。
- 与Pandas集成:Seaborn可以与Pandas无缝集成,可以直接从Pandas的数据框中绘制图表。
1、散点图
面是一个简单的Seaborn绘图示例,以绘制散点图为例:
import seaborn as sns
import matplotlib.pyplot as plt# 创建数据
tips = sns.load_dataset("tips")# 绘制散点图
sns.scatterplot(data=tips, x="total_bill", y="tip")# 添加标题和标签
plt.title('散点图示例')
plt.xlabel('总账单')
plt.ylabel('小费')# 显示图表
plt.show()
在这个示例中,我们首先导入了Seaborn和Matplotlib的库。然后使用 sns.load_dataset() 函数加载了一个示例数据集(tips)。接下来,使用 sns.scatterplot() 函数绘制了散点图,其中 data 参数指定数据集, x 和 y 参数指定x轴和y轴的变量名。
2、箱线图
以下为Seaborn绘制箱线图:
import seaborn as sns# 加载示例数据集
tips = sns.load_dataset("tips")# 绘制箱线图
sns.boxplot(data=tips, x="day", y="total_bill")# 添加标题和标签
plt.title('箱线图示例')
plt.xlabel('星期')
plt.ylabel('总账单')# 显示图表
plt.show()
在这个示例中,我们使用 sns.boxplot() 函数绘制了箱线图。 data 参数指定了数据集, x 和 y 参数分别指定了x轴和y轴的变量名。
3、小提琴图
以下为使用Seaborn绘制小提琴图:
import seaborn as sns# 加载示例数据集
tips = sns.load_dataset("tips")# 绘制小提琴图
sns.violinplot(data=tips, x="day", y="total_bill")# 添加标题和标签
plt.title('小提琴图示例')
plt.xlabel('星期')
plt.ylabel('总账单')# 显示图表
plt.show()
这个示例中,我们使用 sns.violinplot() 函数绘制了小提琴图。其他部分的代码和之前的示例类似。
4、热力图
以下为使用Seaborn绘制热力图:
import seaborn as sns# 加载示例数据集
flights = sns.load_dataset("flights")# 将数据转换为矩阵形式
flights_matrix = flights.pivot("month", "year", "passengers")# 绘制热力图
sns.heatmap(flights_matrix, annot=True, cmap="YlGnBu")# 添加标题和标签
plt.title('热力图示例')
plt.xlabel('年份')
plt.ylabel('月份')# 显示图表
plt.show()
在这个示例中,我们使用 sns.heatmap() 函数绘制了热力图。 annot=True 参数用于在每个单元格中显示数值, cmap 参数指定了颜色映射。
四、Plotly
Plotly是一个交互式的绘图库,可以创建漂亮的可交互图表和可视化仪表板。它支持多种图表类型,包括折线图、散点图、柱状图、饼图等。Plotly还提供了在线共享和协作的功能。
1、折线图
import plotly.graph_objects as go# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]# 创建折线图
fig = go.Figure(data=go.Scatter(x=x, y=y))# 添加标题和轴标签
fig.update_layout(title='折线图示例', xaxis_title='x轴', yaxis_title='y轴')# 显示图表
fig.show()
在这个示例中,我们使用 go.Scatter() 函数创建了一个折线图,并使用 go.Figure() 函数将其包装成一个图表对象。通过 update_layout() 函数可以添加标题和轴标签。
2、散点图
import plotly.graph_objects as go# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]# 创建散点图
fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))# 添加标题和轴标签
fig.update_layout(title='散点图示例', xaxis_title='x轴', yaxis_title='y轴')# 显示图表
fig.show()
在这个示例中,我们使用 mode=‘markers’ 参数将折线图转换为散点图。
3、条形图
import plotly.graph_objects as go# 创建数据
x = ['A', 'B', 'C', 'D', 'E']
y = [10, 15, 7, 12, 9]# 创建条形图
fig = go.Figure(data=go.Bar(x=x, y=y))# 添加标题和轴标签
fig.update_layout(title='条形图示例', xaxis_title='类别', yaxis_title='数量')# 显示图表
fig.show()
在这个示例中,我们使用 go.Bar() 函数创建了一个条形图。
总结
总之,Python数据可视化和图表绘制是通过使用Matplotlib和Plotly等库,将数据转化为可视化图表的过程。这些工具提供了丰富的功能和灵活性,可以满足各种数据可视化的需求。
相关文章:
【Python入门系列】第十五篇:Python数据可视化和图表绘制
文章目录 前言一、可视化与绘图常用库二、Matplotlib1、折线图2、散点图3、柱状图: 三、Seaborn1、散点图2、箱线图3、小提琴图4、热力图 四、Plotly1、折线图2、散点图3、条形图 总结 前言 数据可视化是数据分析和数据科学中非常重要的一部分。通过可视化…...
isBlank函数和isEmpty函数的区别
StrUtil.isBlank(CharSequence):该方法用于判断字符串是否为空或仅包含空白字符。如果传入的字符串为null、空字符串(“”)或仅包含空白字符(如空格、制表符、换行符等),则返回true;否则返回false。 StrUtil.isEmpty(…...
「SQL面试题库」 No_121 The Most Recent Three Orders
🍅 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试࿰…...

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 7 日论文合集)
文章目录 一、检测相关(5篇)1.1 Contextual Affinity Distillation for Image Anomaly Detection1.2 Noise-to-Norm Reconstruction for Industrial Anomaly Detection and Localization1.3 MMNet: Multi-Collaboration and Multi-Supervision Network for Sequential Deepfake…...

直流运算放大器-----仪表放大器(三)
详见 模拟电子技术基础 6.4.1 电路图 计算公式 仿真 电流流向...

【Zookeeper】终端操作常用命令
文章目录 服务端常用命令客户端常用命令 zookeeper版本3.7.1 Zookeeper是一个开源的分布式协调服务。 Zookeeper是Apache软件基金会的一个项目,它提供了分布式应用程序协调的通用服务,如分布式同步、命名服务、集群维护等,以简化分布式应用协…...
leetcode 1110. 删点成林
给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。 返回森林中的每棵树。你可以按任意顺序组织答案…...

华为Harmony应用开发初探
HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体…...

电脑应用程序发生异常怎么办?
有时候我们打开电脑上面的某个软件时,会打不开,并且会弹出如下的错误提示“应用程序发生异常 未知的软件异常(xxx),位置为xx”。相信大多数的人在使用电脑的时…...

【JAVA】准备工作------Java开发环境搭建,IDEA的基础设置与操作
🍉内容专栏:【JAVA】 🍉本文脉络:JAVA的准备工作,IDEA的安装以及基础设置和快捷操作 🍉本文作者:Melon西西 🍉发布时间 :2023.7.11 目录 1. 概述JDK、JRE 2. 第一个程序——创建…...

操作系统真象还原——第5章 保护模式进阶,向内核迈进
第5章 保护模式进阶,向内核迈进 BIOS中断利用0x15子功能0xe802获取内存 汇编语言子功能的调用 填写调用前相关寄存器进行int中断调用获取返回结果输出到对应寄存器的值 80286 拥有24 位地址线,其寻址空间是16MB 。有一些ISA 只使用15MB,剩下…...
设计一款助听器可能需要用到以下音频算法
设计一款助听器可能需要用到以下音频算法: 1 响度补偿算法:助听器可能需要根据用户的听力损失情况调整不同频率范围内的增益,以提供个性化的听力补偿。这可以通过基于用户配置或自适应算法的频率响应调整来实现。 2 噪声抑制:用于…...
【端午节】用Vue3写粽子——从零开始
前言 在端午节即将到来之际,我们来一起写一个粽子组件来庆祝这个传统节日。 准备工作 首先,我们需要安装Vue3及其相关依赖,这里使用Vue CLI来创建项目。 # 安装Vue CLI npm install -g vue/cli # 创建Vue3项目 vue create zongzi接下来&a…...

大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景
引言: 介绍当前的版本 今天我们要介绍的是aikit2023,aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉,定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台,可通过开发软件实现机械臂的控制&am…...

Cesium Token申请
一、什么是Cesium ion? Cesium ion是一个提供瓦片图和3D地理空间数据的平台,支持把数据添加到用户自己的应用程序中。 二、为什么需要access token? 使用Cesium ion需要申请access token,当用户将数据添加到自己的账户后,便可以…...

ubuntu系统自带的Text Editor编辑器不高亮解决办法
平时在写launch文件时,我喜欢用ubuntu系统自带的text编辑器,但发现使用text打开launch 文件时,没有高亮功能了,如下图所示: 解决办法非常简单,因为launch和xml文件语法规则类似,只需将text编辑…...

Docker NGINX 加载Geoip模板
前提环境: Docker 环境 涉及参考文档: ngx_http_geoip_module 模块Loki NGINX Service MeshGeoIP IP库 一、下载GeoIP IP库 二、配置Nginx主配置文件 vim /data/nginx/MangoMoh/dos/nginx.confuser nginx; worker_processes auto;error_log /var…...

springboot基于协同过滤算法商品推荐系统
开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器&…...

基于机器学习算法:朴素贝叶斯和SVM 分类-垃圾邮件识别分类系统(含Python工程全源码)
目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境安装pytesseract注册百度云账号 模块实现1. 数据模块2. 模型构建3. 附加功能 系统测试1. 文字邮件测试准确率2. 网页测试结果 工程源代码下载其它资料下载 前言 本项目采用朴素贝叶斯和支持向量机(S…...
在Linux下将PNG和JPG批量互转的四种方法
计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些 .PNG 格式的图像批量转换成 .JPG 格式的,以及转换回来。 计算机术语中&a…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...