ggplot2:创建带有单独观察值的盒子和晶须图

时间:2018-06-25 07:31:01

标签: r ggplot2 boxplot

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

    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创建了箱形图

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

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

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

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

myplot + geom_point(position = "dodge")

但这不起作用...

有什么主意吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一种可能的方法:

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)

enter image description here

如果不希望填充点,则应在对fill的调用中将aesggplot中删除(这样它就不会被所有图层继承)并放入在geom_boxplot层中添加分组变量,然后向geom_dotplot添加分组变量(在这种情况下,分组是通过Face_typePart的交互作用来定义的。

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

enter image description here

要点相同:

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

enter image description here

数据:

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