当前位置: 首页 > article >正文

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()

运行结果:


http://www.kler.cn/news/232506.html

相关文章:

  • 【lesson47】进程通信之system V(共享内存)补充知识
  • PgSQL技术内幕 - case when表达式实现机制
  • 【Linux系统学习】3.Linux用户和权限
  • C++2024寒假J312实战班2.6
  • C语言冒泡排序介绍
  • 面试复盘——10
  • C++三剑客之std::any(一) : 使用
  • 【MySQL进阶之路】BufferPool底层设计(下)
  • 【GAMES101】Lecture 19 相机
  • java——学习并推荐java8
  • 猫头虎分享已解决Bug :内存泄漏(Memory Leak)
  • Kubernetes实战(二十七)-HPA实战
  • Web Services 服务 是不是过时了?创建 Web Services 服务实例
  • 【Linux】SystemV IPC
  • CTFshow web(命令执行 41-44)
  • WPF 中 Loaded 和 Closing 窗口事件
  • K210如何下载程序
  • LDAR管理系统解决方案
  • 90.Go语言中实现可选参数的几种方法:可变长参数、使用Map、结构体和函数选项模式
  • macbookpro和macbookair的区别?cleanmymac 怎么清理mac空间
  • sqlite3数据库操作接口详细整理,以及常用的数据库语句
  • vscode debug无法直接查看eigen变量的问题(解决方法)
  • 2402d,d的静态构造器
  • CSS之盒子模型
  • HttpClient | 支持 HTTP 协议的客户端编程工具包
  • 【机器学习】合成少数过采样技术 (SMOTE)处理不平衡数据(附代码)
  • 懒人精灵 之 Lua 捕获 json解析异常 ,造成的脚本停止.
  • 在Python中读写Kafka队列
  • Qt应用软件【协议篇】TCP示例
  • RPC技术分享