Python数据分析 可视化数据Seaborn图表 这篇就够了

目录

1.Seaborn图表概述

2.安装Seaborn图表

3.Seaborn图表的基本设置

3.1设置图表的背景风格

3.2 设置图表的边框

 4.常见图表的绘制

41 .柱形图的绘制

4.2 折线图的绘制

 4.3 散点图的绘制


1.Seaborn图表概述

Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了一种高级界面来绘制有吸引力的统计图形。Seaborn的图表主要分为以下几类:

  1. 关系类图表:这类图表主要用于展示两个或多个变量之间的关系。包括散点图(scatterplot)和折线图(lineplot)。
  2. 分类图表:这类图表主要用于展示分类数据。包括条形图(barplot)、计数图(countplot)、分类散点图(stripplot)、能够显示分布密度的分类散点图(swarmplot)、箱图(boxplot)、小提琴图(violinplot)、增强箱图(boxenplot)和点图(pointplot)。
  3. 分布图:这类图表主要用于展示数据的分布情况。包括直方图(distplot)、质量估计图、核函数密度估计图(kdeplot)和rugplot(将数组中的数据点绘制为轴上的数据)。
  4. 双变量关系图:这类图表用于展示两个变量之间的二元关系,通常使用联合分布图(jointplot)和变量关系组图(pairplot)来表示。

2.安装Seaborn图表

由于Seaborn依赖Scipy,所以安装Seaborn之前要安装Scipy,下面是安装Seaborn的代码: 

pip install seaborn

3.Seaborn图表的基本设置

3.1设置图表的背景风格

axes_style 用于查看或临时修改样式的参数设置。

set_style 用于设置全局默认样式。

Seaborn 提供了多种内置的背景主题(或称为样式),这些主题可以影响图表的外观,包括网格线、背景颜色、字体大小等。这些主题是为了让图表在不同的背景和情境下都能保持清晰和一致。

以下是 Seaborn 的一些内置背景主题(样式):

darkgrid:深色网格背景,白色网格线。

whitegrid:白色背景,深色网格线。

dark:深色背景,没有网格线。

white: 白色背景,没有网格线。

ticks:浅色背景,有刻度线但没有网格线。

5个背景风格的示例:

import seaborn as sns
import matplotlib.pyplot as plt

# 设置不同的背景主题
styles = ["darkgrid", "whitegrid", "dark", "white", "ticks"]

for style in styles:
    # 设置当前样式
    sns.set_style(style)

    # 绘制一个简单的线图
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    plt.plot(x, y)

    # 设置图表标题以显示当前样式
    plt.title(f"Chart with '{style}' style")

    # 显示图表
    plt.show()

    # 稍微延迟一下,以便观察每个图表
    plt.pause(0.5)

3.2 设置图表的边框

使用despine函数设置图表的边框

despine 是 seaborn 库中的一个函数,用于清理和美化 matplotlib 图表,通过移除顶部和/或右侧的边框和刻度线来实现。下面是 despine 函数的一些参数及其说明:

figmatplotlib 的 Figure 对象。如果不提供,则使用当前活动的 Figure

axmatplotlib 的 Axes 对象或对象数组。指定要应用 despine 的轴。如果没有提供,则使用 fig 中的所有轴。

top布尔值,默认为 True。如果为 True,则移除顶部边框和刻度线。

right布尔值,默认为 True。如果为 True,则移除右侧边框和刻度线。

left布尔值,默认为 False。如果为 True,则移除左侧边框和刻度线。

bottom布尔值,默认为 False。如果为 True,则移除底部边框和刻度线。

offset标量或标量数组,可选。从轴边缘到刻度线的距离。正值将刻度线向内移动,负值将刻度线向外移动。

trim布尔值,默认为 False。如果为 True则修剪多余的空白空间。

示例:

import pandas as pd  # 导入pandas库,并为其指定别名pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# 创建一个自定义数据集
x = np.linspace(0, 10, 100)  # 生成0到10之间的100个点
y = np.sin(x)  # 对每个x点计算正弦值
data = pd.DataFrame({'x': x, 'y': y})  # 使用pd作为pandas的别名来创建DataFrame

# 使用seaborn的 lineplot 函数绘制线图
ax = sns.lineplot(data=data, x='x', y='y')

# 使用despine移除左侧的边框
sns.despine(ax=ax, left=True)

# 设置图表标题和坐标轴标签
ax.set_title('Custom Line Plot with Despine')
ax.set_xlabel('X Axis Label')
ax.set_ylabel('Y Axis Label')

# 显示图表
plt.show()

运行结果:

 4.常见图表的绘制

41 .柱形图的绘制

使用barplot函数进行绘制

示例:

import seaborn as sns
import matplotlib.pyplot as plt

# 假设我们有以下数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [23, 45, 56, 34]

# 使用pandas创建一个简单的DataFrame(如果需要的话)
import pandas as pd

data = pd.DataFrame({
    'category': categories,
    'value': values
})

# 使用seaborn的barplot函数绘制柱形图
sns.barplot(x='category', y='value', data=data)

# 添加标题和坐标轴标签
plt.title('Bar Chart Example with Seaborn')
plt.xlabel('Categories')
plt.ylabel('Values')

# 显示图形
plt.show()

运行结果:

4.2 折线图的绘制

使用lineplot函数进行绘制

示例:

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

# 创建一个简单的数据集
data = {
    'time': ['2021-01', '2021-02', '2021-03', '2021-04', '2021-05'],
    'value': [23, 45, 34, 56, 67]
}

# 将数据转换为DataFrame
df = pd.DataFrame(data)

# 将'time'列转换为日期类型
df['time'] = pd.to_datetime(df['time'])

# 使用seaborn的lineplot函数绘制折线图
sns.lineplot(x='time', y='value', data=df)

# 添加标题和坐标轴标签
plt.title('Line Chart Example with Seaborn')
plt.xlabel('Time')
plt.ylabel('Values')

# 显示图形
plt.show()

运行结果:

在Seaborn库中,relplot函数是一个更高级别的接口,用于绘制关系图,它可以处理多个变量之间的关系,并根据数据类型自动选择最合适的图形类型。对于绘制折线图,您可以使用relplot并设置kind='line'。 

示例:

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

# 创建一个简单的数据集
data = {
    'time': ['2021-01', '2021-02', '2021-03', '2021-04', '2021-05'],
    'value': [23, 45, 34, 56, 67]
}

# 将数据转换为DataFrame
df = pd.DataFrame(data)

# 将'time'列转换为日期类型
df['time'] = pd.to_datetime(df['time'])

# 使用seaborn的relplot函数绘制折线图
sns.relplot(data=df, x='time', y='value', kind='line')

# 添加标题
plt.title('Line Chart Example with Seaborn relplot')

# 显示图形
plt.show()

 4.3 散点图的绘制

示例:

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

# 假设我们有一个简单的数据集
data = {
    'x': [1, 2, 3, 4, 5],
    'y': [2, 4, 1, 3, 5]
}
df = pd.DataFrame(data)

# 首次绘制散点图
sns.scatterplot(x='x', y='y', data=df)
plt.title('First Scatter Plot')
plt.show()

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值