kaggle平台学习复习笔记 | Data Visualization | Seaborn

news2024/9/29 21:18:08

目录

    • 1.hello Seaborn
    • 2.Line Charts
    • 3.Bar Charts and Heatmaps
    • 4.Scatter Plots
    • Distributions
    • 5.Choosing Plot Types and Custom Styles

1.hello Seaborn

import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")

fifa_filepath 数据集的文件路径。

index_col=“Date” 我们将index_col的值设置为第一列的名称
(“Date”,在Excel中打开时在文件的单元格A1中找到)。

parse_dates=True将每行标签理解为日期
(而不是数字或其他具有不同含义的文本)。

# Path of the file to read
fifa_filepath = "../input/fifa.csv"

# Read the file into a variable fifa_data
fifa_data = pd.read_csv(fifa_filepath, index_col="Date", parse_dates=True)

Examine the data

# Print the first 5 rows of the data
fifa_data.head()

在这里插入图片描述
Plot the data

# Set the width and height of the figure
plt.figure(figsize=(16,6))

# Line chart showing how FIFA rankings evolved over time 
sns.lineplot(data=fifa_data)

在这里插入图片描述

2.Line Charts

展示一段时间内的数据趋势
本教程的数据集跟踪音乐流服务Spotify上的全球每日流。我们专注于2017年和2018年的五首流行歌曲:
在这里插入图片描述
在这里插入图片描述
Load the data

# Path of the file to read
spotify_filepath = "../input/spotify.csv"

# Read the file into a variable spotify_data
spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)

Examine the data

# Print the first 5 rows of the data
spotify_data.head()
# Print the last five rows of the data
spotify_data.tail()

在这里插入图片描述
在这里插入图片描述

# Line chart showing daily global streams of each song 
sns.lineplot(data=spotify_data)

在这里插入图片描述
如上所述,代码行相对较短,有两个主要部分:

sns.lineplot 创建折线图。

在本课程中学习的每个命令都将以sns开头,这表示该命令来自seaborn包。例如,我们使用sns.lineplot制作折线图。很快,您将了解到我们使用sns.barplot和sns.heatmap分别制作条形图和热图。

data=spotify_data选择将用于创建图表的数据。

在创建折线图时,您将始终使用相同的格式,而随着新数据集的变化,唯一的变化就是数据集的名称。因此,例如,如果使用名为financial_data的不同数据集,代码行将显示如下:

# Set the width and height of the figure
plt.figure(figsize=(14,6))

# Add title
plt.title("Daily Global Streams of Popular Songs in 2017-2018")

# Line chart showing daily global streams of each song 
sns.lineplot(data=spotify_data)

在这里插入图片描述

到目前为止,您已经学习了如何为数据集中的每一列绘制一条线。在本节中,您将学习如何绘制列的子集。

我们将首先打印所有列的名称。这只需一行代码就可以完成,只需交换数据集的名称(在本例中为spotify_data),即可适用于任何数据集

list(spotify_data.columns)

在这里插入图片描述

# Set the width and height of the figure
plt.figure(figsize=(14,6))

# Add title
plt.title("Daily Global Streams of Popular Songs in 2017-2018")

# Line chart showing daily global streams of 'Shape of You'
sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")

# Line chart showing daily global streams of 'Despacito'
sns.lineplot(data=spotify_data['Despacito'], label="Despacito")

# Add label for horizontal axis
plt.xlabel("Date")

在这里插入图片描述

3.Bar Charts and Heatmaps

在本教程中,我们将使用美国交通部的数据集来跟踪航班延误。
Load the data

# Path of the file to read
flight_filepath = "../input/flight_delays.csv"

# Read the file into a variable flight_data
flight_data = pd.read_csv(flight_filepath, index_col="Month")

Examine the data

# Print the data
flight_data

在这里插入图片描述
Bar chart

显示每月Spirit Airlines航班平均到达延误的条形图

# Set the width and height of the figure
plt.figure(figsize=(10,6))

# Add title
plt.title("Average Arrival Delay for Spirit Airlines Flights, by Month")

# Bar chart showing average arrival delay for Spirit Airlines flights by month
sns.barplot(x=flight_data.index, y=flight_data['NK'])

# Add label for vertical axis
plt.ylabel("Arrival delay (in minutes)")

在这里插入图片描述
Heatmap 热力图

# Set the width and height of the figure
plt.figure(figsize=(14,7))

# Add title
plt.title("Average Arrival Delay for Each Airline, by Month")

# 显示各航空公司每月平均到达延误的热力图
sns.heatmap(data=flight_data, annot=True)

# Add label for horizontal axis
plt.xlabel("Airline")

annot=True
这确保每个单元格的值显示在图表上。
(省略此项将删除每个单元格中的数字!)
在这里插入图片描述

4.Scatter Plots

Load and examine the data
我们将使用一个(合成的)保险费用数据集,看看我们是否能够理解为什么一些客户比其他客户支付更多

# Path of the file to read
insurance_filepath = "../input/insurance.csv"

# Read the file into a variable insurance_data
insurance_data = pd.read_csv(insurance_filepath)
insurance_data.head()

在这里插入图片描述
Scatter plots

sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'])

在这里插入图片描述
上述散点图表明,体重指数(BMI)与保险费用呈正相关,BMI较高的客户通常也会支付更多的保险费用。(这种模式是有道理的,因为高BMI通常与慢性病风险较高相关。)

要再次检查这种关系的强度,您可能需要添加一条回归线,或最适合数据的线。为此,我们将命令更改为sns.regplot。

sns.regplot(x=insurance_data['bmi'], y=insurance_data['charges'])

在这里插入图片描述

Color-coded scatter plots
我们可以使用散点图来显示(不是两个,而是…)三个变量之间的关系!一种方法是对点进行颜色编码。

例如,为了了解吸烟如何影响BMI和保险费用之间的关系,我们可以用“吸烟者”对分数进行颜色编码,并在轴上绘制其他两列(“bmi”、“charges”)

sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'], hue=insurance_data['smoker'])
# hue字段根据smoker是否吸烟进行颜色区分

在这里插入图片描述
这一散点图显示,尽管不吸烟者倾向于随着BMI的增加而支付更多的钱,但吸烟者支付的钱更多。

为了进一步强调这一事实,我们可以使用sns.lmplot命令添加两条回归线,分别对应于吸烟者和非吸烟者。(你会注意到,相对于不吸烟者的回归线,吸烟者的回归曲线斜率要大得多!)

sns.lmplot(x="bmi", y="charges", hue="smoker", data=insurance_data)

在这里插入图片描述

Distributions

创建直方图和密度图
Select a dataset
我们将使用一个由150种不同花朵组成的数据集,或三种不同种类的鸢尾(刚毛鸢尾、花斑鸢尾和处女鸢尾)中的50种
在这里插入图片描述
Load and examine the data

# Path of the file to read
iris_filepath = "../input/iris.csv"

# Read the file into a variable iris_data
iris_data = pd.read_csv(iris_filepath, index_col="Id")

# Print the first 5 rows of the data
iris_data.head()

在这里插入图片描述
假设我们想创建一个直方图,看看鸢尾花的花瓣长度如何变化。我们可以使用sns.histplot命令执行此操作。

# Histogram 
sns.histplot(iris_data['Petal Length (cm)'])

xlabel=‘Petal Length (cm)’, ylabel=‘Count’
在这里插入图片描述
Density plots
下一种类型的图是核密度估计(KDE)图。如果您不熟悉KDE图,可以将其视为平滑的直方图。

要绘制KDE图,我们使用sns.kdeplot命令。设置shade=True为曲线下方的区域上色(data=选择要绘制的列)。

# KDE plot 
sns.kdeplot(data=iris_data['Petal Length (cm)'], shade=True)

在这里插入图片描述
Color-coded plots
在本教程的下一部分,我们将创建图来了解物种之间的差异。

# Histograms for each species
sns.histplot(data=iris_data, x='Petal Length (cm)', hue='Species')

# Add title
plt.title("Histogram of Petal Lengths, by Species")

在这里插入图片描述

# KDE plots for each species
sns.kdeplot(data=iris_data, x='Petal Length (cm)', hue='Species', shade=True)

# Add title
plt.title("Distribution of Petal Lengths, by Species")

在这里插入图片描述

5.Choosing Plot Types and Custom Styles

在这里插入图片描述
由于决定如何最好地讲述数据背后的故事并不总是容易的,因此我们将图表类型分为三大类来帮助解决这一问题。

Trends
被定义为一种变化模式。
sns.lineplot-折线图最适合显示一段时间内的趋势,可以使用多条线显示多个组中的趋势。
Relationship
有许多不同的图表类型可用于了解数据中变量之间的关系。
sns.barplot-条形图用于比较不同组对应的数量。
sns.heatmap-heatmap可用于查找数字表中的颜色编码模式。
sns.scatterplot-散点图显示两个连续变量之间的关系;如果用颜色编码,我们还可以显示与第三个分类变量的关系。
sns.regplot-在散点图中包含回归线可以更容易地看到两个变量之间的任何线性关系。
sns.lmplot-如果散点图包含多个颜色编码的组,则此命令对于绘制多条回归线非常有用。
sns.swarm图-类别散点图显示了连续变量和分类变量之间的关系。
Distribution
分布-我们将分布可视化,以显示我们期望在变量中看到的可能值,以及它们的可能性。

sns.histplot-直方图显示单个数值变量的分布。
sns.kdeplot-KDE图(或2D KDE图)显示单个数值变量(或两个数值变量)的估计平滑分布。
sns.jointplot-该命令用于同时显示2D KDE图和每个单独变量的相应KDE图。

我们将使用上一教程中用于创建折线图的相同代码。下面的代码加载数据集并创建图表。

# Path of the file to read
spotify_filepath = "../input/spotify.csv"

# Read the file into a variable spotify_data
spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)

# Line chart 
plt.figure(figsize=(12,6))
sns.lineplot(data=spotify_data)

在这里插入图片描述
我们只需一行代码就可以将图形的样式快速更改为不同的主题。

# Change the style of the figure to the "dark" theme
sns.set_style("dark")

# Line chart 
plt.figure(figsize=(12,6))
sns.lineplot(data=spotify_data)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/150052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云服务器安装mysql数据库教程

阿里云服务器怎么安装mysql数据库?阿里云服务器ECS如何安装mysql数据库教程。主机教程网下面就来分享一下阿里云服务器安装mysql数据库教程。 第一步 1、登录个人的阿里云服务管理终端 2、点击进入远程连接,输入之前设置的远程登录密码(如…

能够激发创作灵感的笔记软件,强大在哪里? #RoamResearch

今天的人类知识体系,已经汇聚成了一个浩瀚的信息与思想的海洋,信息量呈指数级增长,如果能够解决潜在的协作问题,这会给个体带来巨大的机会。怎么有效利用信息?如何搭建自己的知识体系?这些都是信息爆炸的时…

在ubuntu系统上用pyinstaller打包yolov5项目代码

目录0. 背景1. 创建虚拟环境2. pyinstaller打包2.1. 生成并修改spec文件2.2. 重新生成二进制文件3. 测试0. 背景 最近需要在ubuntu 18.04上将自己写的一些基于yolov5的项目代码打包成二进制文件,方便部署的同时也尽量减少暴露源码。 参考网上的很多教程&#xff0…

Node.JS(4)--模块、exports和module

文章目录模块核心模块文件模块基本数据类型引用数据类型exports和module.exports的关系模块 分为两大类 核心模块 由node引擎提供的模块 核心模块的标识就是模块的名字 var fsrequire("fs");文件模块 由用户自己创建的模块文件模块的标识就是文件的路径&#x…

一个专注推荐.Net开源项目的榜单

大家好,我是编程乐趣,从7月份开始推荐开源项目,已经推荐了接近100个开源项目了,其中绝大部分是有关.Net的开源项目,也受到大家非常多人的喜欢。 由于公众号不方便查询,很多人又想了解更多的开源项目&#…

C++【多线程】

文章目录一、什么是线程二、创建线程一、什么是线程 线程在进程内部执行,是OS调度的基本单位。 在堆区上存在下面一种数据结构 struct vm_area_struct{ //用来记录这块空间的起始和终止。unsigned long vm_start;unsigned long vm_end;//其实这是一个双向链表中的结…

判断环形链表是否有环??返回环形链表的入口点!!

上次笔者写了一篇大概有7个题的链表相关的题目解析,感觉还不错,感兴趣的各位老铁,可以点一下链接进行欣赏:做几个与链表相关的题吧!https://blog.csdn.net/weixin_64308540/article/details/128550685?spm1001.2014.3…

CPT205-Computer Graphics(2)

文章目录7. Hierarchical Modelling7.1 Local and world co-ordinate frames of reference7.1.1 Relative motion7.2 Linear modelling7.3 Hierarchical modelling7.3.1 Hierarchical transformations8. Lighting and Materials8.1 Lighting sources8.1.1 Point light8.1.2 Dir…

如何将revit的内建模型导出使用?项目族管理功能介绍

Revit中内建模型建模是我们常用的功能,每次建模完成后都可以在另一个项目中使用,但是前提是需要导出后再载入才能在另一个项目中使用。今天就教教大家如何将Revit的内建模型单独导出,方便大家下次使用在其它项目。 如何将revit的内建模型单独…

计算机组成原理_总线的性能指标

计算机组成原理总目录总线的性能指标 一、总线周期和时钟周期 总线周期 总线周期通常指的是CPU完成一次访问内存或I/O端口操作所需要的时间 其中包括申请阶段、寻址阶段、传输阶段和结束阶段时钟周期 时钟周期是处理操作最基本的单位,在一个时钟周期内,…

【历史上的今天】1 月 9 日:iPhone 问世;iTunes 发布;激光打印机的发明者出生

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 1 月 9 日,在 1978 年的这段时间,我国恢复了研究生制度,这一年,共录取了 10500 多名研究生。研究生教育的中断和…

哈希的应用 —— 布隆过滤器

目录 一、布隆过滤器的提出 二、布隆过滤器的介绍 1. 基本概念 2. 布隆过滤器的特点 3. 哈希函数和布隆过滤器的长度对误判的影响 三、布隆过滤器的实现 1. 布隆过滤器的插入 (Set接口) 2. 布隆过滤器的查找(Test接口) …

javascript原型之保姆级讲解

目录前言一,面向对象编程1.1 面向过程与面向对象1.2 JS创建类和对象1.3 类的继承1.4 Super关键词1.5 几个注意点二,构造函数原型2.1 创建对象的三种方法2.2 静态成员和实例成员2.3 构造函数的弊端2.4 函数的共享-原型prototype2.5 对象原型___proto__2.6…

用Python制作你的专属音乐播放器(此刻浪漫只属于你哦*´▽`*)

文章目录前言一、项目介绍二、环境配置三、代码实战前言 昨天是博主的一位朋友生日,除了送上大大的红包,知道他喜欢听音乐,特意用代码给他写了一个 专属音乐播放器,今天把这个代码也开源送给所有粉丝哦。 一、项目介绍 我们常用…

Vue--》实现动画与过渡效果

目录 动画效果 过渡效果 第三方动画库 Vue封装的过渡与动画作用是在插入、更新或移除DOM元素时,在合适的时候给元素添加类名。 动画效果 操作css的trasition或animation,vue会给目标元素添加/移除特定的class,过渡的相关类名是&#xff1…

Spring项目中用了这种解耦模式,经理对我刮目相看

前言 不知道大家在项目中有没有遇到过这样的场景,根据传入的类型,调用接口不同的实现类或者说服务,比如根据文件的类型使用 CSV解析器或者JSON解析器,在调用的客户端一般都是用if else去做判断,比如类型等于JSON&…

【Spring6源码・IOC】Bean的实例化

上一节我们讲到《【Spring6源码・IOC】BeanDefinition的加载》,这一节我们来讲解一下Bean的实例化。 根据xml或注解加载完Bean的信息后,最终会通过反射来创建bean的对象。 invokeBeanFactoryPostProcessors()主要是加载BeanDefinition。 finishBeanFa…

MAC(m1)-VMWare Fusion安装CentOS7.9(续)

下载了CentOS8,优先安装CentOS8 默认的配置有点小, 可以根据自己需求进行自定义设置: 点击存储,会出现: 咱们是中国人,优先选择中文: 点击网络和主机名,配置网络: 打开网卡开关&…

找出给定数组中和是给定目标整数的两个整数,输出找到的两个整数下标

找出给定数组中和是给定目标整数的两个整数,输出找到的两个整数下标。 (本文获得CSDN质量评分【x】)【学习的细节是欢悦的历程】Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅…

Android---简易Snackbar

目录 Snackbar 简介 Snackbar 特性 完整Demo Snackbar 简介 Snackbar 是 Android5.0 新特性---Material Design 中的一个控件,用来代替 Toast。Snackbar 就是一个类似 Toast 的快速弹出消息提示的控件,手机上显示在底部,大屏幕设备显示在左…