Python数据分析之Seaborn(分类分析绘图 )
liuian 2024-12-15 15:25 48 浏览
?Seaborn分类分析绘图
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid", color_codes=True)
np.random.seed(sum(map(ord, "categorical")))
titanic = sns.load_dataset("titanic") #导入泰坦尼克数据集
tips = sns.load_dataset("tips") #导入小费数据集
iris = sns.load_dataset("iris") #导入鸢尾花数据集
散点图
sns.stripplot(x="day", y="total_bill", data=tips)
问题:有重叠,无法看见数据的密度。
- 解决方法一:通过jitter抖动
抖动是平时可视化中的常用的观察“密度”的方法,除了使用参数抖动,特定的抖动需求也可以用numpy在数据上处理实现
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True) # jitter抖动
<matplotlib.axes._subplots.AxesSubplot at 0x22d8a3216a0>
- 解决方法二:通过swarmplot()函数
sns.swarmplot(x="day", y="total_bill", data=tips)
<matplotlib.axes._subplots.AxesSubplot at 0x22d87f3b128>
sns.swarmplot(x="day", y="total_bill", hue="sex",data=tips) #hue 参数控制分组绘图
<matplotlib.axes._subplots.AxesSubplot at 0x22d8a428860>
箱型图
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。
如上图所示,标示了图中每条线表示的含义,其中应用到了分位值(数)的概念。
主要包含六个数据节点,将一组数据从大到小排列,分别计算出它的上边缘,上四分位数Q3,中位数,下四分位数Q1,下边缘,还有一个异常值。
举例说明,以下是箱形图的具体例子:
这组数据显示出:
- 最小值(minimum)=5
- 下四分位数(Q1)=7
- 中位数(Med--也就是Q2)=8.5
- 上四分位数(Q3)=9
- 最大值(maximum)=10
- 平均值=8
- 四分位间距=Q3-Q1=2 (即ΔQ)
- 最大值区间: Q3+1.5ΔQ = 12
- 最小值区间: Q1-1.5ΔQ = 4
- mild outlier = 3.5
- extreme outlier = 0.5
sns.boxplot(x="day", y="total_bill", hue="time", data=tips)
<matplotlib.axes._subplots.AxesSubplot at 0x22d8bbd7240>
琴形图
seaborn.violinplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, bw='scott', cut=2, scale='area', scale_hue=True, gridsize=100, width=0.8, inner='box', split=False, orient=None, linewidth=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)
- split: bool, optional #琴形图是否从中间分开两部分
- scale: {“area”, “count”, “width”}, optional #用于调整琴形图的宽带。
- area——每个琴图拥有相同的面域;
- count——根据样本数量来调节宽度;
- width——每个琴图则拥有相同的宽度。
- inner: {“box”, “quartile”, “point”, “stick”, None}, optional #控制琴图内部数据点的形态。
- box——绘制微型 boxplot;
- quartiles——绘制四分位的分布;
- point/stick——绘制点或小竖条。
sns.violinplot(x="total_bill", y="day", hue="time", data=tips)
<matplotlib.axes._subplots.AxesSubplot at 0x22d8a9f97b8>
sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, split=True) #split: bool, optional #琴形图是否从中间分开两部分
条形图
显示值的集中趋势可以用条形图
sns.barplot(x="sex", y="survived", hue="class", data=titanic)
<matplotlib.axes._subplots.AxesSubplot at 0x22d8a5bc358>
点图
点图可以更好的描述变化差异
sns.pointplot(x="sex", y="survived", hue="class", data=titanic)
<matplotlib.axes._subplots.AxesSubplot at 0x22d8a5bcda0>
#详细指定属性值
sns.pointplot(x="class", y="survived", hue="sex", data=titanic,
palette={"male": "g", "female": "m"}, # 指定颜色
markers=["^", "o"], # 指定点样式
linestyles=["-", "--"]); # 指定线型样式
组合
#琴型图 + 分散点图
sns.violinplot(x="day", y="total_bill", data=tips, inner=None)
sns.swarmplot(x="day", y="total_bill", data=tips, color="w", alpha=.5)
<matplotlib.axes._subplots.AxesSubplot at 0x22d8a3f4908>
多层面板分类图
factorplot()函数是对各种图形的一个更高级别的API封装,在Seaborn中非常常用。
seaborn.factorplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None, estimator=<function mean>, ci=95, n_boot=1000, units=None, order=None, hue_order=None, row_order=None, col_order=None, kind='point', size=4, aspect=1, orient=None, color=None, palette=None, legend=True, legend_out=True, sharex=True, sharey=True, margin_titles=False, facet_kws=None, **kwargs)
参数说明:
- x,y 数据集变量(变量名)
- hue 控制分组绘图(变量名)
- date 数据集 (数据集名)
- row,col 更多分类变量进行平铺显示 (变量名)
- col_wrap 每行的最高平铺数 (整数)
- estimator 在每个分类中进行矢量到标量的映射 (矢量)
- ci 置信区间 (浮点数或None)
- n_boot 计算置信区间时使用的引导迭代次数 (整数)
- units 采样单元的标识符,用于执行多级引导和重复测量设计 (数据变量或向量数据)
- order, hue_order 对应排序列表 (字符串列表)
- row_order, col_order 对应排序列表 (字符串列表)
- kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点
- size 每个面的高度(英寸) (标量)
- aspect 纵横比 (标量)
- orient 方向 ("v"/"h")
- color 颜色 (matplotlib颜色)
- palette 调色板 (seaborn颜色色板或字典)
- legend hue的信息面板 (True/False)
- legend_out 是否扩展图形,并将信息框绘制在中心右边 (True/False)
- share{x,y} 共享轴线 (True/False)
- facet_kws FacetGrid的其他参数 (字典)
sns.factorplot(x="day", y="total_bill", hue="smoker", data=tips) #默认是点图
<seaborn.axisgrid.FacetGrid at 0x22d8a79def0>
sns.factorplot(x="day", y="total_bill", hue="smoker", data=tips, kind="bar") #绘制条形图
<seaborn.axisgrid.FacetGrid at 0x22d8a648748>
sns.factorplot(x="day", y="total_bill", hue="smoker",
col="time", data=tips, kind="swarm") #绘制分散点图
<seaborn.axisgrid.FacetGrid at 0x22d8a867be0>
sns.factorplot(x="time", y="total_bill", hue="smoker",
col="day", data=tips, kind="box", size=4, aspect=.5) #绘制箱型图
<seaborn.axisgrid.FacetGrid at 0x22d8a8bcb00>
参考
[Style functions]http://seaborn.pydata.org/tutorial/aesthetics.html#aesthetics-tutorial
[Color palettes]http://seaborn.pydata.org/tutorial/color_palettes.html#palette-tutorial
[Distribution plots]http://seaborn.pydata.org/tutorial/distributions.html#distribution-tutorial
[Categorical plots]http://seaborn.pydata.org/tutorial/categorical.html#categorical-tutorial
[Regression plots]http://seaborn.pydata.org/tutorial/regression.html#regression-tutorial
[Axis grid objects]http://seaborn.pydata.org/tutorial/axis_grids.html#grid-tutorial
[10分钟python图表绘制]https://zhuanlan.zhihu.com/p/24464836
相关人工智能与异构计算的知识分享,欢迎关注我的公众号【AI异构】
相关推荐
- 联想windows7笔记本怎么连接网络
-
检查笔记本的无线网卡驱动1.右键我的电脑,点击“属性”,选择左侧“设备管理器”2.点击“网络适配器”,如果方框内没有驱动,请下载驱动精灵万能网卡版安装网卡驱动 二、若发现驱动前面是感叹号的&...
- 淘宝电脑版网页入口(淘宝网电脑版网页官方)
-
网站地址:https://www.taobao.com/网站链接:进入网站服务器IP:116.253.191.241网站描述:淘宝网首页,淘宝网-亚洲最大、最安全的网上交易平台,提供各类服饰、美容...
- 大学生用哪个牌子的笔记本电脑好
-
荣耀MagicBook14英寸轻薄窄边框笔记本电脑(AMD锐龙58G512GFHDIPS正版Office)冰河银这款的性价比较高。也可以根据自己的预算选同系列其他型号。...
- 免费手机模拟器(免费手机模拟器下载)
-
目前能成功在电脑上模拟苹果系统的iOS模拟器,对比市面上常见的安卓模拟器少太多了,主要原因还是iOS系统比较封闭,难于开发。虽然前面说开发很困难,但是国内还是有一些厉害的IT小组成功推出了iOS模拟器...
- 新手怎么制作word表格(工作表格制作)
-
步骤如下:1、本次演示使用的软件为word文字处理软件,软件版本为Microsoftoffice家庭和学生版2016。2、首先打开Excel电子表格,根据问题描述,我们在word中插入两页表格。3、...
-
- 电脑开机启动进不了系统怎么办
-
一、修复错误如果频繁无法正常进入系统,则开机后马上按F8,看能否进入安全模式或最后一次配置正确模式,如能则进入后会自动修复注册表,并回忆前几次出现不正常现象时进行了什么操作,并根据怀疑是某个应用软件导致问题产生,将其卸载,然后正常退出,...
-
2026-01-02 13:05 liuian
- win11任务栏隐藏不了(win11任务栏怎么隐藏)
-
方法/步骤: 1、打开电脑桌面,双击我的计算机。 2、打开控制面板。 3、点击类别切换到大图标或小图标。 4、找到通知区域图标打开。 5、选择显示图标或隐藏图标也可以仅显示通知,选好以后点击...
- 笔记本注册表编辑器怎么打开
-
你好,要打开注册表编辑器,可以按照以下步骤进行操作:1.打开“运行”对话框。可以通过按下Win+R键组合,或者在开始菜单中搜索“运行”来打开。2.在“运行”对话框中,输入“regedit”并点...
- 怎样查询ip地址(怎么顺着ip地址找人)
-
答:查看ip地址的步骤如下,1.通过网页进行查询:可以通过第三方平台进行查询。2.通过电脑内部的网络连接进行查询:首先我们点击桌面右下角的开始,在开始的选项栏当中找到运行,点击运行,然后再用新的对...
- windows server 2003的应用(win2003应用程序服务器)
-
WindowsServer2003支持FAT16、FAT32和NTFS文件系统,同时也支持CDFS(光盘文件系统)和UDF(通用磁盘格式)。NTFS文件系统的安全性高于FAT文件系统,支持域的管理...
- c盘格式化恢复软件(格式化c盘 软件)
-
点我名字,然后点“他的空间”,我的空间有各种恢复软件的详细介绍、下载地址以及使用说明。C盘格式化后需重装操作系统,系统装好后,要恢复其他盘的软件的话可以在格式化C盘前将桌面数据备份在其他盘,重装完成后...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
