用python的seaborn画数值箱型图

目录
  • 一、概念介绍
  • 二、数据展示
  • 三、数据导入
  • 四、画图
  • 总结

一、概念介绍

箱型图(box-plot),又称为箱线图,盒型图,盒须图。在数据探索阶段或者描述性分析过程中,我们常常用于展示多类连续型数据的数值分布情况,便于类间对比和快速识别异常值。

在一幅箱型图中,一个连续数值序列构成一个盒子,如下所示。

每一个盒子主要展示的是数据的上四分位数Q1(25%),中位数(50%),下四分位数Q3(75%)。划分异常值的界限我们称为上下极限,其离Q1,Q3分别是1.5IQR(IQR=Q3-Q1,称作四分位距)的距离,在上下极限之外的点,我们称为异常点。异常值在不同场景中受到不同的重视,如果是要研究目标群体的薪资水平,我们常常关注中位数和IQR,而不关注异常值。

二、数据展示

借助爬虫技术,我们在某个时间的boss直聘首页随机获取了八个城市的三类检索词(数据分析师、数据挖掘工程师、算法工程师)的职位发布信息。一共得到的excel表如下所示。

每一个表内的数据如下:

(其中平均月薪的计算是简单地通过区间中位数*薪期/12得到,如8k-10k*16薪,则平均月薪为12000.

三、数据导入

只需要导入每一个表格中的 职位名称  和 平均月薪  列。

import pandas as pd
city8_fullname = ['北京','重庆','武汉','深圳','南京','广州','成都','上海']
job_type = ['数据分析师','数据挖掘工程师','算法工程师']
salary_dic = {}
for i in range(len(city8_fullname)):
    df = pd.DataFrame(pd.read_excel('./Boss直聘数据-八个城市/Boss直聘-'+city8_fullname[i]+'.xls'))
    salary_dic[city8_fullname[i]] = df[['职位名称','平均月薪']]
    salary_dic[city8_fullname[i]]['城市'] = pd.Series([city8_fullname[i]]*df.shape[0])
## 整合成画图需要的格式
salary = salary_dic[city8_fullname[0]]
for i in range(1,8):
    salary = pd.concat([salary,salary_dic[city8_fullname[i]]],ignore_index="true")

得到的数据结构为:

四、画图

这里,我们使用的是python语言,借助seaborn包完成。

import matplotlib.pyplot as plt
import seaborn as sns

# 中文与正负号显示设置
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False
# Draw
plt.figure(figsize=(14,8), dpi= 100)
sns.boxplot(x='城市', y='平均月薪', data=salary, hue='职位名称')
sns.stripplot(x='城市', y='平均月薪', data=salary, color='black', size=2, jitter=1)
for i in range(len(salary['城市'].unique())-1):
    plt.vlines(i+.5, 10, 45, linestyles='solid', colors='gray', alpha=0.2)
plt.title('八大城市对口专业薪资分布', fontsize=20)
plt.legend(title='职位类型')
plt.xticks(fontsize=14)
plt.xlabel('城市',fontsize=16)
plt.ylabel('平均月薪',fontsize=16)
plt.yticks(fontsize=14)
plt.savefig(r'./绘图结果/薪资-薪资分布-箱线图.png')

sns.stripplot------用于画分布散点图(如果是大样本的话不适用,但有一种一半密度一半箱型的类别,可以避免散点覆盖的情况 )

plt.vlines-----画辅助线

hue-----可以理解为有多少组,在这里相当于出去城市外的第二个维度的分类。

结果图为:

上图中,我们是在箱型图的基础上加了散点的,目的在于了解各城市薪资的数值集中分布情况。

总结

到此这篇关于用python的seaborn画数值箱型图的文章就介绍到这了,更多相关python seaborn箱型图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python-Seaborn热图绘制的实现方法

    制图环境: pycharm python-3.6 Seaborn-0.8 热图 import numpy as np import seaborn as sns import matplotlib.pyplot as plt sns.set() np.random.seed(0) uniform_data = np.random.rand(10, 12) ax = sns.heatmap(uniform_data) plt.show() # 改变颜色映射的值范围 ax = sns.heatmap

  • python数据可视化Seaborn绘制山脊图

    目录 1. 引言 2. 举个栗子 3.山脊图 4.扩展 5.结论 1. 引言 山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x轴. 山脊图经常以一种相对不常见且非常适合吸引大家注意力的紧凑图的形式表现.观察上图,我们给其起名叫Ridge plot是非常恰当的,因为上述图表看起来确实很像山的脊背.此外,上述图像还有另一个称呼叫做Joy Plots–这主要是因为Joy Division乐队在如下专辑封面上采用了这种可视化形式. 2. 举个栗子 在介绍完山脊图

  • Python 数据可视化之Seaborn详解

    目录 安装 散点图 线图 条形图 直方图 总结 安装 要安装 seaborn,请在终端中输入以下命令. pip install seaborn Seaborn 建立在 Matplotlib 之上,因此它也可以与 Matplotlib 一起使用.一起使用 Matplotlib 和 Seaborn 是一个非常简单的过程.我们只需要像之前一样调用 Seaborn Plotting 函数,然后就可以使用 Matplotlib 的自定义函数了. 注意: Seaborn 加载了提示.虹膜等数据集,但在本教程

  • Python编程使用matplotlib挑钻石seaborn画图入门教程

    目录 scatter_plot lmplot jointplot 挑钻石第二弹 seaborn是matplotlib的补充包,提供了一系列高颜值的figure,并且集成了多种在线数据集,通过sns.load_dataset()进行调用,可供学习,如果网络不稳定,可下载到本地,然后在调用的时候使用把cache设为True. scatter_plot 官方的示例就很不错,绘制了diamonds数据集中的钻石数据.diamonds中总共包含十项数据,分别是重量/克拉.切割水平.颜色.透明度.深度.ta

  • python数据可视化Seaborn画热力图

    目录 1.引言 2. 栗子 3. 数据预处理 4. 画热力图 5. 添加数值 6. 调色板优化 1.引言 热力图的想法很简单,用颜色替换数字. 现在,这种可视化风格已经从最初的颜色编码表格走了很长一段路.热力图被广泛用于地理空间数据.这种图通常用于描述变量的密度或强度,模式可视化.方差甚至异常可视化等. 鉴于热力图有如此多的应用,本文将介绍如何使用Seaborn 来创建热力图. 2. 栗子 首先我们导入Pandas和Numpy库,这两个库可以帮助我们进行数据预处理. import pandas

  • 用python的seaborn画数值箱型图

    目录 一.概念介绍 二.数据展示 三.数据导入 四.画图 总结 一.概念介绍 箱型图(box-plot),又称为箱线图,盒型图,盒须图.在数据探索阶段或者描述性分析过程中,我们常常用于展示多类连续型数据的数值分布情况,便于类间对比和快速识别异常值. 在一幅箱型图中,一个连续数值序列构成一个盒子,如下所示. 每一个盒子主要展示的是数据的上四分位数Q1(25%),中位数(50%),下四分位数Q3(75%).划分异常值的界限我们称为上下极限,其离Q1,Q3分别是1.5IQR(IQR=Q3-Q1,称作四

  • Python箱型图处理离群点的例子

    首先我们简单地区分一下离群点(outlier)以及异常值(anomaly): 离群点: 异常值: 个人觉着异常值和离群点是两个不同的概念,当然大家在数据预处理时对于这两个概念不做细致的区分,不如:姚明站在我们中间的时候,我觉着我们只能说他是一个离群点,我们能说他异常吗?异常的假设是姚明得了巨人症,可是他不是. 箱型图 代码块 餐饮销售数据离群点检测代码: #-*- coding: utf-8 -*- import pandas as pd catering_sale = '../data/cat

  • Python调用Matplotlib绘制振动图、箱型图和提琴图

    目录 Matplotlib介绍 振动图 箱型图 提琴图 Matplotlib介绍 Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy  ndarray 数组来绘制 2D 图像,它使用简单.代码清晰易懂,深受广大技术爱好者喜爱. NumPy 是 Python 科学计算的软件包,ndarray 则是 NumPy 提供的一种数组结构. Matplotlib 由 John D. Hunter 在 2002 年开始编写, 2003 年 Matplot

  • Python箱型图绘制与特征值获取过程解析

    这篇文章主要介绍了Python箱型图绘制与特征值获取过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较 如何利用Python绘制箱型图 需要的import的包 import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties import numpy as np import

  • Python编程matplotlib绘图挑钻石seaborn小提琴和箱线图

    目录 箱线图 小提琴图 想不到大家都这么喜欢用python给女朋友挑钻石,所以我又写了个续. 如果看过之前一篇用python给女朋友挑钻石的文章,那么可以直接从箱线图开始读. seaborn是matplotlib的补充包,提供了一系列高颜值的figure,并且集成了多种在线数据集,通过sns.load_dataset()进行调用,可供学习,如果网络不稳定,可下载到本地,然后在调用的时候使用把cache设为True. 其中,diamonds数据集中包含了钻石数据,总计十项,分别是[重量/克拉]ca

  • python使用seaborn绘图直方图displot,密度图,散点图

    目录 一.直方图distplot() 二.密度图 2.1 单个样本数据分布密度图 一.直方图distplot() import numpy as np import seaborn as sns import matplotlib.pyplot as plt import matplotlib import pandas as pd fig = plt.figure(figsize=(12, 5)) ax1 = plt.subplot(121) rs = np.random.RandomStat

  • python中seaborn包常用图形使用详解

    seaborn包是对matplotlib的增强版,需要安装matplotlib后才能使用. 所有图形都用plt.show()来显示出来,也可以使用下面的创建画布 fig,ax=plt.subplots() #一个画布 fig,(ax1,ax2) = plt.subplots( ncols=2) #两个画布 1)单个特征统计图countplot sn.countplot(train.mnth)#离散型特征可使用,描述样本点出现的次数. 2)单个特征统计图distplot sn.distplot(t

  • python绘制箱型图

    本文实例为大家分享了python绘制箱型图的具体代码,供大家参考,具体内容如下 import numpy as np import pandas as pd import matplotlib.pyplot as plt # Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图. import seaborn as sns from scipy import stats import warni

  • Python matplotlib seaborn绘图教程详解

    目录 一.seaborn概述 二.数据整理 01折线图 02柱形图 03直方图 三.绘图 01设定调色盘 02柱状图 03技术图 04点图 05箱型图 06小提琴图 一.seaborn概述 Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图.详情请查阅官网:seaborn 二.数据整理 import seaborn as sns import numpy as np import matplotl

  • Python利用matplotlib.pyplot.boxplot()绘制箱型图实例代码

    目录 一.matplotlib.pyplot.boxplot()语法 二.绘制箱型图 ①绘制简单箱型图 ②各个参数绘制箱型图 (1)notch参数(bool值,是否凹口的形式展现箱线图,默认值False非凹口) (2)sym(str,指定异常点的形状,默认为+号显示) (3)vert参数(bool值,是否需要将箱线图垂直摆放,默认True垂直摆放) (4)widths参数(float值,指定箱线图的宽度,默认值:0.5) (5)patch_artist(bool值,是否填充箱体颜色,默认值:Fa

随机推荐