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 pddata = 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.hqwc.cn/news/461761.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树与二叉树---数据结构

树作为一种逻辑结构,同时也是一种分层结构,具有以下两个特点: 1)树的根结点没有前驱,除根结点外的所有结点有 且只有一个前驱。 2)树中所有结点可以有零个或多个后继。 树结点数据结构 满二叉树和完全二…

元素的显示与隐藏

目录 1.元素的显示与隐藏 1.1 display属性 1.2 visibility 可见性 1.3 overflow 溢出 1.元素的显示与隐藏 1.1 display属性 1.2 visibility 可见性 1.3 overflow 溢出

kmeans聚类选择最优K值python实现

Kmeans算法中K值的确定是很重要的。 下面利用python中sklearn模块进行数据聚类的K值选择 数据集自制数据集,格式如下: 维度为3。 ①手肘法 手肘法的核心指标是SSE(sum of the squared errors,误差平方和), 其中,Ci是第…

机器学习11-前馈神经网络识别手写数字1.0

在这个示例中,使用的神经网络是一个简单的全连接前馈神经网络,也称为多层感知器(Multilayer Perceptron,MLP)。这个神经网络由几个关键组件构成: 1. 输入层 输入层接收输入数据,这里是一个 28x…

基于华为云欧拉操作系统(HCE OS)容器化部署传统应用(Redis+Postgresql+Git+SpringBoot+Nginx)

写在前面 博文内容为 华为云欧拉操作系统入门级开发者认证(HCCDA – Huawei Cloud EulerOS)实验笔记整理认证地址:https://edu.huaweicloud.com/certificationindex/developer/9bf91efb086a448ab4331a2f53a4d3a1博文内容涉及一个传统 Springboot 应用HCE部署&#x…

stm32软件安装以及创建工程

文章目录 前言一、软件安装软件破解 二、创建工程三、创建项目创建组配置启动文件添加到组 为项目添加头文件路径创建源文件(main函数文件)使用寄存器配置引脚拼接好STLINK与stm32最小电路板的接线编写程序配置STLink下载程序配置寄存器配置13号端口&…

奋斗与诗意的三纲八目

人生得有一个基调、总的宗旨、指导思想、根据、根本。当人做出一个重大决定时,绝非偶然,一定是背后的宗旨在起作用。你每天起床的动力,是否能热情洋溢地做事,也是这个宗旨在起作用。念天地之悠悠独怆然而涕下,忧思难忘…

云计算运营模式介绍

目录 一、云计算运营模式概述 1.1 概述 二、云计算服务角色 2.1 角色划分 2.1.1 云服务提供商 2.1.2 云服务消费者 2.1.3 云服务代理商 2.1.4 云计算审计员 2.1.5 云服务承运商 三、云计算责任模型 3.1 云计算服务模式与责任关系图 3.2 云计算服务模式与责任关系解析…

vue3 之 Pinia数据持久化

持久化用户数据说明 1️⃣用户数据中有一个关键的数据叫做token(用来标识当前用户是否登陆),而token持续一段时间才会过期 2️⃣Pinia的存储是基于内存,刷新就丢失,为了保持登陆状态就要做到刷新不丢失,需要…

肯尼斯·里科《C和指针》第13章 高级指针话题(1)进一步探讨指向指针的指针变量的高级声明

13.1 进一步探讨指向指针的指针 上一章使用了指向指针的指针,用于简化向单链表插入新值的函数。另外还存在许多领域,指向指针的指针可以在其中发挥重要的作用。这里有一个通用的例子: 这些声明在内存中创建了下列变量。如果它们是自动变量&am…

问题:必须坚持以中国式现代化推进中华民族伟大复兴,既不走封闭僵化的老路,也不走 #媒体#知识分享

问题:必须坚持以中国式现代化推进中华民族伟大复兴,既不走封闭僵化的老路,也不走 A、中国特色社会主义道路 B、改革开放之路 C、改旗易帜的邪路 D、中国式现代化之路 参考答案如图所示

Linux 36.2@Jetson Orin Nano基础环境构建

Linux 36.2Jetson Orin Nano基础环境构建 1. 源由2. 步骤2.1 安装NVIDIA Jetson Linux 36.2系统2.2 必备软件安装2.3 基本远程环境2.3.1 远程ssh登录2.3.2 samba局域网2.3.3 VNC远程登录 2.4 开发环境安装 3. 总结 1. 源由 现在流行什么,也跟风来么一个一篇。当然&…