精华内容
下载资源
问答
  • MATLAB画箱线图

    2018-10-13 16:27:46
    用matlab绘制箱线图,程序中给出了实例,可塑性好,可以把自己的数据直接代入
  • 第五步:异常值之外,最靠近上边缘和下边缘的两个值处,横线,作为箱线图的触须。 第六步:极端异常值,即超出四分位数差3倍距离的异常值,用实心点表示;较为温和的异常值,即处于1.5倍-3倍四分位数差之间的异常...
  • Python 绘制箱线图主要用 matplotlib 库里 pyplot 模块里的 boxplot() 函数。 plt.boxplot() 参数详解 plt.pie(x, # 指定要绘制箱线图的数据; notch=None, # 是否是凹口的形式展现箱线图,默认非凹口; sym=None...
  • python画箱线图采坑总结

    千次阅读 2020-11-23 18:01:17
    在网上找资料找了很久,都没有找到方法,其实是我自己没搞懂箱线图的原理。 如下图所示,每一个箱线图都有上边缘,下边缘,箱体,异常值组成,箱体的上边是上四分位数,下边是下四分位数,中间是中位数 箱形图有5个...

    我现在是有5组数据,我想画成下图这种形式,因为我想给每一个图都指定一个上下边缘,然后不在这个范围内的数就画成异常值。在网上找资料找了很久,都没有找到方法,其实是我自己没搞懂箱线图的原理。

    在这里插入图片描述如下图所示,每一个箱线图都有上边缘,下边缘,箱体,异常值组成,箱体的上边是上四分位数,下边是下四分位数,中间是中位数
    箱形图有5个参数:
    下边缘(Q1),
    下四分位数(Q2),又称“第一四分位数”,等于该样本中所有数值由小到大排列后第25%的数字;
    中位数(Q3),又称“第二四分位数”等于该样本中所有数值由小到大排列后第50%的数字;
    上四分位数(Q4),又称“第三四分位数”等于该样本中所有数值由小到大排列后第75%的数字;
    上边缘(Q5),
    异常值:超过上边缘或者下边缘的值
    千万不要跟我一样以为上边缘是最大值,下边缘是最小值
    上下边缘的确定是Q2-1.5IQR和Q4+1.5IQR,其中IQR=Q4-Q2;

    在这里插入图片描述下面我们来用程序验证一下

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    data={'neutral':[55,52,52,52,51,51,50,50,50,48,48,48,47,47,47,47,47,46,46,46,46,45,45,45,45,44,44,44,44,44,44,44,43,43,43,43,43,42,42,42,42,42,42,41,41,41,41,41,41,41,40,40,40,40,40,40,40,40,39,39,39,38,38,38,38,38,38,38,38,38,38,37,37,37,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,36,36,36,36,36,35,35,35,35,35,35,35,35,35,35,34,34,34,34,34,34,34,34,34,34,34,33,33,33,33,33,33,33,33,32,32,32,32,32,32,32,32,32,32,31,31,31,31,31,31,31,30,30,30,30,30,30,30,30,30,29,29,29,29,29,29,28,28,28,28,28,28,28,27,27,27,27,27,27,27,27,27,26,26,26,26,26,25,25,25,25,25,25,24,24,24,24,23,22,21,21,20,20,20,20,20,18,16,12]}
    df = pd.DataFrame(data)
    print(df.describe())
    df.plot.box(title="Consumer spending in each country",whis=1.5)
    plt.grid(linestyle="--", alpha=0.3)
    plt.show()
    

    结果展示
    在这里插入图片描述我发现程序有一个异常点(这个异常点看坐标应该是12),而且上边缘是这个数列的最大值,下边缘不是这个数列的最小值,我们来计算一下
    IQR=Q4-Q2=40.25-30=10.25
    Q1=Q2-1.5IQR=30-1.5×10.25=14.625,那么下边缘应该是14.625,12超出了这个范围,所以被判为异常点

    Q5=Q4+1.5IQR=40.25+15.375=55.625,这个数列所有的数都没有超过这个上边缘(最大只有55),所以上边没有异常点

    现在我们改一下这个数列,再来看看结果

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    data={'neutral':[80,56,52,52,51,51,50,50,50,48,48,48,47,47,47,47,47,46,46,46,46,45,45,45,45,44,44,44,44,44,44,44,43,43,43,43,43,42,42,42,42,42,42,41,41,41,41,41,41,41,40,40,40,40,40,40,40,40,39,39,39,38,38,38,38,38,38,38,38,38,38,37,37,37,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,36,36,36,36,36,35,35,35,35,35,35,35,35,35,35,34,34,34,34,34,34,34,34,34,34,34,33,33,33,33,33,33,33,33,32,32,32,32,32,32,32,32,32,32,31,31,31,31,31,31,31,30,30,30,30,30,30,30,30,30,29,29,29,29,29,29,28,28,28,28,28,28,28,27,27,27,27,27,27,27,27,27,26,26,26,26,26,25,25,25,25,25,25,24,24,24,24,23,22,21,21,20,20,20,20,20,18,16,13]}
    df = pd.DataFrame(data)
    print(df.describe())
    df.plot.box(title="Consumer spending in each country",whis=1.5)
    plt.grid(linestyle="--", alpha=0.3)
    plt.show()
    

    如下图,13不是异常点,80,56是异常点

    在这里插入图片描述但是,这个系数是可以改的,可以改成2.0试试

    此时Q1=Q2-2IQR

    Q5=Q4+2IQR

    df.plot.box(title="Consumer spending in each country",whis=1.5)
    
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    data={'neutral':[80,56,52,52,51,51,50,50,50,48,48,48,47,47,47,47,47,46,46,46,46,45,45,45,45,44,44,44,44,44,44,44,43,43,43,43,43,42,42,42,42,42,42,41,41,41,41,41,41,41,40,40,40,40,40,40,40,40,39,39,39,38,38,38,38,38,38,38,38,38,38,37,37,37,37,37,37,37,37,37,37,37,37,37,36,36,36,36,36,36,36,36,36,36,36,36,35,35,35,35,35,35,35,35,35,35,34,34,34,34,34,34,34,34,34,34,34,33,33,33,33,33,33,33,33,32,32,32,32,32,32,32,32,32,32,31,31,31,31,31,31,31,30,30,30,30,30,30,30,30,30,29,29,29,29,29,29,28,28,28,28,28,28,28,27,27,27,27,27,27,27,27,27,26,26,26,26,26,25,25,25,25,25,25,24,24,24,24,23,22,21,21,20,20,20,20,20,18,16,13]}
    df = pd.DataFrame(data)
    print(df.describe())
    df.plot.box(title="Consumer spending in each country",whis=2.0)
    plt.grid(linestyle="--", alpha=0.3)
    plt.show()
    

    在这里插入图片描述不知道可不可以上下限的倍数设的不一样啊
    https://www.bilibili.com/video/BV1Jt4y1i76Q?from=search&seid=12376886745584686578
    这个视频中说的,不是很懂它的意思,我也没试出来这之间的关系

    df.plot.box(title="Consumer spending in each country",whis=(20,100))
    
    展开全文
  • Matplotlib绘制箱线图

    2021-09-13 12:48:52
    箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界、下界、中位数、上下四分位数以及异常值等。箱线图的各部分组成及其含义如下图所示。 关键术语说明 ...

    箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界、下界、中位数、上下四分位数以及异常值等。箱线图的各部分组成及其含义如下图所示。

     关键术语说明

    • 四分位数:就是把一组数据按照从小到大的顺序进行排列,然后分成四等份,处于三个分割点位置的数字就是四分位数;
    • 第一四分位数(q1):又称“较小四分位数”或“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字,q1的位置 = 1+(n-1)x 0.25
    • 第二四分位数(q2):又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字,q2的位置= 1+(n-1)x 0.5
    • 第三四分位数(q3),又称“较大四分位数”或“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。q3的位置= 1+(n-1)x 0.75
    • 四分位间距(InterQuartile Range,IQR):第三四分位数与第一四分位数的差距(q3数据- q1数据)
    • Whiske上限(大于该值即为异常值):q3 + 1.5*IQR,(1.5表示超过的比例,是一个系数,可根据实际情况调整);
    • Whisker下限(小于该值即为异常值):q1 - 1.5*IQR

     例1:有一组数据[12, 45, 30, 80, 36, 50, 40],分别求出q1、q2、q3。

    首先对这组数据进行排序得到:[12, 30, 36, 40, 45, 50, 80],数组长度n为7;

    q1的位置 = 1+(n-1)x 0.25=1 + 6*0.25 =2.5,所以q1的值为:30 + (36 - 30)*0.5 = 33

    q2的位置 = 1+(n-1)x 0.5=1 + 6*0.5 =4,所以q2的值为40

    q3的位置 = 1+(n-1)x 0.75=1 + 6*0.75 =5.5,所以q3的值为:45 + (50 - 45)*0.5=47.5

    例2:一组数据[12, 45, 30, 80, 36, 50, 40, 43],分别求出q1、q2、q3

    首先对这组数据进行排序得到:[12, 30, 36, 40, 43, 45, 50, 80],数组长度n为8;

    q1的位置 = 1+(n-1)x 0.25=1 + 7*0.25 =2.75,所以q1的值为:30 + (36 - 30)*0.75 = 34.5

    q2的位置 = 1+(n-1)x 0.5=1 + 7*0.5 =4.5,所以q2的值为40 + (43-40)*0.5=41.5

    q3的位置 = 1+(n-1)x 0.75=1 + 7*0.75 =6.25,所以q3的值为:45 + (50 - 45)*0.25=46.25

    在numpy中提供了quantile()函数,可以直接获取四分位数,例如np.quantile(x, 0.25)即可获取数组x中的q1

    Matplotlib中绘制箱线图的方法:boxplot

    boxplot(

            x, notch=None, sym=None, vert=None, whis=None,

            positions=None, widths=None, patch_artist=None,

            bootstrap=None, usermedians=None, conf_intervals=None,

            meanline=None, showmeans=None, showcaps=None, showbox=None,

            showfliers=None, boxprops=None, labels=None, flierprops=None,

            medianprops=None, meanprops=None, capprops=None,

            whiskerprops=None, manage_ticks=True, autorange=False,

            zorder=None, *, data=None):

    关键参数含义说明如下:

    • x指定要绘制箱线图的数据,可以是一组数据也可以是多组数据;
    • notch是否以凹口的形式展现箱线图,默认非凹口;
    • sym指定异常点的形状,默认为蓝色的+号显示;
    • vert是否需要将箱线图垂直摆放,默认垂直摆放;
    • whis指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
    • positions指定箱线图的位置,默认为range(1, N+1),N为箱线图的数量;
    • widths指定箱线图的宽度,默认为0.5;
    • patch_artist是否填充箱体的颜色,默认为False;
    • meanline:是否用线的形式表示均值,默认用点来表示;
    • showmeans是否显示均值,默认不显示;
    • showcaps是否显示箱线图顶端和末端的两条线,默认显示;
    • showbox是否显示箱线图的箱体,默认显示;
    • showfliers是否显示异常值,默认显示;
    • boxprops设置箱体的属性,如边框色,填充色等;
    • labels为箱线图添加标签,类似于图例的作用;
    • filerprops设置异常值的属性,如异常点的形状、大小、填充色等;
    • medianprops设置中位数的属性,如线的类型、粗细等;
    • meanprops设置均值的属性,如点的大小、颜色等;
    • capprops设置箱线图顶端和末端线条的属性,如颜色、粗细等;
    • whiskerprops设置须的属性,如颜色、粗细、线的类型等;
    • manage_ticks是否自适应标签位置,默认为True;
    • autorange是否自动调整范围,默认为False;

    程序举例

    (1)绘制单个箱线图

    import matplotlib.pyplot as plt
    import numpy as np
    x = np.array([12, 45, 30, 70, 36, 50, 40, 26, 38])
    print(sorted(x))
    a = np.quantile(x, 0.75)  # 上四分之一数
    b = np.quantile(x, 0.25)  # 下四分之一数
    print("平均数:", np.mean(x))  # 打印均值
    print("中位数:", np.median(x))  # 打印中位数
    print("上四分之一数:", a)  # 打印上四分之一数
    print("下四分之一数:", b)  # 打印下四分之一数
    up = a + 1.5 * (a - b)  # 异常值判断标准
    down = b - 1.5 * (a - b)  # 异常值判断标准
    x = np.sort(x)  # 对原始数据排序
    shangjie = x[x < up][-1]  # 除了异常值外的最大值
    xiajie = x[x > down][0]  # 除了异常值外的最小值
    print("上界:", shangjie)  # 打印上界
    print("up:", up)
    print("down:", down)
    print("下界:", xiajie)  # 打印下界
    plt.grid(True)  # 显示网格
    y = plt.boxplot(x, meanline=True, showmeans=True,
                    flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 15})  # 绘制箱形图,设置异常点大小、样式等
    plt.show()  # 显示图

    程序执行效果图:

     控制台输出结果为:

    [12, 26, 30, 36, 38, 40, 45, 50, 70]
    平均数: 38.55555555555556
    中位数: 38.0
    上四分之一数: 45.0
    下四分之一数: 30.0
    上界: 50
    up: 67.5
    down: 7.5
    下界: 12

    (2)绘制多个箱线图

    import matplotlib.pyplot as plt
    import numpy as np
    x = np.random.randint(10, 100, size=(5, 9))  # 随机生成5行9列 [10, 100]之间的数
    print(x)  # 打印数据
    plt.grid(True)  # 显示网格
    plt.boxplot(x, labels=list("ABCDEFGHI"), sym="r+", showmeans=True)  # 绘制箱线图
    plt.show()  # 显示图片

    程序执行效果图:

     注:图中红色+号表示异常点,绿色三角形表示平均数。

    控制台输出的打印结果为:

    [[90 99 35 32 21 31 83 71 39]
     [24 95 63 50 92 41 89 16 79]
     [73 73 53 21 39 60 50 55 43]
     [64 94 66 26 20 73 40 68 45]
     [74 72 33 81 73 59 85 23 17]]

     更多Python学习相关资源可通过以下方式联系我们获取。

     

    展开全文
  • matlab 多个箱线图

    2021-05-24 20:34:59
    data = [temp6 ;temp6 ]; s_groupA = repmat({'item 1'},numel(temp6),1); s_groupB = repmat({'item 2'},numel(temp6),1); group = [s_groupA;s_groupB]; boxplot(data,group);

    data = [temp6 ;temp6 ];
    s_groupA = repmat({'item 1'},numel(temp6),1);
    s_groupB = repmat({'item 2'},numel(temp6),1);
    group = [s_groupA;s_groupB];
    boxplot(data,group);
     

    展开全文
  • 什么是箱线图? 我们画箱线图的目的其实是去查看数据分布的离散程度。 上图将箱线图的重要部分都标出来了。对于箱线图来说,图中会有的要素有: 最大值 Q3(大于75%数据的位点)中位数 Q1(大于25%数据的位点...

    什么是箱线图?

    我们画箱线图的目的其实是去查看数据分布的离散程度。

    上图将箱线图的重要部分都标出来了。对于箱线图来说,图中会有的要素有:

    • 最大值
    • Q3(大于75%数据的位点)
    • 中位数
    • Q1(大于25%数据的位点)
    • 最小值

    Q3与Q1之间的部分叫做IQR(Interquartile Range, 四分位数)。通过查看与比较不同数据的箱线图,我们就可以了解数据分布于离散程度。

    使用Matplotlib作图

    import matplotlib.mlab as mlab
    import matplotlib.pyplot as plt
    
    in_file = "Data7602DescendingYearOrder.csv"
    data = pd.read_csv(in_file, engine='python')
    
    ec_2000 = data[data['year']==2000]['ec_count']
    ec_2001 = data[data['year']==2001]['ec_count']
    
    _ = plt.boxplot([ec_2000[ec_2000<100], ec_2001[ec_2001<100]])
    plt.show()

    运行结果: 

    代码取出了数据中的两列,并画出箱线图,可以看到两列数据的中位数差不多,但是右边那一列数据的离散程度更大。其中的黑色方块是离群点。

    Reference

    [1] http://estat.ncku.edu.tw/nsc/flash/topic/graph_stat/base/BoxPlot.html

    展开全文
  • Matlab 绘制箱线图

    千次阅读 2021-01-14 23:53:36
    文章目录前言一、箱线图介绍二、Matlab 绘制箱线图参考资料 前言 主要介绍箱线图(Box-plot)和利用Matlab绘制箱线图。 一、箱线图介绍 统计指标一般包括:四分位数、均值、中位数、众数、方差、标准差等,箱线图...
  • seaborn分组箱线图

    2021-09-24 10:02:43
    seaborn 分组箱线图一、先上图二、程序 一、先上图 二、程序 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt if __name__ == '__main__': a_pd = pd.DataFrame({'A': [1, 2, 3...
  • 用python绘制箱线图

    万次阅读 多人点赞 2018-12-21 18:47:48
    文章目录一、别名二、历史三、定义四、作用(1)识别异常值(2)判断偏态(3)评估数据集中程度五、用python绘制箱线图参考 一、别名 箱须图、箱形图、盒图、盒须图、盒式图、盒状图 Box plot、Box-whisker Plot 二...
  • 篇一:怎样用SPSS绘制boxplot箱线图 SPSS绘制箱线图 Rui-qing Zhu Shapotou Desert Research and Experiment Station, Cold and Arid Regions Environmental and Engineering Research Institute, Chinese Academy of...
  • pyplot箱线图

    2019-09-11 11:42:15
    #-*-coding:utf-8-*- import numpy as np import matplotlib.pyplot as plt res=np.load('./国民经济核算季度数据.npz') columns=res['columns'] values=res['values'] #1、创建画布 plt.figure() ...
  • 如何画箱线图

    2019-04-24 10:49:00
    如何画箱线图 #utf-8 import matplotlib.pyplot as plt x = [1,2,3,5] y = [4,3,7,9] z= [2,4,8] # m=[] # m.append(x) # m.append(y) # m.append(z) #x,y,z中的数...
  • ggplot绘制箱线图

    2021-04-29 09:58:30
    箱线图(Box-plot)也叫箱须图,由美国科学家john.w.tukey1977年在论文中首次展示,能显示出数据的最大值、最小值,中位数及上下四分位数,因形状像箱子得名。箱线图箱线图在SCI论文中应用非常广泛。 第一四分位数...
  • 上一节我们已经简单已介绍了箱线图原理和单个数据的箱线图表示,今天我们来介绍多数据的箱线图和一些其他扩展,继续使用我们原来的汽车销售数据,我们先把数据和R包导入, library(foreign) library(ggplot2) bc <...
  • 概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分别为数据的...
  • pandas 画箱线图 测试文件:https://codechina.csdn.net/u014467816/ktools/-/blob/master/%E4%B8%A4%E4%B8%AA%E7%AE%B1%E7%BA%BF%E5%9B%BE.csv import pandas as pd from matplotlib import pyplot as plt # 读取...
  • ggplot2箱线图绘制规范

    2021-01-12 12:40:55
    箱线图1、模板2、数据3、导入数据整理4、画图5 最终图 今天一朋友想学R语言,问我如何学,我建议是针对问题,如何针对问题,比如文献找到一个图,照着出来就对了。他给我找了个箱线图,这个百度都有代码,但关于...
  • R语言绘制箱线图箱线图(又称盒须图)是常见的统计图形之一,通过绘制连续型变量的五数总括,即最小值、下四分位数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值,描述了连续型变量的...
  • R语言基础图形绘制——箱线图

    万次阅读 多人点赞 2020-08-12 12:27:56
    R语言绘制箱线图 箱线图主要是通过四分位数描述数据分布,通过最大值,上四分位数,中位数,下四分位数,最小值五处位置描述数据分布情况。
  • 箱线图分析

    千次阅读 2021-02-17 17:39:30
    看图说话,注意以下几个点: 一.箱子的中间一条线,是数据的中位数,代表了样本数据的平均...箱线图最有效的使用途径是作比较,配合一个或者多个定性数据,分组箱线图。 转载于箱线图应该怎么用,里面是更详细的介绍
  • 统计图表之箱线图

    千次阅读 2020-11-15 15:23:58
    统计图表之箱线图 箱线图主要包含了数据的最大值、最小值、四分位数,因此它可以用来判断数据分布状况,也可以用于简单判断异常值。 1. 在python中我们有两种方法来绘制箱线图。第一种方法是通过pandas的DataFrame中...
  • 由于自己科研工作的需要,经常需要一些箱线图,比较2个样本的基因表达量啊什么的,这个时候,就会想说如何实现箱线图的美化,以及最近看到一个把正常基因表达量的箱线图画成了直方图加散点图再加误差线的形式,...
  • Echarts箱线图

    千次阅读 2019-01-04 14:50:02
    &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;style type="text/css"&gt; #main{ height: 500px; border: 1px red solid;...text/javas
  • Python 绘制箱线图主要用 matplotlib 库里 pyplot 模块里的 boxplot() 函数。plt.boxplot() 参数详解plt.pie(x, # 指定要绘制箱线图的数据;notch=None, # 是否是凹口的形式展现箱线图,默认非凹口;sym=None, # ...
  • R | 使用ggplot绘制对比箱线图

    千次阅读 2019-04-22 21:26:18
    绘制对比箱线图1 单独测试2 封装成函数3 总结 1 单独测试 library(ggplot2) p<-ggplot(data=df_plot, aes(x=label,y=score))+ geom_boxplot(aes(fill=label))+ theme(legend.position = 'none', title = ...
  • boxplot 箱线图剔除离群值

    千次阅读 2021-05-12 09:55:55
    param data: 接收pandas数据格式 param col_name: pandas列名 param scale: 尺度 """ def box_plot_outliers(data_ser, box_scale): """ 利用箱线图去除异常值 :param data_ser: 接收 pandas.Series 数据格式 :param...
  • 箱线图怎么看

    万次阅读 多人点赞 2018-11-01 16:37:57
    看图说话,注意以下几个点: 一.箱子的中间一条线,是数据的中位数,代表了样本...箱线图最有效的使用途径是作比较,配合一个或者多个定性数据,分组箱线图。 转载于 箱线图应该怎么用 ,里面是更详细的介绍
  • Python 绘制 误差 箱线图 error boxplot

    千次阅读 2015-11-24 08:58:00
    Python 绘制 误差 箱线图 error boxplot 两个比较好的参考网址: http://blog.bharatbhole.com/creating-boxplots-with-matplotlib/ http://blog.csdn.net/u012176591/article/details/44700551
  • 绘制多个参数箱线图

    千次阅读 2020-05-16 21:11:32
    使用matplotlib绘制该数据集特征G1、G2、G3的箱线图(按照顺序G1,G2,G3) 在一个子图中绘制需求图像 import pandas as pd import matplotlib.pyplot as plt fig = plt.figure(figsize = (10, 10)) data = pd.read_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,140
精华内容 1,656
关键字:

箱线图怎么画