IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python 绘制箱型图 -> 正文阅读

[Python知识库]python 绘制箱型图

用法

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()

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:44:46  更:2022-03-13 21:46:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:53:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码