Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Gnuplot来自样本的多个箱线图_R_Gnuplot_Boxplot - Fatal编程技术网

R Gnuplot来自样本的多个箱线图

R Gnuplot来自样本的多个箱线图,r,gnuplot,boxplot,R,Gnuplot,Boxplot,为了快速可视化测量值之间的差异,我想使用gnuplot绘制两个(稍后是多个)组合在一个图中的箱线图。 基本上,我想将每次测量的结果(最小第一次测量的平均值,最大第三次测量的平均值)可视化。 我的“数据文件”中的每一列都代表测量的样本。 我的数据如下表所示: A B C D 1.008 1.008 . . 0.909 0.909 . . 0.975 0.975 2.647 2.647 6.530 1.901 1.819 0.9

为了快速可视化测量值之间的差异,我想使用gnuplot绘制两个(稍后是多个)组合在一个图中的箱线图。 基本上,我想将每次测量的结果(最小第一次测量的平均值,最大第三次测量的平均值)可视化。
我的“数据文件”中的每一列都代表测量的样本。
我的数据如下表所示:

    A      B    C D
    1.008 1.008 . .
    0.909 0.909 . .
    0.975 0.975
    2.647 2.647
    6.530 1.901
    1.819 0.909
    1.819 0.909
    2.695 0.909
    0.529 0.529
    0.964 0.964
    2.728 0.909
    1.819 0.909
    4.133 1.108
   11.275 6.133
    5.920 5.920
        .     .
我希望它看起来像一个 但是,我无法让演示正常工作,因为他们似乎使用第三列将一个方框图向右滑动,但我并不真正理解这是如何工作的。
为了澄清,在R中,我会这样做:

    par(mfrow=c(1,3))
    b1 <- boxplot(datafile$A)
    b2 <- boxplot(datafile$B)
    b3 <- boxplot(datafile$C)
par(mfrow=c(1,3))

b1在示例中,他们使用固定的数字来设置每个箱线图:

plot 'data.txt' using (0):1 with boxplot
在x值
0
处的第一列中绘制数据。对于两个地块,相应地:

set style data boxplot
plot 'data.txt' using (0):1, '' using (1):2
Gnuplot无法自动确定列数,但您可以实现以下某种自动化:

file = 'data.txt'
header = system('head -1 '.file);
N = words(header)

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

set style data boxplot
unset key
plot for [i=1:N] file using (i):i
如果我复制您显示的两列,并用
abcd
标记它们,我将用gnuplot 4.6.3获得以下绘图:


如您所见,不考虑异常值。要隐藏异常值,请使用
设置样式箱线图nooutliers

我也遇到了同样的问题,并找到了原因。如果在您的数据集中多次有一个离群值,那么gnuplot会将它们绘制成一条直线,从而生成一个类似于您所显示的图形

显然,您无法避免它或抑制附加值。您可以做的是告诉gnuplot以这样的方式使用胡须,它们也标记最大值和最小值。根据维基百科的说法,这是使用胡须的一种替代方法。我不知道它是否适合你的阴谋,但它通过绕过它来解决问题


我不确定我是否能帮助您,但可能有人会发现它很有用,甚至可以提出一种方法来删除异常值的附加点。

非常感谢您的帮助。然而,现在我有一个问题,太多的“离群值”。请看一下我的编辑。所有数据点都包含在平均值和四分位数计算中,离群值是指晶须区域以外的点。您可以更改胡须大小,例如使用
设置样式箱线图0.95
,请参见
文档样式箱线图
。但仍然有一些奇怪的地方:在我的脚本中,您必须在一条垂直线上获取所有点,因为一列的所有点的x位置都是固定的。