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://xiahunao.cn/news/2776482.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

探索未来:集成存储器计算(IMC)与深度神经网络(DNN)的机遇与挑战

开篇部分:人工智能、深度神经网络与内存计算的交汇 在当今数字化时代,人工智能(AI)已经成为科技领域的一股强大力量,而深度神经网络(DNN)则是AI的核心引擎之一。DNN是一种模仿人类神经系统运作…

C++ 动态规划 树形DP 没有上司的舞会

Ural 大学有 N 名职员,编号为 1∼N 。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N 。 现在要召开一场周年庆宴会,不过,没有职…

奇瑞汽车,好好卖车,别趟个人是非的浑水

文 | AUTO芯球 作者 | 雷歌 这下,奇瑞法务部忙都忙不过来了。 一个字,就是,告!告!告! 刚投诉完这家,又去告那家。 可是骂奇瑞的实在太多了,告不完,根本告不完。 有骂…

[day0] 借着“ai春晚”开个场

1 文思ai笔记-新的开始 今天是2024年2月29日,也是传统农历的除夕夜。早起在ai圈看到一个比较新奇的消息,ai春晚今日举办,竟然有一点小小的激动。这些年确实好久没看过春晚了,自己对于春晚的映像还停留在“白云黑土”、“今天&…

扑克牌大小(模拟)

题目 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);String s sc.nextLine();String[] ss s.split("-");StringBuffer s1 new StringBuffer();StringBuffer s2 new StringBuffer(…

自适应二次元404页面源码

自适应二次元404页面源码,HTMLCSSJS,喜欢二次元的朋友可以下载使用 蓝奏云:https://wfr.lanzout.com/iuPNQ1ns7dxg

32I2C通信协议

异步时序的:非常依赖硬件外设的支持,比如串口是很难用软件来模拟的;但节省了一根时钟线的资源 同步时序可以极大地降低单片机对硬件电路的依赖,时钟线停止了,发送方和接收方都会停止 一.I2C通信协议简介 二.硬件电路…

springboot172基于springboot的二手车交易系统的设计与实现

二手车交易系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统二手车交易信息管理难度大&…

第59讲订单数据下拉实现

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;/*** 订单查询 type值 0 全部订单 1待付款 2 待收货 3 退款/退货* param type* return*/RequestMapping("/list")public R list(Integer type,Integer page,Integer pageSize){System.out.pri…

C#,十进制展开数(Decimal Expansion Number)的算法与源代码

1 十进制展开数 十进制展开数(Decimal Expansion Number)的计算公式: DEN n^3 - n - 1 The decimal expansion of a number is its representation in base -10 (i.e., in the decimal system). In this system, each "decimal place…

Vue2中v-for 与 v-if 的优先级

在Vue2中,v-for 和 v-if 是常用的指令,它们在前端开发中非常有用。但是,当我们在同一个元素上同时使用这两个指令时,就需要注意它们的优先级关系了。 首先,让我们了解一下v-for和v-if的基本用法。 v-for 是Vue的内置…

【STL】list模拟实现

vector模拟实现 一、接口大框架函数声明速览二、结点类的模拟实现1、构造函数 三、迭代器类的模拟实现1、迭代器类存在的意义2、迭代器类的模板参数说明3、构造函数4、运算符的重载(前置和后置)(1)前置(2)后…

堆的概念实现

前言 本文将详细讲解堆。堆是一种二叉树(一般是完全二叉树)使用顺序结构的数组来存储。 tip:这里我们需要注意区分堆在不同地方的含义,这里的堆是一个数据结构,操作系统虚拟进程地址空间的堆是操作系统中管理内存的一块…

公众号天气推送源码,附带教学,自动版本推送带各种模板

公众号天气推送系统介绍 主要功能特点: 实时天气查询:用户可以通过公众号随时查询当前位置的实时天气状况,包括温度、湿度、风速、天气状况等详细信息。定时推送服务:系统支持自定义时间段的天气推送,确保用户在出门…

【项目问题解决】java. net.SocketException: Connection reset

目录 【项目问题解决】java. net.SocketException: Connection reset 1.问题描述2.问题原因3.解决思路4.解决方案5.总结6.参考 文章所属专区 项目问题解决 1.问题描述 通过JMeter 压测接口,无并发,无间歇时间跑接口10000次报错,后续改成建个…

JavaScript指针事件

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 随着移动设备的普及,触屏交互正在快速增长。指针事件提供了支持触控和…

问题:胚珠裸露于心皮上,无真正的果实的植物为() #经验分享#媒体

问题:胚珠裸露于心皮上,无真正的果实的植物为() A.双子叶植物 B.被子植物 C.单子叶植物 D.裸子植物 参考答案如图所示

探索设计模式的魅力:代理模式揭秘-软件世界的“幕后黑手”

设计模式专栏:http://t.csdnimg.cn/U54zu 目录 引言 一、魔法世界 1.1 定义与核心思想 1.2 静态代理 1.3 动态代理 1.4 虚拟代理 1.5 代理模式结构图 1.6 实例展示如何工作(场景案例) 不使用模式实现 有何问题 使用模式重构示例 二、…

基于 Python 的漏洞扫描系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

vue-内置组件-Suspense

Suspense (实验性功能) <Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化。 <Suspense> 是一个内置组件&#xff0c;用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌…