python绘制箱形图,python箱线图怎么看

  python绘制箱形图,python箱线图怎么看

  Python_画箱线图盒图/箱线图箱线图图的介绍应用程序接口介绍示例DemoDemo 1:绘制简单的BoxplotDemo演示2:复杂的箱线图,为每个箱线图指定不同的颜色参考

  箱线图图的介绍

  箱形图(箱形图)又称为盒须图/盒式图/箱线图,是一种用作显示一组数据分散情况的统计图。这自然让人想到分位数的概念,不错,箱线图就是通过分位数来直观展示数据的分散程度。

  如上图,几个重要的参数:下边缘(Q1),表示最小值;下四分位数(Q2),又称"第一四分位数",等于该样本中所有数值由小到大排列后第25%的数字;中位数(Q3),又称"第二四分位数"等于该样本中所有数值由小到大排列后第50%的数字;上四分位数(Q4),又称"第三四分位数"等于该样本中所有数值由小到大排列后第75%的数字;上边缘(Q5),表述最大值。极端异常值,即超出四分位数差3倍距离的异常值,用实心点表示;较为温和的异常值,即处于1.5倍-3倍四分位数差之间的异常值,用空心点表示

  应用程序接口介绍

  参数:x:数组或者向量序列,数组的话每一行对应一个盒子,序列目录的话每个子目录对应一个盒子;labels: 每个包厢的标签,与x对应patch_artist: 是否填充信箱vert:控制图的呈现方向(水平或者垂直)widths: 指定每个包厢的宽度

  示例演示演示1:绘制简单的箱线图导入matplotlib。py plot as pltimport numpy as NP from matplotlib。补丁导入多边形#修复可再现性的随机状态ynp.random.seed(19680801)#捏造一些数据pread=NP。兰德。rand(50)* 100c enter=NP。ones(25)* 50 flier _ high=NP。兰德。rand(10)* 100 100 flier _ low=NP。随机的。兰德(10)*-100数据箱线图(数据)axs[0,0].set _ title(基本绘图)# notched plotaxs[0,1].boxplot(data,1)axs[0,1].set _ title(凹口图)#更改异常点符号SAXS[0,2].boxplot(data,0, gD)axs[0,2].set _ title(更改异常值\ n点符号)#不显示离群点saxs[1,0].boxplot(data,0, )axs[1,0].set_title(不显示\ n更多的点)#水平框xs[1,1].boxplot(data,0, rs ,0)axs[1,1].set_title(水平框)#更改胡须长度轴[1,2]。boxplot(data,0, rs ,0,0.75)axs[1,2].set_title(改变胡须长度)图. subplots_adjust(left=0.08,right=0.98,bottom=0.05,top=0.9,hspace=0.4,wspace=0.3)#多捏造一些数据pread=NP。兰德。rand(50)* 100c enter=NP。ones(25)* 40 flier _ high=NP。随机的。rand(10)* 100 100 100 flier _ low=NP。随机(10如果不是,那就用列表来代替。#这实际上更有效,因为箱线图在内部将#一个二维数组转换为一个向量列表data=[data,d2,d2[:2]]#一个轴上的多个盒图图,ax=PLT。支线剧情()ax。箱线图(数据图)。显示()效果:

  演示2:复杂的箱线图,为每个箱线图指定不同的颜色一些小技巧:

  (1)x_tick的斜体显示

  主要是通过斧头。文本方法的改变参数来指定的:

  ax.text(pos[tick],95,upper_labels[tick],transform=ax。get _ xaxis _ transform(),

  其中ax:

  斧头。set _ xticklabels(NP。repeat(random _ dists,2),

  旋转角度=45 ,字体大小=8 )

  可以看到旋转角度为45度。

  (2)不同的箱线图显示不同的颜色

  random_dists=[Normal(1,1), Lognormal(1,1), Exp(1), Gumbel(6,4), trial(2,9,11)]N=500 norm=NP。随机的。正态(1,1,N)logn=np.random.lognormal(1,1,N)expo=np.random .指数(1,N)gumb=np.random.gumbel(6,4,N)tria=np为代码简洁起见,只需对每个arraybootstrap _ indexes=NP。随机的。randint(0,N,N)data=[ norm,norm[bootstrap _ indexes],logn,logn[bootstrap _ indexes],expo,Expo[bootstrap _ indexes],gumb,gumb[bootstrap _ indexes],tria,tria[bootstrap _ indexes],]fig,ax1=plt.subplots(figsize=(10,6))fig . canvas .经理。设置窗口标题(一个箱线图示例)图.支线剧情#隐藏绘图对象后面的网格title=跨五个分布的耳间强度差异(insulin independent diabetes)引导重采样的比较,xlabel=分布,ylabel=值,)#现在用所需的颜色填充框box _ colors=[ Dark kaki , Royal Blue ]num _ box=len(data)medians=NP。空(num _ boxes)for I in range(num _ boxes):box=BP[ boxes ][I]box _ x=[]box _ y=[]for j in range(5):box _ x . append(box .get _ xdata()]face color=box _ colors[I % 2])#现在在我们刚刚填充的med=BP[ medians ][I]median _ x=[]median _ y=[]for j in range(2):median _ x . append(med .get _ xdata()[j])median _ Y . append(med。get _ Y data()[j])ax1。plot(median _ x,median _ Y, k )中位数[i]=median_y[0] #最后,用添加带有样本中间值的上# X轴刻度标签以帮助比较#(仅使用两位小数精度)pos=NP。arange(num _ boxes)1 upper _ labels=[str(round(s,2))for s in medians]weights=[ bold , semibold]for tick,label in zip(range(num_boxes),ax1。get _ xticklabels()):k=tick % 2 ax1。文本(位置[记号],95,upper_labels[tick],transform=ax1。get _ xa效果:

  参考1.https://matplotlib。org/stable/gallery/statistics/box plot _ demo。html # sphx-glr-图库-统计数据-方框图-演示-py

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: