2016-03-22 56 views
0

我試圖在兩個組中使用不同顏色的圖。我爲2組(mfin和ffin)在一段時間內創建了比值比(包括95%CI)的陰謀。當使用下面的語法時,所有的點和線都是黑色的,我試圖調整它們,例如geom_linerange(colour=c("red","blue"))失敗(錯誤:設置美學的顏色不兼容)。使用組的ggplot2中的不同顏色

enter image description here

誰能幫助我?

ggplot(rbind(data.frame(mfin, group=mfin), data.frame(ffin, group=ffin)), 
      aes(x = JAAR, y = ror, ymin = llror, ymax = ulror)) + 
geom_linerange() + 
geom_point() + 
geom_hline(yintercept = 1) + 
ylab("Odds ratio & 95% CI") + 
xlab("") + 
geom_errorbar(width=0.2) 

下面是一些示例數據(第一組= MFIN,@ND GROUP + FFIN)

JAAR ROR llror ulror

2008 2.00 1.49 2.51

2009 2.01 1.57 2.59

2010 2.06 1.55 2.56

2011 2.07 1.56 2.58

2012 2.19 1.70 2.69

2013 2.23 1.73 2.72

2014 2.20 1.71 2.69

2015 2.31 1.84 2.78

2016 0.230 1.83 2.76

JAAR ROR llror ulror

2008 1.36 0.88 1.84

2009年1.20 0.73 1.68

2010 1.16 0.68 1.64

2011 1.23 0.77 1.69

2012 1.43 1.00 1.86

2013 1.46 1.04 1.88

2014 1.49 1.07 1.90

2015 1.30 0.89 1.70

2016 1.29 0.89 1.70

+1

你能提供一些樣本數據? –

+0

歡迎來到Stack Overflow! [如何製作一個很好的R可重現的例子?](http:// stackoverflow。com/questions/5963269) – zx8754

+0

它沒有示例代碼很難,但你嘗試添加顏色=組到aes字符串? –

回答

2

您需要映射組成員變量的color審美(在版本的數據):

library(readr) 
library(dplyr) 
library(ggplot2) 

# simulate some data 
year_min = 1985 
year_max = 2016 
num_years = year_max - year_min + 1 
num_groups = 2 
num_estimates = num_years*num_groups 

df_foo = data_frame(
    upper_limit = runif(n = num_estimates, min = -20, max = 20), 
    lower_limit = upper_limit - runif(n = num_estimates, min = 0, max = 5), 
    point_estimate = runif(num_estimates, min = lower_limit, max = upper_limit), 
    year = rep(seq(year_min, year_max), num_groups), 
    group = rep(c("mfin", "ffin"), each = num_years) 
) 

# plot the confidence intervals 
df_foo %>% 
    ggplot(aes(x = year, y = point_estimate, 
      ymin = lower_limit, ymax = upper_limit, 
      color = group)) + 
    geom_point() + 
    geom_errorbar() + 
    theme_bw() + 
    ylab("Odds Ratio & 95% CI") + 
    xlab("Year") + 
    scale_color_discrete(name = "Group") 

這會產生什麼,我認爲你是尋找,除了模擬數據使它看起來有點凌亂:

enter image description here