用Python Seaborn进行数据可视化

用Python Seaborn进行数据可视化

数据可视化是以图片的形式呈现数据。它对数据分析极为重要,主要是因为以数据为中心的Python软件包的奇妙生态系统。而且,它有助于理解数据,不管它有多复杂,通过总结并以简单易懂的格式呈现大量的数据,帮助清晰有效地沟通信息,从而理解数据的意义。

用Python进行数据可视化 Seaborn

Pandas和Seaborn是其中的一个软件包,使导入和分析数据变得更加容易。在这篇文章中,我们将使用Pandas和Seaborn来分析数据。

Pandas

Pandas提供清理和处理数据的工具。它是最流行的Python库,用于数据分析。在pandas中,一个数据表被称为数据框架。

因此,让我们开始创建Pandas数据框架:

示例 1:

# Python code demonstrate creating
  
import pandas as pd
  
# initialise data of lists.
data = {'Name':[ 'Mohe' , 'Karnal' , 'Yrik' , 'jack' ],
        'Age':[ 30 , 21 , 29 , 28 ]}
  
# Create DataFrame
df = pd.DataFrame( data )
  
# Print the output.
df

输出:

用Python进行数据可视化 Seaborn

例子2:从系统中加载CSV数据并通过pandas显示。

# import module
import pandas
 
# load the csv
data = pandas.read_csv("nba.csv")
 
# show first 5 column
data.head()

输出:

用Python进行数据可视化 Seaborn

Seaborn

Seaborn是一个了不起的可视化库,用于Python中的统计图形绘制。它建立在matplotlib库的基础上,也与pandas的数据结构紧密结合。

安装

对于Python环境:

pip install seaborn

对于conda环境:

conda install seaborn

让我们用seaborn创建一些基本的绘图:

# Importing libraries
import numpy as np
import seaborn as sns
   
   
# Selecting style as white,
# dark, whitegrid, darkgrid 
# or ticks
sns.set( style = "white" )
   
# Generate a random univariate 
# dataset
rs = np.random.RandomState( 10 )
d = rs.normal( size = 50 )
   
# Plot a simple histogram and kde 
# with binsize determined automatically
sns.distplot(d, kde = True, color = "g")

输出:

用Python进行数据可视化 Seaborn

Seaborn:统计数据可视化

Seaborn帮助可视化统计关系,为了了解数据集中的变量是如何相互关联的,以及这种关系是如何依赖于其他变量的,我们进行统计分析。这种统计分析有助于可视化趋势和识别数据集中的各种模式。

这些都是有助于可视化的情节。

  • Line Plot
  • Scatter Plot
  • Box plot
  • Point plot
  • Count plot
  • Violin plot
  • Swarm plot
  • Bar plot
  • KDE Plot

Line plot:

线状图 是最流行的绘制x和y之间关系的图,有可能有几个语义分组。

语法 : sns.lineeplot(x=None, y=None)

参数:

x, y:输入数据变量;必须是数字。可以直接传递数据或引用数据中的列。

让我们用线图和pandas将数据可视化:

示例 1:

# import module
import seaborn as sns
import pandas
 
# loading csv
data = pandas.read_csv("nba.csv")
 
# plotting lineplot
sns.lineplot( data['Age'], data['Weight'])

输出:

用Python进行数据可视化 Seaborn

例子2:使用色调参数来绘制图表。

# import module
import seaborn as sns
import pandas
 
# read the csv data
data = pandas.read_csv("nba.csv")
 
# plot
sns.lineplot(data['Age'],data['Weight'], hue =data["Position"])

输出:

用Python进行数据可视化 Seaborn

Scatter Plot:

散点图 可以使用几个语义分组,这可以帮助在图形中很好地理解对连续/分类数据。它可以画一个二维图。

语法: seaborn.scatterplot(x=None, y=None)

Parameters:

x, y: 输入的数据变量应该是数字。

返回:该方法返回Axes对象,并在其上绘制绘图。

让我们用散点图和pandas将数据可视化:

示例 1:

# import module
import seaborn
import pandas
 
# load csv
data = pandas.read_csv("nba.csv")
 
# plotting
seaborn.scatterplot(data['Age'],data['Weight'])

输出:

用Python进行数据可视化 Seaborn

例子2:使用色调参数来绘制图表。

import seaborn
import pandas
data = pandas.read_csv("nba.csv")
 
seaborn.scatterplot( data['Age'], data['Weight'], hue =data["Position"])

输出:

用Python进行数据可视化 Seaborn

Box plot:

箱形图(或箱须图)是通过连续/分类数据的四分位数来描述数字数据组的视觉表现。

箱形图由5个方面组成。

  • Minimum
  • 第一个四分之一或25%
  • 中位数(第二四分位数)或50%。
  • 第三四分之一或75%
  • Maximum

语法:

seaborn.boxplot(x=None, y=None, hue=None, data=None) 

参数:

  • x, y, hue:用于绘制长形数据的输入。
  • data:用于绘图的数据集。如果没有x和y,这将被解释为宽格式。

返回:它返回绘制有绘图的 Axes 对象。

用Pandas绘制箱形图:

示例 1:

# import module
import seaborn as sns
import pandas
 
# read csv and plotting
data = pandas.read_csv( "nba.csv" )
sns.boxplot( data['Age'] )

输出:

用Python进行数据可视化 Seaborn

示例 2:

# import module
import seaborn as sns
import pandas
 
# read csv and plotting
data = pandas.read_csv( "nba.csv" )
sns.boxplot( data['Age'], data['Weight'])

输出:

用Python进行数据可视化 Seaborn

Violin Plot:

琴形图类似于boxplot。它显示了一个或多个分类变量的几个定量数据,这样就可以比较这些分布情况。

语法: seaborn.violinplot(x=None, y=None, hue=None, data=None)

参数:

  • x, y, hue:用于绘制长形数据的输入。
  • data:用于绘图的数据集。

用Pandas绘制小提琴图:

示例 1:

# import module
import seaborn as sns
import pandas
 
# read csv and plot
data = pandas.read_csv("nba.csv")
sns.violinplot(data['Age'])

输出:

用Python进行数据可视化 Seaborn

示例 2:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.violinplot(x ="Age", y ="Weight",data = data)

输出:

用Python进行数据可视化 Seaborn

Swarm plot:

蜂群图类似于带状图,我们可以针对分类数据画出一个非重叠点的蜂群图。

语法: seaborn.swarmplot(x=None, y=None, hue=None, data=None)

参数:

  • x, y, hue:用于绘制长形数据的输入。
  • data:用于绘图的数据集。

用Pandas绘制蜂群图:

示例 1:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv( "nba.csv" )
seaborn.swarmplot(x = data["Age"])

输出:

用Python进行数据可视化 Seaborn

示例 2:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.swarmplot(x ="Age", y ="Weight",data = data)

输出:

用Python进行数据可视化 Seaborn

Bar plot:

条形图用每个矩形的高度表示一个数字变量的中心趋势估计值,并用误差条提供该估计值周围的不确定性的一些指示。

语法 : seaborn.barplot(x=None, y=None, hue=None, data=None)

参数 :

  • x, y :此参数取数据中的变量名称或矢量数据,用于绘制长形数据的输入。
  • hue : (optional) 这个参数取列名,用于颜色编码。
  • data : (optional) 此参数采取DataFrame、数组或数组列表,用于绘图的数据集。如果没有x和y,这将被解释为宽格式。否则,它将被视为长格式。

返回 : 返回带有绘图的 Axes 对象。

用Pandas绘制条形图:

示例 1:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.barplot(x =data["Age"])

输出:

用Python进行数据可视化 Seaborn

示例 2:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.barplot(x ="Age", y ="Weight", data = data)

输出:

用Python进行数据可视化 Seaborn

Point plot:

点图用于显示点估计值和使用散点图字形的置信区间。点图通过散点图点的位置来表示对数字变量中心趋势的估计,并通过误差条对该估计的不确定性提供一些指示。

语法:seaborn.pointplot(x=None, y=None, hue=None, data=None)

参数:

  • x, y: 用于绘制长形数据的输入。
  • hue: (可选)用于颜色编码的列名。
  • data:数据框架作为绘图的数据集。

返回: Axes对象,并在其上绘制情节。

用Pandas绘制点状图:

示例:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.pointplot(x = "Age", y = "Weight", data = data)

输出:

用Python进行数据可视化 Seaborn

Count plot:

计数图用于显示每个分类仓中观察值的计数,使用条形图。

返回: Axes对象,并在其上画出了情节。

参数 :

  • x, y:该参数取数据中的变量名称或矢量数据,可选,用于绘制长形数据的输入。
  • hue : (可选) 这个参数取列名,用于颜色编码。
  • data : (optional) 这个参数采取DataFrame、数组或数组列表,用于绘图的数据集。如果没有x和y,这将被解释为宽格式。否则,它被认为是长格式的。

返回:返回绘制有绘图的Axes对象。

用Pandas绘制计数图:

示例:

# import module
import seaborn
 
seaborn.set(style = 'whitegrid')
 
# read csv and plot
data = pandas.read_csv("nba.csv")
seaborn.countplot(data["Age"])

输出:

用Python进行数据可视化 Seaborn

KDE Plot:

KDE图被描述为核心密度估计,用于可视化连续变量的概率密度。它描述了连续变量中不同数值的概率密度。我们也可以为多个样本绘制一个图形,这有助于更有效地进行数据可视化。

语法: seaborn.kdeplot(x=None, *, y=None, vertical=False, palette=None, **kwargs)

参数:

  • x, y :向量或数据中的键值

  • vertical : boolean (True or False)

  • data : pandas.DataFrame, numpy.ndarray, mapping, or sequence

用Pandas绘制KDE绘图:

示例 1:

# importing the required libraries
from sklearn import datasets
import pandas as pd
import seaborn as sns
   
# Setting up the Data Frame
iris = datasets.load_iris()
   
iris_df = pd.DataFrame(iris.data, columns=['Sepal_Length',
                      'Sepal_Width', 'Patal_Length', 'Petal_Width'])
   
iris_df['Target'] = iris.target
   
iris_df['Target'].replace([0], 'Iris_Setosa', inplace=True)
iris_df['Target'].replace([1], 'Iris_Vercicolor', inplace=True)
iris_df['Target'].replace([2], 'Iris_Virginica', inplace=True)
   
# Plotting the KDE Plot
sns.kdeplot(iris_df.loc[(iris_df['Target'] =='Iris_Virginica'),
            'Sepal_Length'], color = 'b', shade = True, Label ='Iris_Virginica')

输出:

用Python进行数据可视化 Seaborn

示例 2:

# import module
import seaborn as sns
import pandas
 
# read top 5 column
data = pandas.read_csv("nba.csv").head()
 
sns.kdeplot( data['Age'], data['Number'])

输出:

用Python进行数据可视化 Seaborn

使用seaborn和pandas的双变量和单变量数据

在开始之前,让我们对双变量和单变量数据做一个小小的介绍。

双变量数据:这种类型的数据涉及两个不同的变量。这类数据的分析涉及原因和关系,分析的目的是找出两个变量之间的关系。

单变量数据:这种类型的数据只由**个变量组成。因此,单变量数据的分析是最简单的分析形式,因为信息只涉及到一个变化的数量。它不涉及原因或关系,分析的主要目的是描述数据并找到其中存在的模式。

让我们看看一个双变量数据的例子:

例子1:使用箱形图。

# import module
import seaborn as sns
import pandas
 
# read csv and plotting
data = pandas.read_csv( "nba.csv" )
sns.boxplot( data['Age'], data['Height'])

输出:

用Python进行数据可视化 Seaborn

例子2:使用KDE plot。

# import module
import seaborn as sns
import pandas
 
# read top 5 column
data = pandas.read_csv("nba.csv").head()
 
sns.kdeplot( data['Age'], data['Weight'])

输出:

用Python进行数据可视化 Seaborn

让我们看一个单变量数据分布的例子:

例子:使用dist绘图

# import module
import seaborn as sns
import pandas
 
# read top 5 column
data = pandas.read_csv("nba.csv").head()
 
sns.distplot( data['Age'])

输出:

用Python进行数据可视化 Seaborn

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程