Python 中使用 Seaborn 进行基本的数据排名分析通常涉及到可视化数据的分布和排名。Seaborn 是一个基于 Matplotlib 的数据可视化库,提供了丰富的图表类型,使得数据分析更加直观。可以对数据进行初步的排名分析,了解数据的基本分布情况,从而为更深入的数据分析打下基础。

1、条形图

条形图用于显示离散变量的值。在排名分析中,它可以用来表示不同类别的数量或平均值。使用barplot()绘制条形图的函数,常用参数如下,

参数

描述

x

指定数据的横轴变量

y

指定数据的纵轴变量

hue

在同一图中添加另一个类别维度

data

要使用的数据集,通常是 pandas 的 DataFrame

order

控制条形的顺序

hue_order

使用 hue 时控制不同 hue 类别的顺序

estimator

用于聚合的统计函数,默认是平均值

ci

置信区间的大小,默认是 95%

n_boot

计算置信区间的引导样本的数量

orient

控制条形图的方向,'v' 垂直,'h' 水平

color

设置所有条形的颜色

palette

为不同的类别指定不同的颜色

saturation

设置颜色的饱和度

errcolor

错误条的颜色

errwidth

错误条的宽度

capsize

错误条两端的横杠大小

dodge

使用 hue 时,控制条形是否应该分开

使用示例:

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

# 生成示例数据集
tips =  pd.DataFrame({
    'total_bill': [16.99, 10.34, 21.01, 23.68, 24.59],
    'tip': [1.01, 1.66, 3.50, 3.31, 3.61],
    'sex': ['Female', 'Male', 'Male', 'Male', 'Female'],
    'smoker': ['No', 'Yes', 'No', 'Yes', 'No'],
    'day': ['Sun', 'Thur', 'Sat', 'Sun', 'Fri'],
    'size': [2, 3, 3, 2, 4]
})

# 设置 seaborn 样式
sns.set(style="whitegrid")

sns.barplot(x="day", 
            y="total_bill", 
            hue="sex", 
            data=tips, 
            order=["Thur", "Fri", "Sat", "Sun"], 
            hue_order=["Female", "Male"],
            estimator=sum, 
            ci=95, 
            n_boot=1000, 
            orient="v", 
            color="blue", 
            palette="deep", 
            saturation=0.5, 
            errcolor="gray", 
            errwidth=1, 
            capsize=0.1, 
            dodge=True)

# 添加图表标题和标签
plt.title('cjavapy')

plt.draw()

# 展示图表
plt.show()

2、计数图

计数图是条形图的一个特例,用于显示每个类别的观察数量。使用 countplot() 绘制计数图用于显示类别变量中每个类别的观察数量。常用参数如下,

参数名称

描述

data

输入数据,可以是 DataFrame、数组、列表等。

x, y

数据中的变量,用于沿 x 轴或 y 轴绘制计数。

hue

分类变量名,用于数据分组,以不同颜色区分。

order

控制主分类的顺序。

hue_order

控制 hue 分类的顺序。

orient

设置图的方向,"v" 为垂直,"h" 为水平。

color

设置所有条形的颜色。

palette

设置不同的颜色,常用于

hue

参数。

saturation

调整颜色的饱和度。

dodge

设置条形是否分开或堆叠,用于

hue

参数。

ax

指定在哪个 matplotlib 的 Axes 对象上绘图。

kwargs

传递给底层 matplotlib 函数的其他关键字参数,用于自定义图表。

使用示例:

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

# 创建示例数据
np.random.seed(0)
data = pd.DataFrame({
    'Fruit': np.random.choice(['Apple', 'Banana', 'Orange', 'Grapes'], size=100),
    'Gender': np.random.choice(['Male', 'Female'], size=100)
})

# 创建 countplot
plt.figure(figsize=(10, 6))
sns.countplot(
    data=data,
    x='Fruit',
    hue='Gender',
    order=['Apple', 'Banana', 'Orange', 'Grapes'],  # 控制主分类的顺序
    hue_order=['Male', 'Female'],  # 控制hue分类的顺序
    orient='v',
    color='blue',
    palette='Set1',  # 颜色板
    saturation=0.8,
    dodge=True  # 分开显示每个 hue 类别
)

# 添加标题
plt.title('cjavapy')
plt.draw()
plt.show()

3、线图

数据点是连续的或有时间序列时,线图是一个好选择。它可以展示趋势和排名的变化。使用lineplot() 是 Seaborn 中用于绘制线性数据的一个非常有用的函数。常用参数如下,

参数

描述

data

DataFrame、数组或列表类型的数据集

x

指定数据集中用于横轴的变量

y

指定数据集中用于纵轴的变量

hue

数据的分类变量名称,用于颜色区分

style

数据的分类变量名称,用于线条样式

size

数据的分类变量名称,用于线条粗细

palette

设置线条颜色

markers

是否在每个数据点处显示标记

dashes

是否为不同的类使用不同的线型

estimator

控制每个 x 值点处 y 值的估计方式

ci

控制置信区间的大小

errorbar

错误条形式

n_boot

计算置信区间时的引导样本数量

使用示例:

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

# 生成示例数据
np.random.seed(0)
dates = pd.date_range('20210101', periods=100)
data = pd.DataFrame({
    'Date': dates,
    'Value': np.random.randn(100).cumsum(),
    'Category': np.random.choice(['A', 'B', 'C'], 100)
})

# 绘制线图
sns.set_theme(style="whitegrid")
lineplot = sns.lineplot(
    x='Date', 
    y='Value', 
    hue='Category', 
    style='Category', 
    markers=True, 
    dashes=False, 
    data=data
)

# 设置图表标题和标签
lineplot.set_title('cjavapy')
lineplot.set_xlabel('Date')
lineplot.set_ylabel('Value')

# 显示图表
sns.despine()

plt.draw()
plt.show()

推荐文档