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

【Python】数据可视化之点线图

目录

散点图

气泡图

时序图

关系图


​​​​​​​

散点图

Scatterplot(散点图)是一种用于展示两个变量之间关系的图表类型。在散点图中,每个观测值(或数据点)都被表示为一个点,其中横轴(X轴)代表一个变量的值,而纵轴(Y轴)代表另一个变量的值。这些点的位置(即它们在图表上的x和y坐标)反映了两个变量之间的关系。

散点图非常适合于初步探索两个变量之间是否存在关系,以及这种关系的强度和方向。通过观察点的分布模式,可以识别出正相关、负相关、无相关或非线性关系。在散点图中,远离大多数数据点的观测值(即异常值或极端值)很容易被识别出来。同时,在统计学中,散点图可以用于支持或反驳关于两个变量之间关系的假设。

散点图需要注意一些问题:

  • 当数据点过多时,散点图可能会变得难以解读,因为点可能会重叠在一起。在这种情况下,可以考虑使用其他可视化方法,如密度图或六边形分箱图。
  • 散点图只能显示两个变量之间的关系,如果数据集包含多个变量,可能需要使用其他类型的图表(如多维散点图或平行坐标图)来展示更多信息。
  • 在解读散点图时,要注意数据点的分布是否均匀,以及是否存在潜在的偏差或异常值。
# 设置图形风格为whitegrid
sns.set(style="whitegrid")
# 加载diamonds数据集
diamonds = sns.load_dataset("diamonds")
# 创建一个8x8的图形
f, ax = plt.subplots(figsize=(8, 8))
# 去除图形的左边和底部的边框
sns.despine(f, left=True, bottom=True)
# x轴为depth,y轴为table,颜色为红色,数据为diamonds,坐标轴为ax,标记为圆形,大小为100,边框宽度为0.5,边框颜色为白色
sns.scatterplot(x="depth", y="table",color='r',data=diamonds, ax=ax, marker="o", s=100, linewidth=0.5, edgecolor="w")

也可以使用plt绘制 

# 生成一些随机数据
np.random.seed(0)
x = np.random.rand(100)
y = np.random.rand(100)
# 设置图表大小
plt.figure(figsize=(10, 6))  
# s是点的大小,c是颜色,alpha是透明度,edgecolors是边缘颜色
plt.scatter(x, y, s=50, c='blue', alpha=0.6, edgecolors='w') 
# 添加标题和标签
plt.title('Scatterplot', fontsize=16)
plt.xlabel('X Axis', fontsize=14)
plt.ylabel('Y Axis', fontsize=14)
# 设置坐标轴范围
plt.xlim(0, 1)
plt.ylim(0, 1)
# 添加网格线
plt.grid(True, which='both', linestyle='--', linewidth=0.5)
# 显示图例
plt.legend(['Data'], loc='upper left', fontsize=12)
# 显示图表
plt.show()

气泡图

气泡图(Bubble Chart)是一种多变量的数据可视化图表,它是散点图的一种变体,也可以看作是散点图和百分比区域图的组合。气泡图通过引入第三个变量来展示三个变量之间的关系,使得数据展示更加丰富和全面。

  • 多变量展示:能够同时展示三个或更多维度的数据。
  • 直观比较:通过气泡的位置和大小,可以直观地比较不同类别的数据。
  • 灵活性强:气泡图可以根据需要调整气泡的形状、颜色和透明度等属性,以增强视觉效果。
# 加载名为"planets"的数据集
planets = sns.load_dataset("planets")
# 创建一个颜色映射
cmap = sns.cubehelix_palette(as_cmap=True)
# 绘制散点图,x轴为"distance",y轴为"orbital_period",颜色映射为"year",大小为"mass"
ax = sns.scatterplot(x="distance", y="orbital_period",hue="year", size="mass",palette=cmap, sizes=(10, 200),data=planets)

# 设置绘图风格为白色
sns.set(style="white")
# 加载mpg数据集
mpg = sns.load_dataset("mpg")
# 绘制散点图,x轴为horsepower,y轴为mpg,颜色根据origin分类,大小根据weight分类
sns.relplot(x="horsepower", y="mpg", hue="origin", size="weight",sizes=(40, 400), alpha=.5, palette="plasma",height=6, data=mpg)

时序图

Lineplot是Seaborn库中用于绘制折线图的函数,它能够帮助用户可视化数据集中不同变量之间的关系,特别是展示随时间变化的数据趋势。Lineplot函数的基本用法是传入x轴和y轴的数据,以及包含这些数据的数据集(DataFrame或类似结构)。通过指定xy参数,Lineplot能够绘制出表示这两个变量之间关系的折线图。

Lineplot函数提供了多个参数来调整折线图的外观和行为:

  • x, y:分别指定折线图中x轴和y轴的数据。
  • data:指定包含x和y数据的数据集,通常是pandas的DataFrame。
  • hue:可选参数,用于根据某一列数据对折线进行分组着色,以区分不同的数据系列。
  • style:可选参数,用于指定折线的风格,如线型、破折号样式等。
  • markers:可选参数,设置为True时会在折线图上显示数据点,便于观察具体的数据值。
  • ci:控制置信区间的显示,如果不需要显示置信区间,可以设置为None。

在使用Lineplot时,需要确保传入的数据格式正确,且x轴和y轴的数据长度必须相同。如果数据中包含缺失值(NaN),Lineplot会自动跳过这些值进行绘图。Lineplot的绘图结果会受到Seaborn和matplotlib的样式设置影响,因此可以通过调整这些库的样式设置来改变折线图的外观。

# 加载fmri数据集
fmri = sns.load_dataset("fmri")
# 绘制折线图,x轴为timepoint,y轴为signal,根据region进行颜色区分,根据event进行线条样式区分
sns.lineplot(x="timepoint", y="signal",hue="region", palette="plasma",style="event",data=fmri)

# 创建一个随机数生成器,种子为88
rs = np.random.RandomState(88)
# 生成365个随机数,每个随机数有4个值
values = rs.randn(365, 4).cumsum(axis=0)
# 创建一个日期范围,从2016年1月1日开始,共365天,每天一个日期
dates = pd.date_range("1 1 2016", periods=365, freq="D")
# 创建一个DataFrame,包含生成的随机数和日期
data = pd.DataFrame(values, dates, columns=["A", "B", "C", "D"])
# 对DataFrame进行滚动平均,窗口大小为7
data = data.rolling(7).mean()
# data为数据集,palette为颜色调色板,linewidth为线宽
sns.lineplot(data=data, palette="inferno", linewidth=3)

关系图

relplot是Seaborn库中用于绘制关系图的函数,它是一个高级绘图函数,能够灵活地处理多变量关系,并自动生成具有多个子图的图表。

  • x, y:分别指定图表的x轴和y轴数据。
  • data:包含绘图所需数据的数据集,通常是pandas的DataFrame。
  • hue:用于根据某一列数据对数据进行分组,并在图表中用不同的颜色表示。
  • size:控制数据点的大小或线条的粗细,根据数据集中的某列进行映射。
  • style:控制数据点的样式或线条的样式,如点型、线型等,同样可以根据数据集中的某列进行映射。
  • row, col:用于将数据按照指定的列分割成多个子图,分别绘制在行或列上。
  • palette:指定hue参数分组的颜色映射方案。
  • height:每个子图的高度(单位:英寸)。
  • aspect:子图的宽高比,默认为1。
  • kind:指定绘图的类型,'scatter''line'
# 加载名为"dots"的数据集
dots = sns.load_dataset("dots")
# 绘制关系图,x轴为"time",y轴为"firing_rate",根据"coherence"进行颜色区分,根据"choice"进行大小区分,根据"align"进行列区分
# "size_order"指定了大小顺序,"height"指定了图形的高度,"aspect"指定了图形的纵横比,"facet_kws"指定了子图的关键字参数
# "kind"指定了图形的类型为线图,"legend"指定了图例的位置为全图,"data"指定了数据集为"dots"
sns.relplot(x="time", y="firing_rate",hue="coherence", size="choice", col="align",size_order=["T1", "T2"],palette="viridis",height=5, aspect=.75, facet_kws=dict(sharex=False),kind="line", legend="full", data=dots)

# 加载名为 "tips" 的数据集
tips = sns.load_dataset("tips")
# 绘制关系图,x 轴为 "total_bill",y 轴为 "tip",根据 "smoker" 进行颜色区分,根据 "day" 进行列区分
# "size_order" 指定了大小顺序,"height" 指定了图形的高度,"aspect" 指定了图形的纵横比,"facet_kws" 指定了子图的关键字参数
# "kind" 指定了图形的类型为线图,"legend" 指定了图例的位置为全图,"data" 指定了数据集为 "tips"
sns.relplot(x="total_bill", y="tip",hue="smoker", col="day",size_order=["T1", "T2"], palette="inferno",height=5, aspect=.75, facet_kws=dict(sharex=False),kind="line", legend="full", data=tips)

 

相关文章:

【Python】数据可视化之点线图

目录 散点图 气泡图 时序图 关系图 ​​​​​​​ 散点图 Scatterplot(散点图)是一种用于展示两个变量之间关系的图表类型。在散点图中,每个观测值(或数据点)都被表示为一个点,其中横轴(…...

jupyter使用pytorch

1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境,就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装,检查jupyter是否已…...

Electron 安装以及搭建一个工程

安装Node.js 在使用Electron进行开发之前,需要安装 Node.js。 官方建议使用最新的LTS版本。 检查 Node.js 是否正确安装: # 查看node版本 node -v # 查看npm版本 npm -v注意 开发者需要在开发环境安装 Node.js 才能编写 Electron 项目,但是…...

羽毛类型检测系统源码分享

羽毛类型检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…...

Xiaojie雷达之路---doa估计(dbf、capon、music算法)

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下雷达信号处理中的dbf、capon、music测角算法,一起来看看吧!!! 前言 本文从信号模型、dbf原理、capon原理、music原理以及代码仿真进行展开描述。 信号模型 阵列接收到…...

十大排序算法总结

完整文档见 排序算法总结——语雀文档 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破…...

大厂AI必备数据结构与算法——链表(三)详细文档

冲冲冲!开干 神马!神马!神马,一向让我们学习起来抓耳挠腮的数据结构课程竟然也有教程?还那么详细??真的假的? 那么好,胡广告诉你是假的,哈哈哈哈哈哈哈哈哈…...

一键自动化配置OpenHarmony编译环境

一、概述 本工程旨在对Ubuntu一键初始化配置环境,解决OpenHarmony的编译依赖问题,基于本脚本配置后配合一键下载OpenHarmony代码便能轻松掌控OpenHarmony的下载、编译。 当前建议使用稳定分支Itopen-2.0-Release,该分支是经过多次测试OK的&…...

不同领域的常见 OOD(Out-of-Distribution)数据集例子

以下是几个来自不同领域的常见 OOD(Out-of-Distribution)数据集例子,这些数据集常用于测试和研究模型在分布变化或分布外数据上的泛化能力: 1. 计算机视觉领域 CIFAR-10 vs. CIFAR-10-C / CIFAR-100-C: 描述:CIFAR-10…...

gRPC协议简介

gRPC 是谷歌开源的一套 RPC 协议框架。主要做两件事情:一是数据编码,二是请求映射。 数据编码 数据编码顾名思义就是在将请求的内存对像转化成可以传输的字节流发给服务端,并将收到的字节流再转化成内存对像。方法有很多,常见的…...

[dp+dfs]砝码称重

题目描述 现有 n n n 个砝码,重量分别为 a 1 , a 2 , … , a n a_1, a_2, \ldots,a_n a1​,a2​,…,an​ ,在去掉 m m m 个砝码后,问最多能称量出多少不同的重量(不包括 0 0 0 )。 输入格式 第一行为有两个整数…...

MYSQL-查看表中字段属性语法(三)

查看表中字段全部信息 show full columns from database_name.table_name; show full columns from table_name;示例 mysql> show full columns from world.city; ----------------------------------------------------------------------------------------------------…...

第三讲 part 3:前端处理LINK3D - 代码解析 - 从main出发看总体流程(ROS1改为ROS2)

目录 1. ROS1 ->ROS21.1 包含头文件1.2 全局变量定义1.3 结构体定义1.4 点云容器定义1.5 图像处理相关变量1.6 ROS2发布者和订阅者定义1.7 全局变量,被不断更新1.8 点云处理相关变量1.9 图像描述符1.10 主函数1.10.1. 初始化ROS21.10.2. 创建节点1.10.3. 声明参数1.10.4. 设…...

移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树

1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,…...

【C++】Eclipse技巧汇总

Eclipse C/C调试无法输入 在debug C/C程序时,Eclipse自带的窗口,无法读取cin等输入 解决办法: 参考:https://blog.csdn.net/sagjhdj/article/details/123271383 思路是调用外部console: 依次点击Debug>Debug Conf…...

Golang | Leetcode Golang题解之第430题扁平化多级双向链表

题目: 题解: func dfs(node *Node) (last *Node) {cur : nodefor cur ! nil {next : cur.Next// 如果有子节点,那么首先处理子节点if cur.Child ! nil {childLast : dfs(cur.Child)next cur.Next// 将 node 与 child 相连cur.Next cur.Chi…...

Java实现找色和找图功能

某天,张三接到一个任务需求,将一个Excel表格里面的员工信息,录入到员工系统里面,由于数据量非常大,操作起来巨慢。经过一段时间的操作和观察,他发现这种操作,非常有规律,基本就是一些…...

linux脚本工具

目录 shell工具查看Nvidia GPU状态查看某个监听端口是否存在设置局部代理查找关键字相关进程根据日常所需&#xff0c;持续更新 shell工具 减少重复性工作&#xff0c;简化工作流程&#xff0c;提高工作效率 将所编写的shell脚本赋予可执行权限 chmod x <脚本文件> 在…...

MySQL之基础篇

数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则&#xff1b; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…...

13年408计算机考研-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI参考模型&#xff0c;由下至上依次是&#xff1a;物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层&#xff0c; B.数据格式转换&#xff0c;是表示层要解决的问题&#xff0c;很显然答案…...

camera2 + MediaRecorder 实现的分段循环录像功能

硬件设备Android系统 8.1&#xff1b; 硬件设备上开发过程中的问题记录&#xff1a; 问题1. 长时间录像后发现保存的录像文件始终只有4G。 原因及解决&#xff1a;Android 11之前的系统有对保存的文件大小有限制&#xff0c;所以只能修改成分段保存&#xff0c;即录像文件3.…...

LeetCode 每日一题 2024/9/23-2024/9/29

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/23 2414. 最长的字母序连续子字符串的长度9/24 2207. 字符串中最多数目的子序列9/25 2306. 公司命名9/26 2535. 数组元素和与数字和的绝对差9/27 2516. 每种字符至少取 K…...

知识付费APP开发指南:基于在线教育系统源码的技术详解

本篇文章&#xff0c;我们将探讨基于在线教育系统源码的知识付费APP开发的技术细节&#xff0c;帮助开发者和企业快速入门。 一、选择合适的在线教育系统源码 选择合适的在线教育系统源码是开发的关键一步。市场上有许多开源和商业化的在线教育系统源码&#xff0c;开发者需要…...

物联网智能项目全面解析

目录 引言 一、物联网概述 1.1 什么是物联网 1.2 物联网的历史与发展 二、物联网智能项目分类 三、关键组件与技术 3.1 传感器和执行器 3.2 连接技术 3.3 数据处理与分析 3.4 用户界面 四、物联网智能项目案例分析 4.1 智能家居 4.2 智慧城市 4.3 工业物联网 4.4…...

【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式结构重用

序言&#xff1a; 本文详细讲解了关于我们在页面上经常看到的轮播图在鸿蒙开发中如何用Swiper实现&#xff0c;介绍了Swiper的基本用法与属性&#xff0c;及如何面对大段的重复代码进行封装和重用&#xff08;Extend、Styles、Builder&#xff09;&#xff0c;使代码更加简洁易…...

Springboot3保存日志到数据库

保存日志到数据库 请求日志几乎是所有大型企业级项目的必要的模块&#xff0c;请求日志对于我们来说后期在项目运行上线一段时间用于排除异常、请求分流处理、限制流量等。请求日志一般都会记录请求参数、请求地址、请求状态&#xff08;Status Code&#xff09;、SessionId、…...

叉车高位显示器无线摄影,安装更加便捷!

叉车叉货&#xff0c;基本功能&#xff0c;但货叉升降高度确不一定&#xff0c;普通的3米左右&#xff0c;高的十几米&#xff0c;特别是仓储车&#xff0c;仓库叉货空间小&#xff0c;环境昏暗&#xff0c;视线受阻严重&#xff0c;司机叉货升的那么高怎么准确无误的插到货呢&…...

模板的特化

模板的特化 1.概念2.函数模板特化3.类模板的特化3.1 全特化3.2 偏特化3.2.1 部分特化3.2.2 参数更进一步的限制 4.总结 1.概念 在原模板类的基础上&#xff0c;针对特殊类型所进行特殊化的实现方式 2.函数模板特化 步骤 1.必须要先有一个基础的函数模板 2.关键字 template后面接…...

PCIE总线架构

1 概述 PCIe总线(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,它是基于PCI总线的一种升级版,现在已经被广泛应用于各种高性能的计算机和服务器系统中。 PCIe总线提供更高的数据传输速度和更先进的特性,它主要特点如下: 高带宽:提供比…...

Adobe PR与AE的区别与联系(附网盘地址)

从事视频后期制作的小伙伴&#xff0c;对于PR&#xff08;Premiere&#xff09;和AE&#xff08;After Effects&#xff09;应该不会陌生。随着短视频的兴起&#xff0c;就连我们普通用户&#xff0c;拍摄完视频&#xff0c;都会去糟取精的剪辑一下&#xff0c;而PR正是一款功能…...