怎么用python的seaborn画数值箱型图(python,seaborn,开发技术)

时间:2024-05-09 02:22:13 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、概念介绍

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

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

怎么用python的seaborn画数值箱型图

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

二、数据展示

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

怎么用python的seaborn画数值箱型图

每一个表内的数据如下:

怎么用python的seaborn画数值箱型图

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

三、数据导入

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

importpandasaspdcity8_fullname=['北京','重庆','武汉','深圳','南京','广州','成都','上海']job_type=['数据分析师','数据挖掘工程师','算法工程师']salary_dic={}foriinrange(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]]foriinrange(1,8):salary=pd.concat([salary,salary_dic[city8_fullname[i]]],ignore_index="true")

得到的数据结构为:

怎么用python的seaborn画数值箱型图

四、画图

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

importmatplotlib.pyplotaspltimportseabornassns#中文与正负号显示设置plt.rcParams['font.sans-serif']='MicrosoftYaHei'plt.rcParams['axes.unicode_minus']=False#Drawplt.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)foriinrange(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画数值箱型图

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

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么用python的seaborn画数值箱型图的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:C语言关键字auto register怎么使用下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18