2017-03-07 95 views
0

比较各组我有以下数据帧创建棒棒糖图表中GGPLOT2

library(ggplot2) 

set.seed(149) 

x <- data.frame(
    region = factor(rep(1:10, each = 2)), 
    group = rep(c("O", "E"), 10), 
    mean = sample(1:2, 20, replace = TRUE) 
) 

x 

    region group mean 
1  1  O 2 
2  1  E 1 
3  2  O 1 
4  2  E 2 
5  3  O 1 
6  3  E 1 
7  4  O 1 
8  4  E 1 
9  5  O 1 
10  5  E 2 
11  6  O 2 
12  6  E 2 
13  7  O 1 
14  7  E 1 
15  8  O 1 
16  8  E 1 
17  9  O 1 
18  9  E 2 
19  10  O 1 
20  10  E 1 

我试图创建一个棒棒糖图表,所以可以使每个区域之间的简单比较(无论是“O”或'E')。我会制作一个哑铃情节,但该地区的很多团体都是相同的,所以哑铃情节最终看起来很像一个点状情节。

这里是我迄今为止...

ggplot(x, aes(y = region, x = mean, label = mean, fill = group, colour = group)) + 
    geom_segment(aes(x = 0, y = region, xend = mean, yend = region), color = "grey50", size = 0.75) + 
    geom_point(size = 3) + 
    geom_text(nudge_x = 1.5, angle = -45) 

enter image description here

基本上,每一个区域,我想绘制两条线,一条为组“O”,一个用于集团E.”

+1

有一个在一个'geom_lollipop' ggalt包。 –

回答

1

我们可以通过使用geom_linerange(以下简称 “大棒”),geom_point( “糖果”),并通过指定position = position_dodge做到这一点:

ggplot(x)+ 
    geom_linerange(aes(x = region, ymin = 0, ymax = mean, colour = group), 
        position = position_dodge(width = 1))+ 
    geom_point(aes(x = region, y = mean, colour = group), 
       position = position_dodge(width = 1))+ 
    coord_flip() 

enter image description here