2016-07-05 1 views
0

ggplot2로 만든 slighlty complex looking plot이 있습니다. X 축은 각 점의 이름을 가지며 Y 축은 그 값을가집니다. geom_point를 사용하여이를 나타냅니다. 플롯의 각 점마다 오차 막대를 추가했습니다.ggolot의 hline에 대한 오류 막대

이제 다른 선 종류가있는 geom_hline을 사용하여이 데이터의 샘플을 나타내는 플롯을 겹쳤습니다. 첫 번째와 다른 데이터 프레임이지만 X 축과 Y 축을 공유합니다. 이 hlines의 편차를 보여주고 싶습니다. 그리고 hlines의 편차를 묘사하는 방법에 대한 영감을 찾고 있습니다.

오류 막대를 추가하려고했지만 Xaxis에 추가 샘플로 표시되는데 이상적이지 않습니다. 처음에는 실현 가능한 아이디어입니까?

이것은 hlines로 보이는 방식으로, 오류 막대는 X 축의 추가 점으로 표시됩니다. enter image description here

편집 : 코드의 코드 조각은

p <- ggplot(df_sample_dots, aes(x=Names, y=Values), show.legend = TRUE) + geom_point(size=5, aes(color=factor(Names))) + 
     geom_errorbar(aes(ymin=Values-dev, ymax=Values+dev), width=.2, position=position_dodge(.9), color="black") 

p <- p + geom_hline(aes(yintercept=Values, linetype=Names), data=df_sample_hlines, show.legend = TRUE, color="black") + 
     geom_errorbar(aes(ymin=Values-dev, ymax=Values+dev), data = df_sample_hlines, color="thistle4", width=1, size=1) 
+0

"이 hlines의 편차 표시"란 무엇을 의미합니까? – bouncyball

+0

편차는 h 최소값과 최대 값을 의미합니다. hline은 중간 값입니다. – sigmabeta

답변

1

어떻게 이런 일에 대해 비슷한 사람이 노력하고 뭔가 영감의 역할을하는 경우 :

library(ggplot2) 
library(dplyr) 

set.seed(12345) 

toPlot <- 
    data.frame(
    group = factor(sample(LETTERS[1:10],1000,TRUE)) 
) %>% 
    mutate(value = rnorm(1000) + 
      as.numeric(group)/10) 

basePlot <- 
    ggplot(toPlot) + 
    stat_summary(aes(x = group 
        , y = value) 
       , fun.data = mean_cl_normal) + 
    theme_minimal() 

basePlot 

lineAdd <- 
    data.frame(
    x = range(as.numeric(toPlot$group)) + c(-.5,.5) 
    , ymax = 1.2 
    , ymin = 0.8 
) 

basePlot + 
    geom_ribbon(
    data = lineAdd 
    , mapping = aes(x = x 
        , ymax = ymax 
        , ymin = ymin) 
    , col = "light gray" 
    , alpha = 0.2 
) + 
    geom_hline(yintercept = 1) 

당신은 여전히 ​​필요 수동으로 각 행을 추가하고 (리본에 대한 데이터를 생성합니다), 그 입력 데이터 세트가 일관성이 있다면 그 데이터를 자동화 할 수 있습니다 .

enter image description here

+0

고마워요, 이걸 시험 중입니다. 리본은 좋은 생각입니다. 나는 계속 너를 게시 할 것이다. – sigmabeta

+0

Mark, 필자는 특정 상황에서 리본이 그래프의 가독성을 떨어 뜨린다는 것을 알았습니다. 때로는 최대 5 개의 수평선이 있었기 때문에 때로는 최대 5 개까지 가끔씩 나타납니다. x 축에 추가 점으로 표시된다는 사실과 함께 살아갑니다. 아이디어에 감사드립니다. 영감을주었습니다. – sigmabeta

+0

수평선이 하나만있는 경우 geom_ribbon이이 경우 최소값과 최대 값을 표현하는 가장 좋은 방법이기 때문에 답을 수락했습니다. – sigmabeta

관련 문제