2025年python 绘制箱型图

python 绘制箱型图用法 Axes boxplot x notch None sym None vert None whis None positions None widths None patch artist None bootstrap None

大家好,我是讯享网,很高兴认识大家。

用法

Axes.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) 

讯享网

该框从数据的第一个四分位数(Q1)延伸到第三个四分位数(Q3),中间有一条线。晶须从盒子中伸出四分位间距(IQR)的1.5倍
在这里插入图片描述
讯享网
参数说明

参数 解释
x 输入数据。如果是二维数组,则为x中的每一列绘制一个箱线图。如果是一系列1维数组,则为x中的每个数组绘制一个箱线图
notch 是绘制凹口箱线图(True),还是绘制矩形箱线图(False)。缺口代表中位数周围的置信区间(CI)。bootstrap的文档描述了默认情况下如何计算槽口的位置,但是也可以通过设置conf_interval参数来覆盖槽口的位置。
sym 传单点的默认符号。空字符串(“”)隐藏传单。如果没有,则传单默认为“b+”
vert 如果为True,则绘制垂直框。如果为False,则绘制水平框。
whis 简单来说就是箱须的位置,指定上下须跟上下四分位的距离,默认是5倍四分位差
bootstrap 指定是否引导缺口盒形图中位数周围的置信区间。如果bootstrap为None,则不执行bootstrap,并使用基于高斯的渐近近似计算槽口
usermedians 设置每个元素的中位数,默认是由matplotlib计算
positions 盒子的位置。刻度和限制将自动设置为与位置匹配
widths 盒子的宽度。默认值为0.5或0.15*
patch_artist 如果为False,则使用Line2维生成长方体
labels 每个数据集的标签(每个数据集一个)
manage_ticks 如果为True,将调整记号位置和标签,以匹配箱线图位置
autorange 如果为True,且数据分布使得第25百分位和第75百分位相等,则将whis设置为(0,100),从而使盒须端位于数据的最小值和最大值。
meanline 是否用线的形式表示均值,默认用点来表示
zorder 箱型图中的zorder–计算机语言,用于设置顺序
showcaps 是否显示箱型图顶端和末端的两条线,默认是显示
showbox 是否显示箱型图的箱体,默认显示
showfliers 是否显示异常值,默认显示
boxprops 设置箱体的属性,如边框色,填充色等
flierprops 设置异常值的属性,如形状,大小、填充色等
medianprops 设置中位数的属性,如线性的类型、属性(粗细)等
meanprops 设置均值的属性,如点的大小、颜色等
capprops 设置箱型图顶端和末端线条的属性,颜色、粗细等
whiskerprops 设置须的属性,如颜色,粗细、线的类型等
案例
讯享网import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) fig = plt.figure() view = plt.boxplot(data) plt.show() 

在这里插入图片描述
notch

import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('添加notch') view = plt.boxplot(data, notch=4) plt.show() 

在这里插入图片描述
sym

讯享网import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('添加notch') view = plt.boxplot(data, sym='*') plt.show() 

在这里插入图片描述
vert
默认情况下是True

import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('vert=True') view = plt.boxplot(data,vert=True) plt.subplot(122) plt.title('vert=False') view = plt.boxplot(data, vert=False) plt.show() 

在这里插入图片描述
whis

讯享网import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('添加whis') view = plt.boxplot(data, whis=1) plt.show() 

在这里插入图片描述
positions

import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('添加positions') view = plt.boxplot(data, positions=[4,2,1]) plt.show() 

在这里插入图片描述
widths

讯享网import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('添加widths') view = plt.boxplot(data, widths=[2,0.5,0.7]) plt.show() 

在这里插入图片描述
patch_artist
如果为Flase,则使用Line2维生成长方体
labels

import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) # 每个数据集一个 plt.title('设置labels') view = plt.boxplot(data, labels=['天', '才', '伪']) plt.show() 

在这里插入图片描述
meanline, meanprops

讯享网import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data, showmeans=True, meanline=False) plt.subplot(122) # 必须meanline为True时,meanprops才起作用 plt.title('设置meanline为True,以线形式显示平均值,并设置属性') view = plt.boxplot(data, showmeans=True, meanline=True,meanprops={ 
   'color': 'cyan', 'linewidth': 1.5}) plt.show() 

在这里插入图片描述
showcaps

import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('设置showcaps为False') view = plt.boxplot(data, showcaps=False) plt.show() 

在这里插入图片描述
showfliers(是否显示异常值)

讯享网import matplotlib.pyplot as plt import pandas as pd plt.rcParams['font.sans-serif'] = ['SimHei'] # 新建一个空的DataFrame data = pd.DataFrame() data["英语"] = [76, 90, 97, 71, 70, 93, 86, 83, 78, 40, 81] plt.subplot(121) plt.title('标准情况下,为显示异常值') view = plt.boxplot(data) plt.subplot(122) plt.title('不限显示异常值,showfliers=False') view = plt.boxplot(data,showfliers=False) plt.show() 

在这里插入图片描述
boxprops
这里有一点需要说明下上面一个参数patch_artist,必须时为2DLine才可以绘制facecolor,不然会报错

AttributeError: 'Line2D' object has no property 'facecolor' 

所以必须添加参数patch_artist=True

讯享网import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('设置boxprops') view = plt.boxplot(data, patch_artist=True, boxprops={ 
   'facecolor': 'cyan', 'linewidth': 0.8,'edgecolor': 'red'}) plt.show() 

在这里插入图片描述
medianprops
设置中位数线的属性,类型等

import numpy as np import matplotlib.pyplot as plt # 创建数据 data = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3)) plt.figsize=((10,8)) plt.rcParams['font.family'] = 'SimHei' plt.rcParams['axes.unicode_minus']=False plt.subplot(121) plt.title('标准情况下') view = plt.boxplot(data) plt.subplot(122) plt.title('设置medianprops') view = plt.boxplot(data, medianprops={ 
   'linewidth': 0.8,'color': 'blue'}) plt.show() 

在这里插入图片描述

小讯
上一篇 2025-01-17 08:47
下一篇 2025-04-02 18:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10926.html