python数据分析——seaborn绘图1

参考资料:活用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.hqwc.cn/news/697326.html

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

相关文章

第十五节:贪心算法(下)

一 、 贪心算法的解题套路实战一(最多的会议宣讲场次) 1.1 描述 一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。 给你每一个项目开始的时间和结束的时间 你来安排宣讲的日程,要求会议室进行的宣讲的场次最多。…

vue:网页icon无法显示

logo文件放在public文件夹下,在html里设置icon。 本地源码运行后发现网页icon无法显示我们设置的logo,而是显示了浏览器默认icon。 这个问题不需要解决,部署后网页icon显示就正常了。

通过ip addr命令无法获取到ip地址,无法ping通百度

问题 今天通过VM安装CentOS虚拟机时,安装完成后,想查看ip地址,使用ip addr命令,发现没有展示网络ip地址,ping百度也不通。 解决方案 CentOS使用网络配置文件来设置网络接口的参数,出现这个问题说明网络的…

华为认证存储HCIE有用吗?

首先,对于个人来说,获得华为存储认证可以证明其具备信息存储技术的专业能力 1.专业认可:获得华为存储认证,尤其是HCIE-Storage级别的证书,意味着持有者对信息存储技术有着全面深入的理解,能够设计、部署、…

spring cloud微服务example 入门第一个例子

新建Maven工程 删除src目录&#xff0c;修改poml.xml <modelVersion>4.0.0</modelVersion><groupId>org.example</groupId> <artifactId>SpringCloud_example</artifactId> <version>1.0-SNAPSHOT</version> <packaging&g…

苹果cms:伪静态设置教程

官方默认的网站模式是动态模式&#xff0c;动态模式下链接中自带有“index.php”想要去除网站链接中的index.php&#xff0c;首先需要开启网站的模式为伪静态模式。这样比动态模式那一长串的链接看着也舒服一些&#xff0c;最重要的是迎合搜索引擎的喜好加快收录提高排名。 1、…

【CSP CCF记录】202206-2 寻宝!大冒险!

题目 过程 思路 1.绿化图坐标边界太大&#xff0c;不能直接用矩阵表示&#xff0c;可以用一个二维数组存储有树坐标的x,y值。 定义两个数组&#xff1a;绿化图arr[1005][2]、宝藏图数组b[55][55] 2. 依据条件&#xff0c;从绿化图中第一棵树的坐标开始区域遍历。统计绿化图…

Java进阶10 IO流

Java进阶10 IO流 IO流就是数据传输。I为input的缩写&#xff0c;表示输入读取&#xff1b;O为out的缩写&#xff0c;表示输出写出。 一、IO流体系结构 ♥巧记区分tips&#xff1a;以Stream结尾的是字节流&#xff1b;以Reader、Writer结尾的都是字符流 二、字节输出流FileOu…

免翻,剪映出品的AI作图和AI视频官网免费体验!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 近日&#xff0c;据剪映 Dreamina 官方消息&#xff0c;Deramina正式更名为即梦&#xff0c;同时宣布其AI作图和AI视频生成功能已全量上线。 ▲ 官网主页面 AI作图 1、通过文字描述或…

Mysql与Java连接----JDBC

前言: 当将Java与MySQL数据库连接时&#xff0c;JDBC&#xff08;Java Database Connectivity&#xff09;是一种重要的技术。JDBC允许Java应用程序通过标准的数据库访问方式与不同的关系型数据库进行通信&#xff0c;其中包括MySQL。通过使用JDBC&#xff0c;Java开发人员可以…

n的阶乘(函数)(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明n的阶乘函数fac; int fac(int n);int main() {//初始化变量值&#xff1b;int n, result;//获取要阶乘的数&#xff1b;printf("请输入要阶乘的n&…

基于SSM的理发店会员管理系统的设计和实现(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的理发店会员管理系统的设计和实现&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0…