python数据分析——seaborn绘图1

news2024/11/23 16:45:00

参考资料:活用pandas库

        matplotlib库是python的和兴绘图工具,而seaborn基于matplotlib创建,它为绘制统计图提供了更高级的接口,使得只用少量代码就能生成更美观、更复杂的可视化效果。

        seaborn库和pandas以及其他pydata库(numpy、scipy以及statsmodels)紧密集成在一起,简化了数据分析过程的各种可视化工作。由于seaborn是基于matplotlib的,因此用户仍能对可视化进行微调。

# 导入库
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
tips=pd.read_csv(r"...\seaborn常用数据案例\tips.csv")
print(tips.head())

1、直方图

# 使用subplots函数创建画布,并在其中添加各个子图
fig,ax=plt.subplots()  # 默认创建1个子图
# 使用seaborn的distplot函数绘图
ax=sns.histplot(tips['total_bill'])
ax.set_title("Total Bill Histogram Plot")
plt.show()

2、密度图(和密度估计):密度图是展现单变量分布的另一种方法,本质上通过绘制以每个数据点为中心的正态分布,然后消除重叠的图。

fig,ax=plt.subplots()  # 默认创建1个子图
ax=sns.histplot(tips['total_bill'],kde=True)
ax.set_title("Total Bill Histogram with Density Plot")

        如果只要密度图,还可以使用sns.kdeplot()函数

fig,ax=plt.subplots()  # 默认创建1个子图
ax=sns.kdeplot(tips['total_bill'])
ax.set_title("Total Bill Density")

3、计数图(条形图):条形图不是通过对值分组来描述分布的,而是对离散变量计数的。

fig,ax=plt.subplots()
ax=sns.countplot(x='day',data=tips)
ax.set_title("Count of days")
ax.set_xlabel("Day of the Week")
ax.set_ylabel("Frequency")

4、散点图

        在seaborn中,没有直接创建散点图的函数。可以使用regplot函数或lmplot函数,二者主要区别是regplot创建轴域,而lmplot创建图。

        还可以使用jointplot在每个轴上创建包含单个变量的散点图。jointplot与其他绘图函数的主要区别是,它不返回轴域,所以无需创建带有轴域的画布来放置图。jointplot函数会创建并返回JointGrid对象。

fig,ax=plt.subplots()
ax=sns.regplot(x='total_bill',y='tip',data=tips,fit_reg=False)
ax.set_title("Scatterplot of Total Bill and Tip")
ax.set_xlabel("Total Bill")
ax.set_ylabel("Tip")

fig=sns.lmplot(x='total_bill',y='tip',data=tips)

joint=sns.jointplot(x='total_bill',y='tip',data=tips)
# 设置坐标轴标签
joint.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
# 添加标题,设置字号
# 移动轴域上方的文字
joint.fig.suptitle("Joint Plot of Total Bill and Tip",fontsize=10,y=1.03)

5、蜂巢图

        散点图适用于比较两个变量,但有时图中的点太多反而会失去意义。解决该问题的一种方法就是把图中的点装箱。就像直方图可将变量装箱来创建条形图一样,蜂巢图(hexbin)可以对两个变量装箱,显示他们的频次分布状况。之所以使用六边形是因为它是覆盖任意两维平面最有效的形状。

hexbin=sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex')
hexbin.set_axis_labels(xlabel='Total Bill',ylabel='Tip')
hexbin.fig.suptitle('Hexbin Joint Plot of Total Bill and Tip',fontsize=10,y=1.03)

6、2D密度图

fig,ax=plt.subplots()
ax=sns.kdeplot(x='total_bill',y='tip',data=tips,fill=True)
ax.set_title("Kernel Density Plot of Total Bill and Tip")
ax.set_xlabel('Total Bill')
ax.set_ylabel('Tip')

kde_joint=sns.jointplot(x='total_bill',y='tip',data=tips,kind='kde',fill=True)

7、条形图

        条形图也可以用用于展现多个变量。barplot默认会计算平均值,也可以把某个统计函数传递给estimator参数。比如把numpy.std函数传给它来计算标准差。

fig,ax=plt.subplots()
ax=sns.barplot(x='time',y='total_bill',data=tips)
ax.set_title('Bar plot of average total bill for time of day')
ax.set_xlabel('Time of day')
ax.set_ylabel('Average total bill')

8、箱线图

        箱线图用于显示多种统计信息:最小值、最大值、中位数、四分位数、以及基于四分位差的离群值等。

fig,ax=plt.subplots()
ax=sns.boxplot(x='time',y='total_bill',data=tips)
ax.set_title('Boxplot of total bill by time of day')
ax.set_xlabel('Time of day')
ax.set_ylabel('Total Bill')

9、小提琴图

        箱线图是经典的数据可视化方法,但可能会掩盖数据的潜在分布。小提琴图能显示与箱线图相同的值,但它把“箱线”绘成核密度估计。这有助于保留数据的更多可视化信息。

fig,ax=plt.subplots()
ax=sns.violinplot(x='time',y='total_bill',data=tips)
ax.set_title("Violin plot of total bill by time of day")
ax.set_xlabel('Time of day')
ax.set_ylabel('Total Bill')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1672449.html

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

相关文章

括号匹配(栈)

20. 有效的括号 - 力扣(LeetCode) c有栈 但是C语言没有 到那时我们可以自己造 这里的代码是直接调用栈,然后调用 等于三个左括号的任意一个 我们就入栈 左括号(入栈) 右括号 取出栈顶数据,出栈并且进行匹配…

用Transformers实现简单的大模型文本生成

根据输入的prompt,生成一段指定长度的文字。Llama跑起来太慢了,这里用GPT-2作为列子。 from transformers import GPT2LMHeadModel, GPT2Tokenizer import torchtokenizer GPT2Tokenizer.from_pretrained("gpt2") model GPT2LMHeadModel.fr…

Java 实现Mybatis plus 批量删除

数据库实体字段并不映射的情况&#xff0c;直接请求体集合接收。 PostMapping("/removeIdsInfo")public R<Void> removeIdsInfo(RequestBody List<Integer> ids) {return exStudentService.removeIdsInfo(ids);} /**** 学生模块根据集合id 批量删除数据*…

BGP基础配置实验

BGP基础配置实验 一、实验拓扑 初始拓扑&#xff1a; 最终拓扑&#xff1a; 二、实验要求及分析 实验要求&#xff1a; 1&#xff0c;R1为AS 100区域&#xff1b;R2、R3、R4为AS 200区域且属于OSPF协议&#xff1b;R5为AS 300区域&#xff1b; 2&#xff0c;每个设备上都有…

AIM可以像 LLM 一样进行扩展的自回归图像模型

0.引言 AIM&#xff08;Autoregressive Image Model&#xff09;是一种自回归学习图像模型&#xff0c;它是对语言模型的图像版本进行了推广。该模型的预训练图像特征质量会随着模型大小和数据质量的提高而提高&#xff0c;从而带来更好的性能。同时&#xff0c;下游任务的性能…

Linux 中 alarm 函数详解

目录 简介函数原型函数参数返回值使用示例设置 3 秒闹钟修改闹钟与取消闹钟设置 1 秒周期定时器 更多内容 简介 alarm 函数的功能是设置一个闹钟&#xff08;定时器&#xff09;&#xff0c;当闹钟时间到时&#xff0c;内核会向当前进程发送一个 SIGALRM 信号。 打开 Linux 终…

AI智能体|手把手教你申请一个Kimi(Moonshot)的API KEY

大家好&#xff0c;我是无界生长。 今天分享一下如何申请一个Kimi(Moonshot)的API KEY&#xff0c;为后面Kimi(Moonshot)接入微信机器人做铺垫。学会了的话&#xff0c;欢迎分享转发&#xff01; 前提 拥有一个Kimi(Moonshot)账号 使用手机号注册即可&#xff0c;新用户可免费…

五、Linux二进制安装MariaDB 六、MariaDB主从复制

目录 五、Linux二进制安装MariaDB1 卸载mariadb1.1 卸载相关的服务(mysql和mariadb都查询一下)1.2 查找MySQL和mariadb相关的文件目录 2 安装mariadb2.1 mariadb下载地址2.2 将安装包放入到服务器中并解压 (我放到opt下)2.3 将解压后的目录移动到安装目录下2.4 创建数据目录(根…

【iOS】架构模式

文章目录 前言一、MVC二、MVP三、MVVM 前言 之前写项目一直用的是MVC架构&#xff0c;现在来学一下MVP与MVVM两种架构&#xff0c;当然还有VIPER架构&#xff0c;如果有时间后面会单独学习 一、MVC MVC架构先前已经详细讲述&#xff0c;这里不再赘述&#xff0c;我们主要讲一…

YOLOv9改进策略目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

&#x1f451; YOLOv9有效涨点专栏目录 &#x1f451; 专栏视频介绍&#xff1a;包括专栏介绍、得到的项目文件、模型二次创新、权重文件的使用问题&#xff0c;点击即可跳转。 前言 Hello&#xff0c;各位读者们好 本专栏自开设两个月以来已经更新改进教程50余篇其中包含Re…

持续集成-Git

重要步骤命令 git init (初始化一个仓库) git add [文件名] (添加新的文件) git commit -m [关于本次提交的相关说明] (提交) git status (查看文件状态) git diff (如果文件改变&#xff0c;比较两个文件内容) git add[文件名] || git commit -a -m [关于本次提交的相关说…

Java入门1: 基础语法

Java入门1: 基础语法 MangoGO 芒狗狗 目录 1 基础语法1.1 Hello World1.2 常量1.3 数据类型1.4 String1.5 StringBuilder1.6 运算符1.7 位运算符1.8 逻辑运算符1.9 关系运算符1.10 练习&#xff1a;计算数字和1.11 关键字和语句1.12 流程控制1.13 数组1.14 用户输入操作参考代码…

WCF 双工 回调模式

wcfInterface 项目 》》》wcf服务端提供的服务协议 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ServiceModel; namespace wcfInterface {[ServiceContract(CallbackContract typeo…

【pouchdb-可视化工具 】

最近使用pouchdb&#xff0c;想找个其对应的可视化工具&#xff0c;可以对数据库进行操作。 找了好久才找到&#xff0c;网上有说先同步到couchdb&#xff0c;再用couchdb的可视化工具查看&#xff0c;其实没有那么麻烦&#xff0c;pouchdb的可视化工具其实藏在另外的pouchdb-…

自然语言转SQL(NL2SQL、Text2SQL)

使用 FastAPI 框架和 LangChain 库构建的简单 Web 服务&#xff0c;其目的是将自然语言处理&#xff08;NLP&#xff09;应用于 SQL 查询生成。以下是代码中使用的技术架构和业务流程的详细说明&#xff1a; 技术架构 FastAPI&#xff1a;一个现代、快速&#xff08;高性能&am…

Django开发实战之定制管理后台界面及知识梳理(下)

接上一篇&#xff1a;Django开发实战之定制管理后台界面及知识梳理&#xff08;中&#xff09; 1、前台设置 1、隐藏路由 当你输入一个错误地址时&#xff0c;可以看到这样的报错&#xff1a; 从这样的报错中&#xff0c;我们可以看到&#xff0c;这个报错页面暴漏了路由&a…

Linux学习之禁用防火墙

查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈是有颜色的就是开启状态 黑色的就是关闭状态 关闭防火墙 systemctl stop firewalld.service 输入密码认证 再次查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈变成黑色说明关闭…

【基础技能】Windows常用快捷键

最近做知识管理&#xff0c;梳理了下个人技能&#xff0c;存在好多基础技能都是一知半解&#xff0c;用的时候都是现搜现查&#xff0c;没有形成一个完整的知识体系&#xff0c;导致一些基础不牢靠&#xff0c;需要再次筑基&#xff01; 于是就翻阅了微软的官网&#xff0c;撸…

1Panel应用推荐:Uptime Kuma

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…

01 | 为什么需要消息队列?

哪些问题适合使用消息队列来解决&#xff1f; 1. 异步处理 2. 流量控制 使用消息队列隔离网关和后端服务&#xff0c;以达到流量控制和保护后端服务的目的。 3. 服务解耦 无论增加、减少下游系统或是下游系统需求如何变化&#xff0c;订单服务都无需做任何更改&#xff0c…