首页 > 编程语言 >Python语言的数据可视化库

Python语言的数据可视化库

时间:2023-09-08 14:00:52浏览次数:45  
标签:plt 语言 show Python length 可视化 sns data species

Seaborn是一个基于Python语言的数据可视化库,它能够创建高度吸引人的可视化图表。

在Matplotlib库的基础上,提供了更为简便的API和更为丰富的可视化函数,使得数据分析与可视化变得更加容易。

Seaborn的设计哲学是以美学为中心,致力于创建最佳的数据可视化。

同时也保持着与Python生态系统的高度兼容性,可以轻松集成到Python数据分析以及机器学习的工作流程中。

Python语言的数据可视化库_数据

使用Seaborn制作15种不同类型的可视化图表。

具体图表类型,包含条形图、散点图、直方图、折线图、小提琴图、箱线图、热力图、点图、密度图、计数图、分簇散点图、特征图、Facet Grid、联合分布图、分类图。

首先使用pip安装Seaborn。

pip install seaborn

Seaborn提供了一些内置的数据集,如iris、tips、dots、glue等。

Python语言的数据可视化库_直方图_02

你可以在GitHub上看到更多的数据集。

https://github.com/mwaskom/seaborn-data

这里我们使用的是Seaborn的Iris数据集。

Iris也称鸢尾花数据集,是一类多重变量分析的数据集。

通过花萼长度、花萼宽度、花瓣长度、花瓣宽度4个属性来预测鸢尾花属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

print('\n')
data = pd.read_csv('iris.csv')
print(data[10:15])

结果如下。

Python语言的数据可视化库_数据集_03

查看不同种类数量情况。

print(data['species'].value_counts())

结果如下。

Python语言的数据可视化库_直方图_04


1

柱状图

柱状图通常被用于表示分类变量,它只显示平均值(或其他参数值)。

为了使用这个图,为x轴选择一个分类列(物种),为y轴选择一个数值列(花瓣长度)。

sns.barplot(x='species', y='petal_length', hue='species', data=data)
plt.show()

可以看到创建了一个每个分类列取平均值的图。

花瓣长度与物种间关系的条形图(基于鸢尾数据集)。

Python语言的数据可视化库_数据_05


2

散点图

散点图是由几个数据点组成的图。

使用x轴表示花瓣长度,y轴表示数据集的萼片长度,制作散点图。

sns.scatterplot(x='petal_length', y='sepal_length', hue='species', style='species', s=90, data=data)
plt.show()

结果如下。

Python语言的数据可视化库_直方图_06

在这里,我们看到不同物种的花瓣长度和萼片长度之间有很强的关系。


3

直方图

直方图通常用于可视化单个变量的分布,不过也可用于比较两个或更多变量的分布。

除了直方图之外,KDE参数还可以用来显示核密度估计(KDE)。

这里使用鸢尾花数据集的萼片长度来制作直方图。

sns.histplot(x='sepal_length', kde=True, data=data)
plt.show()

结果如下。

Python语言的数据可视化库_数据_07

两个变量的直方图。

sns.histplot(x='sepal_length', kde=True, hue='species', data=data)
plt.show()

结果如下。

Python语言的数据可视化库_直方图_08


4

折线图

折线图是一种通用的图表,可以用来可视化各种不同的关系。

该图表易于创建和分析,并且可以用于有效地交流数据。

在折线图中,每个数据点都是由直线连接。

这里在x轴上使用花瓣长度,在y轴上使用花瓣宽度。

sns.lineplot(x='petal_length', y='petal_width', data=data)
plt.show()

结果如下。

Python语言的数据可视化库_数据集_09


5

小提琴图

小提琴图表示数据的密度,类似于散点图,并像箱线图一样表示分类数据。

数据的密度越大的区域越胖。小提琴形状表示数据的核密度估计,形状在每个点的宽度表示该点的数据密度。

这里使用x轴表示物种,y轴表示花瓣长度。

sns.violinplot(x='species', y='petal_length', data=data, hue='species')
plt.show()

结果如下。

Python语言的数据可视化库_直方图_10


6

箱线图

箱线图由一个箱形图和两个须状图组成。

它表示四分位数范围(IQR),即第一和第三四分位数之间的范围。中位数由框内的直线表示。

晶须从盒子边缘延伸到最小值和最大值的1.5倍IQR。

异常值是落在此范围之外的任何数据点,并单独显示。

这里使用x轴表示种数,y轴表示萼片长度。

sns.boxplot(x='species', y='sepal_length', data=data, hue='species')
plt.show()

结果如下。

Python语言的数据可视化库_数据集_11


7

热力图

热力图是数据的二维可视化表示,使用颜色来显示变量的值。

热力图经常用于显示数据集中的各种变量的关联关系,使用corr方法来实现。

heat_corr = data.corr()
sns.heatmap(heat_corr, annot=True)
plt.show()

结果如下。

Python语言的数据可视化库_数据集_12


8

点线图

点线图是一种统计图表,用于显示一组数据及其变异性的平均值或集中趋势。

点线图通常用于探索性数据分析,以快速可视化数据集的分布或比较多个数据集。

本例中的每个数据点表示为单个点,而水平线表示平均值。

sns.pointplot(x='species', y='petal_length', data=data, markers='^', color='g')
plt.show()

结果如下。

Python语言的数据可视化库_数据_13


9

密度图

密度图通过估计连续随机变量的概率函数来表示数据集的分布,也称为核密度估计(KDE)图。

sns.kdeplot(x='petal_length', data=data, hue='species', multiple='stack')
plt.show()

结果如下。

Python语言的数据可视化库_数据_14

上图可以清晰的看出花瓣长度与物种之间的关系。

还可以修改密度图的显示方式,和等高线有点像。

sns.kdeplot(x='petal_length', y='sepal_length', data=data, hue='species')
plt.show()

结果如下。

Python语言的数据可视化库_数据_15


10

计数图

计数图是一种分类图,它显示了分类变量的每个类别中观测值的计数。

它本质上是一个柱状图,其中每个柱的高度代表特定类别的观测值的数量。

计算数据集中每个物种的样本总数。

sns.countplot(x='species', data=data)
plt.show()

结果如下。

Python语言的数据可视化库_数据集_16

从上图可以看出,每个物种在数据集中包含相同数量的样本。


11

分簇散点图

分簇散点图和条形图挺相似的。

不同之处在于,这些点会重叠出现,这样有助于更好地表示值的分布情况。

sns.swarmplot(x='sepal_width', y='species', data=data, hue='species', dodge=True, orient='h', size=8)
plt.show()

结果如下。

Python语言的数据可视化库_数据_17

在上图中,每个数据点表示为一个点,并且这些点的排列使得它们在分类轴上不会相互重叠。

在这里,所有萼片宽度数据点以不同的方式代表每个物种的一个点。


12

特征图

特征图可视化了数据集中变量之间的两两关系。

创建了一个坐标轴网格,将所有数值数据点将在彼此之间创建一个图,在x轴上具有单列,y轴上具有单行。

对角线图是单变量分布图,它绘制了每列数据的边际分布。

sns.set(rc={"figure.figsize": (6, 3)})
sns.pairplot(data=data, hue='species')
plt.show()

结果如下。

Python语言的数据可视化库_直方图_18

上图表示鸢尾花数据集中所有变量之间的关系。


13

FacetGrid

Seaborn中的FacetGrid函数将数据集的一个或多个分类变量作为输入,然后创建一个图表网格,每种类别变量的组合都有一个图表。

网格中的每个图都可以定制为不同类型的图,例如散点图、直方图或箱形图,具体取决于要可视化的数据。

在这里,制作了每个物种花瓣长度的图表。

g = sns.FacetGrid(data, col="species", height=4, hue='species')
g.map(sns.histplot, "petal_length")
plt.show()

结果如下。

Python语言的数据可视化库_数据_19


14

联合分布图

联合分布图将两个不同类型的图表组合在一个表中,展示两个变量之间的关系(二元关系)。

sns.jointplot(x="sepal_length", y="sepal_width", data=data,
              palette='Set2', hue='species')
plt.show()

结果如下。

Python语言的数据可视化库_数据_20

在上面的图表中,中间区域绘制了散点图,边侧则是密度图。


15

分类图

cat图(分类图缩写)是Seaborn中的一种图表,可以用来可视化数据集中一个或多个分类变量与连续变量之间的关系。

它可用于显示分布、比较组或显示不同变量之间的关系。

sns.catplot(data=data, x="petal_length", y="species", kind="violin", color=".9", inner=None)
sns.swarmplot(data=data, x="petal_length", y="species", size=3)
plt.show()

结果如下。

Python语言的数据可视化库_直方图_21

这里可以看出鸢尾数据集中花瓣长度与物种之间的关系。

Seaborn作为一个强大的可视化模块,在数据分析机器学习有很大的作用。

但其功能远不止上述内容,如果想更加深入了解,可以访问其官网地址或者中文文档。

标签:plt,语言,show,Python,length,可视化,sns,data,species
From: https://blog.51cto.com/bcyy147/7409565

相关文章

  • Python跨平台兼容性解决方案及实现方法
    在如今多样化的网络计算环境下,开发者们面临着将应用程序运行于不同操作系统和硬件平台上的挑战。本文旨在分享一些关键技巧和实际操作步骤,帮助您更好地理解并实现Python中的跨平台兼容性,使您编写出具有广泛适应性、可移植性强以及稳定高效的代码。一、了解目标平台特点......
  • 【Python 自动化】小说推文一键生成思路概述
    最近看了一下小说推文成品软件的思路,发现可以完全迁移到我的BookerAutoVideo上面来。这篇短文里面,我试着分析一下整个推文视频生成的流程,以及简要阐述一下有什么工具。整体流程是这样:分句原文是按照段落组织的,我们可能希望按照句子生成图片。于是我们需要把段落拆成句子,像这......
  • python爬虫练习1-百度图片
     写了一个简单的爬图片练习importrequestsimportosdefbd_img(title1):url=f'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10755979809828115852&ipn=rj&ct=201326592&is=&fp=result&fr=&word={title1}&queryWord......
  • 深入理解 Python and 逻辑运算符(踩坑)
    1.引子defenabled()->bool:a=["a,"b"] b=Truec=Falsereturn(bandc)or(banda)以上代码返回什么?实际生产项目踩到的坑,也怪自己没理解到未,才疏学浅!!!想当然的以为python自己会做真值判断了。其实真值判断是在if条件语句时会生效,但在普通的......
  • python模拟用户登录
    python模拟用户登录目录python模拟用户登录一、授权认证二、Cookie认证一、授权认证1、HTTP基础认证importrequestsfromrequests.authimportHTTPBasicAuthurl="https://xxx.xxx.xxx/"username="admin"password="admin"#HTTP基础认证response=requests.ge......
  • python中元组的解包用法,以及 *在方法中的使用方法
    下面是关于python中*的用法详解1.*做法乘法运算符在python中,*作为乘法运算符是使用,用来进行两个数的乘法运算。示例代码:a=3b=4c=a*bprint(c)#12 2.*作为函数的可变参数(是元组的形式导入)单星号(*):*args。将所有参数以元组(tuple)的形式导入双星号(**):**kwargs。将参......
  • 【Python&GIS】矢量数据投影转换(坐标转换)
    ​    之前跟大家分享过面矢量数据投影转换和点矢量数据投影转换,但博主在日常工作的过程中发现之前分享的面矢量数据投影转换有时候会出现错误,或者转换后的效果不好。再一次偶然的过程中发现了新的坐标转换(投影转换)函数,所以今天和大家分享一下,大家在进行坐标转换时可以......
  • 【Python&RS】基于GDAL修改栅格数据的DN值
    ​    遥感工作者离不开栅格数据,有时候我们可能需要修改栅格数据的值,但ENVI和ArcGIS中并没有直接修改DN值的工具,只有栅格计算器、Bandmath这些工具去计算整个波段的值,或者EditClassificationImage工具可以修改ENVI分类后的像元值,但这个工具只对分类格式有效,博主整不......
  • 【题解】《PTA-Python程序设计》题目集分享
    第1章-1从键盘输入两个数,求它们的和并输出(30分)本题目要求读入2个整数A和B,然后输出它们的和。输入格式:在一行中给出一个被加数在另一行中给出一个加数输出格式:在一行中输出和值。输入样例:在这里给出一组输入。例如:18-48输出样例:在这里给出相应的输出。例如:......
  • Python学习日记 京东工单信息获取
    importrequestsimportcsvimportrandomf=open('vc.csv',mode='a',encoding='utf-8',newline='')csv_writer=csv.DictWriter(f,fieldnames=['客户姓名','订单编号','pin'])csv_wri......