ggplot2:创建带有单独观察值的方格和晶须图 [英] ggplot2: create a box and whiskers plot with individual observations

查看:57
本文介绍了ggplot2:创建带有单独观察值的方格和晶须图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在绘制各个观察结果时遇到问题.这些是我的数据:

I am having problems to plot the individual observations. These are my data:

    Subject Part    Face_type   Microvolts
1   First Half  AF  -2.029166667
2   First Half  AF  -1.76
3   First Half  AF  -3.788333333
4   First Half  AF  -2.691666667
5   First Half  AF  0.335833333
6   First Half  AF  -4.719166667
7   First Half  AF  -0.920833333
8   First Half  AF  -1.719166667
9   First Half  AF  -6.115
10  First Half  AF  -0.4175
11  First Half  AF  -0.855833333
12  First Half  AF  0.1925
13  First Half  AF  -1.485833333
14  First Half  AF  -1.9475
15  First Half  AF  -0.790833333
16  First Half  AF  0.176666667
17  First Half  AF  -0.261666667
18  First Half  AF  -4.4275
1   Second Half AF  0.236666667
2   Second Half AF  -0.908333333
3   Second Half AF  -3.4925
4   Second Half AF  -3.7675
5   Second Half AF  -0.541666667
6   Second Half AF  -4.305
7   Second Half AF  -0.949166667
8   Second Half AF  -1.468333333
9   Second Half AF  -6.129166667
10  Second Half AF  -0.174166667
11  Second Half AF  -0.7575
12  Second Half AF  0.904166667
13  Second Half AF  -1.7625
14  Second Half AF  -2.234166667
15  Second Half AF  0.159166667
16  Second Half AF  0.474166667
17  Second Half AF  -1.435833333
18  Second Half AF  -4.614166667
1   First Half  TF  -0.81
2   First Half  TF  -1.419166667
3   First Half  TF  -2.945833333
4   First Half  TF  -1.939166667
5   First Half  TF  -0.000833333
6   First Half  TF  -3.699166667
7   First Half  TF  -1.020833333
8   First Half  TF  -0.878333333
9   First Half  TF  -5.41
10  First Half  TF  -0.2225
11  First Half  TF  -0.9775
12  First Half  TF  1.238333333
13  First Half  TF  -1.401666667
14  First Half  TF  -1.419166667
15  First Half  TF  -0.104166667
16  First Half  TF  0.4925
17  First Half  TF  -0.193333333
18  First Half  TF  -4.061666667
1   Second Half TF  -0.718333333
2   Second Half TF  -0.394166667
3   Second Half TF  -3.339166667
4   Second Half TF  -2.948333333
5   Second Half TF  -0.8475
6   Second Half TF  -4.2675
7   Second Half TF  -1.389166667
8   Second Half TF  -1.228333333
9   Second Half TF  -5.849166667
10  Second Half TF  -0.286666667
11  Second Half TF  -1.106666667
12  Second Half TF  0.520833333
13  Second Half TF  -1.615
14  Second Half TF  -1.583333333
15  Second Half TF  -0.500833333
16  Second Half TF  0.099166667
17  Second Half TF  -1.973333333
18  Second Half TF  -4.194166667
1   First Half  FF  -1.139166667
2   First Half  FF  -1.461666667
3   First Half  FF  -3.603333333
4   First Half  FF  -2.691666667
5   First Half  FF  0.97
6   First Half  FF  -3.825
7   First Half  FF  -1.723333333
8   First Half  FF  -1.726666667
9   First Half  FF  -6.478333333
10  First Half  FF  -0.664166667
11  First Half  FF  -0.856666667
12  First Half  FF  0.865833333
13  First Half  FF  -1.7675
14  First Half  FF  -1.761666667
15  First Half  FF  0.215833333
16  First Half  FF  0.409166667
17  First Half  FF  0.215833333
18  First Half  FF  -3.9975
1   Second Half FF  -0.809166667
2   Second Half FF  -1.581666667
3   Second Half FF  -3.0475
4   Second Half FF  -3.82
5   Second Half FF  0.370833333
6   Second Half FF  -4.259166667
7   Second Half FF  -1.445833333
8   Second Half FF  -1.485
9   Second Half FF  -6.015833333
10  Second Half FF  -0.145833333
11  Second Half FF  -1.303333333
12  Second Half FF  0.754166667
13  Second Half FF  -2.01
14  Second Half FF  -1.814166667
15  Second Half FF  0.336666667
16  Second Half FF  0.883333333
17  Second Half FF  -0.948333333
18  Second Half FF  -3.219166667
1   First Half  OF  -1.2525
2   First Half  OF  -1.6125
3   First Half  OF  -4.205
4   First Half  OF  -3.615
5   First Half  OF  0.1075
6   First Half  OF  -4.215
7   First Half  OF  -1.554166667
8   First Half  OF  -1.780833333
9   First Half  OF  -5.699166667
10  First Half  OF  -1.0875
11  First Half  OF  -0.975
12  First Half  OF  0.434166667
13  First Half  OF  -2.2
14  First Half  OF  -2.100833333
15  First Half  OF  -0.441666667
16  First Half  OF  0.373333333
17  First Half  OF  -0.549166667
18  First Half  OF  -5.225
1   Second Half OF  -0.935833333
2   Second Half OF  -1.391666667
3   Second Half OF  -3.8125
4   Second Half OF  -4.176666667
5   Second Half OF  -0.864166667
6   Second Half OF  -3.763333333
7   Second Half OF  -1.315
8   Second Half OF  -2.039166667
9   Second Half OF  -5.764166667
10  Second Half OF  -0.690833333
11  Second Half OF  -1.395833333
12  Second Half OF  0.755833333
13  Second Half OF  -1.914166667
14  Second Half OF  -2.210833333
15  Second Half OF  -0.945
16  Second Half OF  0.799166667
17  Second Half OF  -1.628333333
18  Second Half OF  -4.909166667

我已经使用ggplot2创建了箱形图

I have created a boxplot using ggplot2

myplot <- ggplot(dataM, aes(Part, Microvolts, fill = Face_type)) + geom_boxplot()

我想为两个部分的每个face_type添加单独的分数.为此,我使用

I want to add the individual scores for each face_type for both parts. For that I am using

myplot + geom_dotplot(binaxis='y', stackdir='center',dotsize = .5,fill="black")

但是,这些点按不同类别分组.我也尝试过使用

However, the points are grouped by the different categories. I have also tried using

myplot + geom_point(position = "dodge")

但这不起作用...

有什么主意吗?

谢谢!

推荐答案

以下是一种可能的方法:

Here is a possible approach:

ggplot(df, aes(Part,
               Microvolts,
               fill = Face_type)) +
  geom_boxplot() +
  geom_dotplot(binaxis = 'y',
               stackdir = 'center',
               dotsize = .5,
               position = position_dodge(width = 0.75)) #define position, I found the width by trying several different values (I believe the last time I did this it was 0.9)

如果您不希望填充点,则应在对 ggplot 的调用中从 aes 中删除 fill 而不是被所有图层继承)并将其放在 geom_boxplot 图层中,并向 geom_dotplot 添加分组变量(在这种情况下,分组是通过的交互作用定义的Face_type Part .

If you want the dots not to be filled then you should remove the fill from aes in the call to ggplot (so it is not inherited by all the layers) and put it in geom_boxplot layer, and add a grouping variable to geom_dotplot (in this case the grouping is defined by the interaction of Face_type and Part.

ggplot(df, aes(x = Part,
               y = Microvolts)) +
  geom_boxplot(aes(fill = Face_type)) +
  geom_dotplot(aes(group = interaction(Face_type, Part)),
               binaxis = 'y',
               stackdir = 'center',
               dotsize = .5,
               position = position_dodge(width = 0.75))

要点相同:

ggplot(df, aes(Part,
               Microvolts,
               fill = Face_type)) +
  geom_boxplot() +
  geom_point(position = position_dodge(width = 0.75))

数据:

structure(list(Subject = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 
10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 
15L, 16L, 17L, 18L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 1L, 2L, 3L, 4L, 5L, 6L, 
7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 1L, 
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 
16L, 17L, 18L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 13L, 14L, 15L, 16L, 17L, 18L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L), Part = c("FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", "FirstHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", "SecondHalf", 
"SecondHalf", "SecondHalf", "SecondHalf"), Face_type = c("AF", 
"AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", 
"AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", 
"AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", "AF", 
"AF", "AF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", 
"TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", 
"TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", "TF", 
"TF", "TF", "TF", "TF", "TF", "FF", "FF", "FF", "FF", "FF", "FF", 
"FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", 
"FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", 
"FF", "FF", "FF", "FF", "FF", "FF", "FF", "FF", "OF", "OF", "OF", 
"OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", 
"OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", 
"OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF", "OF"
), Microvolts = c(-2.029166667, -1.76, -3.788333333, -2.691666667, 
0.335833333, -4.719166667, -0.920833333, -1.719166667, -6.115, 
-0.4175, -0.855833333, 0.1925, -1.485833333, -1.9475, -0.790833333, 
0.176666667, -0.261666667, -4.4275, 0.236666667, -0.908333333, 
-3.4925, -3.7675, -0.541666667, -4.305, -0.949166667, -1.468333333, 
-6.129166667, -0.174166667, -0.7575, 0.904166667, -1.7625, -2.234166667, 
0.159166667, 0.474166667, -1.435833333, -4.614166667, -0.81, 
-1.419166667, -2.945833333, -1.939166667, -0.000833333, -3.699166667, 
-1.020833333, -0.878333333, -5.41, -0.2225, -0.9775, 1.238333333, 
-1.401666667, -1.419166667, -0.104166667, 0.4925, -0.193333333, 
-4.061666667, -0.718333333, -0.394166667, -3.339166667, -2.948333333, 
-0.8475, -4.2675, -1.389166667, -1.228333333, -5.849166667, -0.286666667, 
-1.106666667, 0.520833333, -1.615, -1.583333333, -0.500833333, 
0.099166667, -1.973333333, -4.194166667, -1.139166667, -1.461666667, 
-3.603333333, -2.691666667, 0.97, -3.825, -1.723333333, -1.726666667, 
-6.478333333, -0.664166667, -0.856666667, 0.865833333, -1.7675, 
-1.761666667, 0.215833333, 0.409166667, 0.215833333, -3.9975, 
-0.809166667, -1.581666667, -3.0475, -3.82, 0.370833333, -4.259166667, 
-1.445833333, -1.485, -6.015833333, -0.145833333, -1.303333333, 
0.754166667, -2.01, -1.814166667, 0.336666667, 0.883333333, -0.948333333, 
-3.219166667, -1.2525, -1.6125, -4.205, -3.615, 0.1075, -4.215, 
-1.554166667, -1.780833333, -5.699166667, -1.0875, -0.975, 0.434166667, 
-2.2, -2.100833333, -0.441666667, 0.373333333, -0.549166667, 
-5.225, -0.935833333, -1.391666667, -3.8125, -4.176666667, -0.864166667, 
-3.763333333, -1.315, -2.039166667, -5.764166667, -0.690833333, 
-1.395833333, 0.755833333, -1.914166667, -2.210833333, -0.945, 
0.799166667, -1.628333333, -4.909166667)), class = "data.frame", row.names = c(NA, 
-144L))

这篇关于ggplot2:创建带有单独观察值的方格和晶须图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆