如何在 gnuplot 中对箱线图异常值进行分组

2023-12-13

我有大量数据点。我尝试用箱线图绘制它们,但一些异常值是完全相同的值,并且它们表示在彼此旁边的一条线上。我发现如何设置gnuplot箱线图中异常值之间的水平距离,但这并没有太大帮助,因为这显然是不可能的。

是否可以将异常值分组在一起,打印一个点,然后在其旁边的括号中打印一个数字以指示有多少个点?我认为这会使图表更具可读性。

作为参考,我在一张图中绘制了 1 个 x 值和 6 个 x 值的三个箱线图。我正在使用 gnuplot 5 并且已经使用了点大小,这不再减少距离。 我希望你能帮忙!

Edit:

set terminal pdf
set output 'dat.pdf'
file0 = 'dat1.dat'
file1 = 'dat2.dat'
file2 = 'dat3.dat'
set pointsize 0.2
set notitle
set xlabel 'X'
set ylabel 'Y'
header = system('head -1 '.file0);
N = words(header)

set xtics ('' 1)
set for [i=1:N] xtics add (word(header, i) i)

set style data boxplot
plot file0 using (1-0.25):1:(0.2) with boxplot lw 2 lc rgb '#8B0000' fs pattern 16 title 'A'
plot file1 using (1):1:(0.2) with boxplot lw 2 lc rgb '#00008B' fs pattern 4 title 'B'
plot file2 using (1+0.25):1:(0.2) with boxplot lw 2 lc rgb '#006400' fs pattern 5 title 'C'
for [i=2:N] plot file0 using (i-0.25):i:(0.2) with boxplot lw 2 lc rgb '#8B0000' fs pattern 16 notitle
for [i=2:N] plot file1 using (i):i:(0.2) with boxplot lw 2 lc rgb '#00008B' fs pattern 4 notitle
for [i=2:N] plot file2 using (i+0.25):i:(0.2) with boxplot lw 2 lc rgb '#006400' fs pattern 5 notitle

使用此代码实现它的最佳方法是什么?


没有选项可以自动完成此操作。在 gnuplot 中手动执行此操作所需的步骤是:

(在下面我假设数据文件data.dat只有一列。)

  1. 分析您的数据stats确定异常值的边界:

    stats 'data.dat' using 1
    range = 1.5 # (this is the default value of the `set style boxplot range` value)
    lower_limit = STATS_lo_quartile - range*(STATS_up_quartile - STATS_lo_quartile)
    upper_limit = STATS_up_quartile + range*(STATS_up_quartile - STATS_lo_quartile)
    
  2. 仅计算异常值并将其写入临时文件

    set table 'tmp.dat'
    plot 'data.dat' using 1:($1 > upper_limit || $1 < lower_limit ? 1 : 0) smooth frequency
    unset table
    
  3. 绘制没有异常值的箱线图,以及有异常值的箱线图labels绘图风格:

    set style boxplot nooutliers
    plot 'data.dat' using (1):1 with boxplot,\
         'tmp.dat' using (1):($2 > 0 ? $1 : 1/0):(sprintf('(%d)', int($2))) with labels offset 1,0 left point pt 7
    

这需要对每个箱线图完成。

免责声明:这个过程应该基本上可以工作,但是没有示例数据,我无法测试它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 gnuplot 中对箱线图异常值进行分组 的相关文章

  • 如何将轴移动到图表中心?

    我需要在原点位于屏幕中心 或中心附近的某个位置 但不一定在中心 的坐标系上绘制一个函数 并且我需要绘制轴 以便它们在原点交叉 轴也应该有标签和抽动以及箭头 我不知道如何有效地做到这一点 到目前为止 在我的代码中 我手动设置了抽动的偏移量 并
  • Macos 上输出中的 gnuplot pdfcairo 未命名 Type 3 字体

    带有 pdfcairo 终端的 Gnuplot 似乎在字体方面给出了奇怪的行为 其中生成的 pdf 具有未命名的 Type 3 字体 以下是 pdffonts 在输出 pdf 文件上的输出 name type encoding emb su
  • 如何创建具有不同 bin 宽度的直方图

    我对其他使用历史情节的人没有成功 一个简单的问题是使用以下数据 age range frequency central band width bin width height respectively 1 4 30 2 5 3 10 5 6
  • gnuplot 与 iOS

    这里有人有在 iOS 上使用 gnuplot 的经验吗 我想在 iOS 设备上开发一个科学计算应用程序 并想使用 gnuplot 作为绘图引擎 有什么好的教程可以让我开始学习吗 我有同样的一般问题 快速的谷歌搜索让我找到了以下应用程序 它似
  • Gnuplot:将按行和命名的数据绘制为不同颜色和标题的线束

    我正在尝试绘制当前存储的一组图表 我的文件 txt ID01 1 2 3 4 5 ID02 3 4 5 6 7 8 9 ID03 4 3 1 2 3 4 例如 有一行标题为 ID01 仅显示第一行 另一行标题为 ID02 依此类推 如果线条
  • 如何在 matplotlib 中通过彩虹设置箱线图颜色

    我想创建数据箱线图进行比较 我的图看起来像 我怎样才能添加颜色 您可以为以下框着色这个例子 https matplotlib org examples statistics boxplot color demo html 除此之外 您还需要
  • python中连接数据点的线的箱线图

    我试图根据与点相关的特定关系来连接线 在此示例中 线条将连接玩家所在的球场 我可以创建基本结构 但还没有找到一种相当简单的方法来创建此附加功能 import pandas as pd import numpy as np import ma
  • 为多个组生成不同颜色的 ggplot2 箱线图

    我对 R 和 ggplot 相当陌生 我正在尝试生成按两个变量排序的箱线图 就我而言 物种和实验 到目前为止我通过使用得到了什么 ggplot DF aes Species Protein fill Experiment dodge Exp
  • R 并排分组箱线图

    我有两种植物气体排放的时间数据 这两种植物都经过了相同的处理 和一些以前的帮助 https stackoverflow com questions 23848186 unify boxplot factor group colours 23
  • Gnuplot脚本创建后消失

    我有一个 gnuplot 脚本 我的系统是ubuntu 14 04 当我在终端输入gnuplot myPlot 剧情将会消失 它不会保留在屏幕上 我在这个堆栈中看到了类似的question https stackoverflow com q
  • 如何在 gnuplot 中设置时区?

    我有一个简单的 gnuplot 命令文件 set xdata time set timefmt s set format x H M 其中 x 时间戳列 结果 UTC 格式的时间 我可以更改 x 轴的本地时区吗 今天刚刚在文档中发现了这一点
  • 如何在gnuplot中绘制带有彩色边框的矩形

    我想在我的图中画一个空矩形 到目前为止我有 set style rect back fs empty border lt 3 set object 1 rect from 1 1 to 2 2 我有一个带有虚线的矩形 如何更改线条的颜色 l
  • gnuplot 动画 2D 矢量场

    我正在尝试使用 gnuplot 制作 2D 矢量动画 我想显示一行 即一次显示一个向量 我的数据结构如下 它们x y u v 2 24448 0 270645 1 00 1 00 3 24448 0 270645 0 500 1 20 我可
  • 在单个图中,由“标签”列分割的所有列的箱线图

    看着箱线图 API 页面 http seaborn pydata org generated seaborn boxplot html seaborn boxplot 我想要看起来像这样的组合的东西 gt gt gt iris sns lo
  • 尝试绘制单个值时出现奇怪的行为

    我正在使用以下 Gnuplot 脚本 Definitions a 0 3 s0 10 s1 9 999 r1u x exp x 1 a a exp x 1 exp x 3 r2u x exp x 1 exp x 1 a a exp x 1
  • 如何从 Perl 调用 gnuplot 脚本

    我有一个 gnu gp 文件 grphist conf set terminal canvas Terminal type set to canvas Options are solid butt size 600 400 fsize 10
  • gnuplot 中的 output.png 不如提示 shell 中的图好

    我经常绘制图表gnuplot提示 shell 如下所示 gunuplot gt plot sin x with linespoints pointtype 3 出现的数字很棒 今天 我将图表保存在 png文件 像这样 gnuplot gt
  • R:为什么 boxplot(x,log="y") 与 boxplot(log(x)) 不同?

    delme lt exp rnorm 1000 1 5 0 3 boxplot delme log y boxplot log10 delme 为什么这两个图中的胡须不同 谢谢 阿古斯 我想说的是 在您的第一个图中 您只是将 y 轴更改为对
  • 如何在 gnuplot 中绘制导入数据的函数?

    如果我有一个包含多个数据点的文件 我怎样才能绘制它们的函数 例如 假设我有一个 to columns 的文件x and y我想绘制sin y 作为一个函数1 x 尝试这个 plot u 1 1 sin 2 w l 2 00000 0 161
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a

随机推荐

  • “ASN1 损坏了数据。”替换公钥但不替换私钥时出错

    学习使用 RSA 签名的机制 我有一个可以在下面运行的代码块 var privateRSAKey File ReadAllText RSAPrivateKey txt Trim Regex privateRSAKeyRegex new Re
  • 关于 ruby​​ 中“获取”的问题[重复]

    这个问题在这里已经有答案了 我想知道为什么当我尝试获取不同的输入时 它会忽略我的第二个输入 usr bin env ruby Class Definitions class Animal attr accessor type weight
  • 检测设备会话何时过期

    我想使用 devise 来记录用户会话何时超时 timeoutable 眼下 timeoutable正在按预期工作 并在指定的不活动时间后将用户重定向到登录页面 但除此之外 我们还希望在发生这种情况时进行记录 以帮助优化我们的超时期限 显然
  • Composer 中的自动增量字段

    创建 Asset 实例时是否有可用的 auto increment 字段类型 例如 资产 ID 应该是自动生成的字段 并且应该在运行时创建 而不是在应用程序级别提及该值 我可以通过创建一个交易处理器函数来检查资产列表并添加 1 作为替代方案
  • 通过 svg 路径滚动移动图像

    我想通过滚动上的 svg 路径移动对象 我试图将滚动上的部分路径添加到路径中 但它仍然不起作用 救命 https jsfiddle net YuriiBielozertsev Ltx9ed0L
  • ColdFusion 表单中的复选框

    我的代码如下 页面加载时 我需要默认选中这两个复选框 这将显示查询的结果 现在 当取消选中其中一个复选框时 需要提交表单并需要显示不同的查询结果 即使我取消选中复选框 这些复选框也始终会被选中 有人可以在这里指导我吗
  • 如何在java spring boot中将字节数组作为内存文件返回?

    我有一个字节数组作为数据 现在 如何使用 Spring Boot 编写一个控制器方法来将此字节数组作为文件返回 如果我用这个字节数组数据创建一个文件 那么我还应该删除它 对吗 有没有办法将此字节数组作为文件发送 而不必在我的项目中物理创建文
  • 如何获取相机应用程序的包名

    感谢之前的回复 是否可以获取设备上安装的相机应用程序的包名称 如果操作系统是自定义的 则默认包名称将由设备制造商更改 如何通过编码获取包名 我不确定这是否可能 你尝试过这个吗 PackageManager packman getPackag
  • 将绘图打印/保存为 png 文件,并在 Octave 中出现 alpha 通道问题

    如何将绘图打印 保存为带有 Alpha 通道的 png 文件 I tried 在具有透明背景的 Octave 中保存绘图 我正在使用 Octave 4 2 2 Ubuntu 18 04 64 位和graphics toolkit fltk
  • 通过 python-ldap 使用 Active Directory 中的 unicode 编码字符串

    我已经提出了这个问题 但经过一些测试后 我决定创建一个包含一些更具体信息的新问题 我正在使用 python ldap 和 Python 2 7 从我们的 Active Directory 读取用户帐户 这确实有效 但我对特殊字符有问题 当打
  • 将图像保存到媒体库 WP7

    我无法将图像保存到 Windows Phone 媒体库中 这是我的代码片段 public void SaveImageTo string fileName fileName jpg var myStore IsolatedStorageFi
  • Firestore 中可以使用多少个集合文档对?

    我有一个具有以下架构的应用程序 HOME gt Collection gt Document gt Collection gt Document 和代码 db collection coll doc doc collection subco
  • 元更改事件未触发

    我有一家商店 看起来像这样 Ext define GridGeneral store GridGeneralStore extend Ext data Store model GridGeneral model GridGeneralMod
  • 获取其他收件箱的参考

    我正在使用 Outlook 2007 并且有我的主邮箱 Tait Mark 我还在我的个人资料中添加了另一个邮箱 采购 请求 两者都显示为 Outlook 中的顶级文件夹 邮箱 泰特 马克 gt 对话历史记录 删除的项目 草稿 收件箱 垃圾
  • 在 WCF 中处理图像

    我有一个桌面应用程序 需要通过 TCP 协议向服务计算机上传 下载图像 起初 我将图像存储在文件系统中 但我需要在 MS SQL DB 中比较哪种解决方案更好 图片数量超过五十万 我还不知道照片尺寸是否有限制 如果您曾经这样做过 请写下您对
  • 在 JavaScript 中更改另一个函数中的变量

    我对 JavaScript 还很陌生 并且对变量和函数的一些属性遇到了麻烦 我想要发生的是有一个var在一个函数中定义 在另一个函数中更改值 然后将新值返回到最初定义它的函数 这是我制作的一个简单示例 function getIt var
  • 文本排序顺序的 MIN/MAX

    在 SQL Server 中 MIN 和 MAX 可以作用于不计算为数字的文本 返回具有最低或最高文本排序顺序的文本项 或者如 SQL Server 中所说的 排序顺序 是否可以在 Excel 中执行此操作 而无需使用实际排序的 UDF 例
  • malloc 和 calloc 与 std::string 之间的区别

    我最近开始接触 C 并且在使用 malloc 时遇到了问题 下面的代码不会打印出 成功 程序崩溃 退出代码为 0xC0000005 而如果我使用 calloc 则一切正常 int main std string pointer std st
  • 为什么使用 boost::multi precision::cpp_int 会影响这里的尾调用优化

    我有一些模板化代码 编译器可以对大多数数据类型进行尾部调用优化 但不能对其他数据类型进行尾部调用优化 代码实现了pow template
  • 如何在 gnuplot 中对箱线图异常值进行分组

    我有大量数据点 我尝试用箱线图绘制它们 但一些异常值是完全相同的值 并且它们表示在彼此旁边的一条线上 我发现如何设置gnuplot箱线图中异常值之间的水平距离 但这并没有太大帮助 因为这显然是不可能的 是否可以将异常值分组在一起 打印一个点