2017-05-07 1 views
3

geom_point와 결합 된 수평 오류 막대를 그리기 위해 ggplot2를 사용하려고합니다. 데이터 쌍이 상당히 겹치고 내용을 읽기 어려워지기 때문에 나는 그것을 피하고 싶습니다.ggplot2 - 점이있는 수평 오류 막대를 피하십시오

DF = structure(list(co2 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L), .Label = "dynamic", class = "factor"), exp = structure(c(1L, 
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L), .Label = c("co2-only", 
"co2+clim"), class = "factor"), scen = structure(c(1L, 1L, 1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("RCP4.5", "RCP8.5" 
), class = "factor"), period = structure(c(3L, 2L, 1L, 3L, 2L, 
1L, 3L, 2L, 1L, 3L, 2L, 1L), .Label = c("Far", "Mid", "Near"), class = "factor"), 
    diff = c(17.2365731737695, 26.4441581724835, 28.3046571086343, 
    10.9818121922444, 21.1489829889248, 23.2735969240078, 18.5394616803628, 
    31.3448949866531, 40.5106852239608, 12.3873574664227, 26.3689618723312, 
    35.496171693588), xmax = c(18.8124771827038, 28.9759447727868, 
    31.0652093173619, 12.3199261323593, 23.475705388954, 25.8961613764267, 
    20.2426673616039, 34.5926118964219, 46.2762097135733, 13.7655268458833, 
    29.4663164862106, 41.2153266045579), xmin = c(15.6606691648352, 
    23.9123715721803, 25.5441048999066, 9.64369825212946, 18.8222605888956, 
    20.6510324715888, 16.8362559991217, 28.0971780768843, 34.7451607343482, 
    11.0091880869622, 23.2716072584518, 29.7770167826181)), .Names = c("co2", 
"exp", "scen", "period", "diff", "xmax", "xmin"), row.names = c(NA, 
-12L), class = "data.frame") 

ggplot(DF, aes(x=diff, y=period, colour=scen, fill=exp)) + 
    geom_point(position=position_dodge(width=0.3), size=4) + 
    geom_errorbarh(aes(xmin=xmin, xmax=xmax), position = position_dodge(0.3), height=0.1) + 
    theme_bw(base_size=16) 

그것은 이미지를 생성합니다 :

enter image description here

을하지만,이 경고 메시지가 발생합니다 :

Warning messages: 
1: position_dodge requires non-overlapping x intervals 
2: position_dodge requires non-overlapping x intervals 

나는 쌍에 약간의 닷징을 추가 할을 아래의 예를 참조하십시오 겹치는 것을 방지하기 위해 점 + 오차 막대.

내가 뭘 잘못하고 있니? 귀하의 예 (geom_errorbarh 특정 일 수) 작동하지 않는 이유

답변

2

는 잘 모르겠어요,하지만 어쩌면이 도움이 될 수 :

ggplot(DF, aes(y=diff, x=period, colour=scen, fill=exp)) + 
    geom_point(position=position_dodge(width=0.3), size=4) + 
    geom_errorbar(aes(ymin=xmin, ymax=xmax), position = position_dodge(0.3)) + 
    theme_bw(base_size=16) + coord_flip() 

난 그냥 수직 오차 막대에 기하 구조를 변경하고 coord_flip을 사용 . enter image description here

+0

답변이 내 문제를 해결했습니다. 고맙습니다. – thiagoveloso

관련 문제