科研绘图(七)箱形图

2024-01-16 18:36
文章标签 绘图 科研 形图

本文主要是介绍科研绘图(七)箱形图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

箱形图(Boxplot)是一种用于图形化表示数据分布的统计图表。以下是对箱形图主要部分的详细介绍:

1. 中位数(Median):

   - 箱形图中的一条线(通常是箱子中的一条线),表示数据集的中位数,也就是将数据集分成相等的上下两部分的值。

2. 四分位数(Quartiles):

   - 第一四分位数(Q1/下四分位数):位于箱子底部的线,表示所有数据中低于此值的占25%。

   - 第三四分位数(Q3/上四分位数):位于箱子顶部的线,表示所有数据中高于此值的占25%。

   - 箱子(即Q1和Q3之间的区域)包含了中间50%的数据,称为四分位数范围(Interquartile Range, IQR)。

3. 须(Whiskers):

   - 这些从箱体向外延伸的线条表示数据的变异性,它们延伸到箱形图外的最高点和最低点,但不包括异常值。须的长度一般是1.5倍的四分位数范围(IQR),用于判断异常值的标准。

4. 异常值(Outliers):

   - 异常值通常用点表示,并且是那些低于Q1-1.5IQR或高于Q3+1.5IQR的数据点。这些点是数据中的异常值,可能是由于各种原因造成,如测量误差或数据输入错误。

5. "箱"体(Box):

   - 箱体的边界由Q1和Q3确定,箱体的长度表示了数据集中值的散布程度,即四分位距。箱体越长,数据越分散。

6. 数据的分布:

   - 箱形图不仅可以显示数据的中心趋势,还可以显示数据的分布形态。例如,箱体对称表示数据较为均匀地分布在中位数的两侧;如果箱体偏向一侧,表明数据分布可能是偏斜的。

箱形图的优点在于它简洁地概括了数据的中心位置、散布和偏斜程度以及异常值。通过箱形图,我们可以迅速了解数据集的关键统计特性,并比较不同数据集的特点。例如,在医学研究中,箱形图可以用来展示不同治疗组的患者反应的差异;在商业分析中,它可以展示产品销售的季节性波动等。

箱形图也常常用于多个数据集的比较。比如,上面示例中的箱形图跨越多年份,可以用来比较不同年份的数据分布差异。每一年的数据分布情况都可以通过对应的箱形图直观展现,而年份之间的比较可以通过观察箱体的位置、大小和异常值的差异来进行。

值得注意的是,箱形图虽然提供了数据分布的可视化,但它不会显示数据分布的具体形状,如是否是双峰或是正态分布等。对于这些细节,通常需要配合直方图或核密度估计等其他统计图表来进一步分析。

import matplotlib.pyplot as plt
import numpy as np# Generate some example data
np.random.seed(10)
data = [np.random.normal(0, std, 100) for std in range(1, 8)]# Create a boxplot
plt.boxplot(data)plt.title('Example Boxplot')
plt.xlabel('Sample Set')
plt.ylabel('Value')# Show the boxplot
plt.show()

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns# Use seaborn style for better aesthetics
sns.set(style="whitegrid")# Generate some example data
np.random.seed(10)
data = [np.random.normal(0, std, 100) for std in range(1, 8)]# Create a boxplot with additional styling
plt.figure(figsize=(12, 6))  # Set the figure size# Define the properties for the boxplot elements
boxprops = dict(linestyle='-', linewidth=2, color='darkgoldenrod', facecolor='lightyellow')
medianprops = dict(linestyle='-', linewidth=2, color='firebrick')
whiskerprops = dict(linestyle='--', linewidth=2, color='darkorange')
capprops = dict(linestyle='-', linewidth=2, color='black')
flierprops = dict(marker='o', markerfacecolor='green', markersize=12, linestyle='none')
meanprops = dict(marker='D', markeredgecolor='black', markerfacecolor='blue', markersize=8)# Creating the boxplot with customized properties
plt.boxplot(data, patch_artist=True, showmeans=True, boxprops=boxprops,medianprops=medianprops, whiskerprops=whiskerprops,capprops=capprops, flierprops=flierprops, meanprops=meanprops)# Add titles and labels
plt.title('Enhanced Boxplot', fontsize=16, fontweight='bold')
plt.xlabel('Sample Set', fontsize=12)
plt.ylabel('Value', fontsize=12)# Set the ticks and labels
plt.xticks(np.arange(1, len(data) + 1), [f'Set {i}' for i in range(1, len(data) + 1)], fontsize=10)
plt.yticks(fontsize=10)# Show the boxplot with a tighter layout
plt.tight_layout()
plt.show()

 

为了进一步美化可视化结果,对于颜色和样式:箱体填充了浅蓝色,边框和其他元素使用了深蓝色,中位数线为海军蓝色。对于异常值:用红色圆点标记,以突出显示。对于标题和标签:增加了标题和坐标轴标签的字体大小,并为标题添加了粗体样式。对于网格线:添加了虚线网格,透明度设为0.7,以便更好地阅读数据。

以下为matlab实现代码以及可视化结果

% 设置随机数种子
rng(10);% 生成数据
data = {};
for std = 1:7
data{std} = normrnd(0, std, [100, 1]);
end% 创建箱形图
boxplot(cell2mat(data))% 设置图表标题和轴标签
title('Example Boxplot');
xlabel('Sample Set');
ylabel('Value');% 显示图表

 

% 设置随机数种子
rng(10);% 生成数据
data = {};
for std = 1:7
data{std} = normrnd(0, std, [100, 1]);
end% 创建箱形图
boxplot(cell2mat(data), 'Colors', 'rgbkymc', 'MedianStyle', 'target', 'OutlierSize', 4)% 设置图表标题和轴标签
title('Enhanced Boxplot');
xlabel('Sample Set');
ylabel('Value');% 增加网格线
grid on;% 调整坐标轴刻度和范围
ax = gca;
ax.XTick = 1:7;
ax.YLim = [-20, 20];% 显示图表
进一步增强了箱形图的视觉效果,包括设置了背景色、为箱体添加了不透明度、自定义了离群点样式、改进了标题和轴标签的样式,以及设置了网格线的样式。大家可以根据自己的需求和喜好继续调整这些设置。

 进一步增强了箱形图的视觉效果,包括设置了背景色、为箱体添加了不透明度、自定义了离群点样式、改进了标题和轴标签的样式,以及设置了网格线的样式。大家可以根据自己的需求和喜好继续调整这些设置。

 

箱形图作为数据可视化的工具,拥有一系列的优点和缺点:

 优点

1. 简洁性:

   - 箱形图以一种非常紧凑和信息密集的方式展示数据分布,使得对数据的中位数、四分位数和异常值一目了然。

2. 比较性:

   - 当需要在同一图表中比较多个数据集时,箱形图尤其有用。它可以轻松地并排放置,以便直观地比较不同数据集的中心趋势和分散程度。

3. 识别异常值:

   - 异常值可以清晰地表示出来,这对于异常值分析和异常检测非常重要。

4. 不受异常值影响:

   - 箱形图的构建方法(使用中位数和四分位数)使其对异常值不敏感,因此它们提供了一个稳健的数据分布视图。

5. 数据分布的非参数摘要:

   - 箱形图不假设数据的基础分布,这使得它们成为一种非参数的方法,即它们不依赖于数据的分布符合某个特定的数学形式。

 缺点

1. 数据分布细节:

   - 箱形图不显示数据的分布细节,例如是否对称、是否多峰或数据的确切分布形状。因此,可能需要额外的直方图或核密度估计图来获取这些信息。

2. 异常值的过度简化:

   - 尽管箱形图可以显示异常值,但它们不提供关于异常值数量或其分布的具体细节。此外,它也不区分远端和近端异常值。

3. 不显示每个数据点:

   - 箱形图不展示单个数据点(除了可能的异常值),这意味着数据的多样性和个体差异可能被隐藏。

4. 固定的异常值识别规则:

   - 异常值通常根据1.5*IQR的规则确定,这可能不适用于所有类型的数据集。对于有些数据集来说,这个规则可能过于严格或过于宽松。

5. 对于小样本数据的限制:

   - 当数据量较少时,箱形图可能不够精确,因为四分位数和异常值可能会受到个别数据点的过度影响,从而导致误导性的解释。

6. 潜在的误解:

   - 箱形图的读法不如其他一些图表直观,如条形图或折线图,可能需要用户有一定的统计知识才能正确解读。

7. 聚集效应:

   - 对于大数据集,许多实际值可能会聚集在四分位数,这使得箱形图看起来非常相似,难以区分。

总结来说,箱形图是一个非常强大的工具,尤其是在需要快速了解数据集的中心趋势、离散程度和异常值时。然而,由于它的一些局限性,通常最好将箱形图与其他数据分析工具结合使用,以获得对数据的全面理解。

 

这篇关于科研绘图(七)箱形图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613519

相关文章

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

matplotlib绘图中插入图片

在使用matplotlib下的pyplot绘图时,有时处于各种原因,需要采用类似贴图的方式,插入外部的图片,例如添加自己的logo,或者其他的图形水印等。 一开始,查找到的资料都是使用imshow,但是这会有带来几个问题,一个是图形的原点发生了变化,另外一个问题就是图形比例也产生了变化,当然最大的问题是图形占据了整个绘图区域,完全喧宾夺主了,与我们设想的只在绘图区域中占据很小的一块不相符。 经

海龟绘图简易教程|Turtle for Python

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。 原文链接|海龟绘图简易教程 1. 基本

GraphPad Prism 10 for Mac/Win:高效统计分析与精美绘图的科学利器

GraphPad Prism 10 是一款专为科研工作者设计的强大统计分析与绘图软件,无论是Mac还是Windows用户,都能享受到其带来的便捷与高效。该软件广泛应用于生物医学研究、实验设计和数据分析领域,以其直观的操作界面、丰富的统计方法和多样化的图表样式,成为科学研究的得力助手。 数据处理与整理 GraphPad Prism 10 支持从多种数据源导入数据,如Excel、CSV文件及数据库

MATLAB绘图基础5:MATLAB数据导入

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 5.MATLAB数据导入 5.1 从CSV文件读取数据 C S V {\rm CSV} CSV文件是一种纯文本文件,文件中的数据以逗号为分隔符进行字段分隔,每一行数据代表一条记录,每个字段在该行内通过逗号进行分隔; C S V {\rm CSV} CSV文件可以使用任何文本

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

Day18_0.1基础学习MATLAB学习小技巧总结(18)——MATLAB绘图篇(1)

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 参考书目:《MATLAB基础教程 (第三版) (薛山)》 之前的章节都是基础的数据运算用法,对于功课来说更加重要的内容是建模、绘图、观察数据趋势,接下来我会结合自己的使用经验,来为大家分享绘图、建模使用的小技巧。 二维图形绘制 在本章开

科研小白成长记40——第三个五年计划

小gap期间,拼命玩和拼命休息的同时,仔细思考了下我期望的五年之后的样子,gap结束,算是目标愈发清晰起来。曾经,读博的目标是成为一名independent researcher,并且具备发至少一篇顶会的能力。而现在,希望五年后的自己,成为一名good independent researcher。当然,这里的good,根据现阶段的科研榜样,已经有了具体的metrics。 首先是随时在线的深度理解

qtdraw-使用qt绘图之开源源码学习

1. 资源介绍 功能:使用qt在画板上绘制各种形状,并保持绘制内容到xml文件中。 项目源码:https://github.com/egan2015/qdraw 软件界面: 1.1 支持shape 6种 1.2 支持的功能 6种,分别是对绘制的图形进行撤销undo,重做redo,裁剪,复制,粘贴,删除功能。 2. 总体类图关系 总体分割3个独立块。 2.1