несоответствие надписей ggplot2 - PullRequest
0 голосов
/ 25 апреля 2018

Я пытался построить результат модели lsmeans, где в полях указано среднее значение LS. Столбики ошибок показывают 95% доверительный интервал от среднего значения LS, и где средства, разделяющие буквы, существенно не отличаются. Я хотел бы построить следующую таблицу cld.mixed.lme с ggplot2:

dput(cld.mixed.lme)

structure(list(hor = structure(c(3L, 3L, 3L, 1L, 1L, 1L, 2L, 
2L, 2L), .Label = c("L", "F", "H"), class = "factor"), managem = structure(c(1L, 
3L, 2L, 3L, 1L, 2L, 1L, 2L, 3L), .Label = c("WTH", "CH", "CHF"
), class = "factor"), response = c(23.6794086785122, 23.8174295982324, 
24.4481975946679, 27.7814605969773, 28.6059616644958, 28.7459261527063, 
37.1161977750334, 40.0618072489354, 40.062016186989), SE = c(2.47194303396734, 
2.47194303396734, 2.47194303396734, 2.47194303396734, 2.47194303396734, 
2.47194303396734, 2.47194303396734, 2.47194303396734, 2.47194303396734
), df = c(12.8849763292624, 12.8849763292851, 12.8849763290692, 
12.8849763293197, 12.8849763292728, 12.8849763291023, 12.8849763292846, 
12.88497632933, 12.8849763292846), lower.CL = c(15.4642399103678, 
15.602260830088, 16.2330288265235, 19.5662918288329, 20.3907928963513, 
20.5307573845618, 28.901029006889, 31.846638480791, 31.8468474188446
), upper.CL = c(31.8945774466566, 32.0325983663769, 32.6633663628123, 
35.9966293651217, 36.8211304326402, 36.9610949208507, 45.3313665431779, 
48.2769760170799, 48.2771849551334), .group = c("a", "ab", "ab", 
"abc", "abcde", "abd", "bcde", "ce", "de")), .Names = c("hor", 
"managem", "response", "SE", "df", "lower.CL", "upper.CL", ".group"
), row.names = c(8L, 5L, 2L, 6L, 9L, 3L, 7L, 1L, 4L), class = "data.frame")

это выглядит так:

----------------------------------------------------------------------------------
     hor   managem   response    SE      df     lower.CL   upper.CL   .group 
-------- ----- --------- ---------- ------- ------- ---------- ---------- --------
 **8**     H      WTH      23.68     2.472   12.88    15.46      31.89       a    

 **5**     H      CHF      23.82     2.472   12.88     15.6      32.03       ab   

 **2**     H      CH       24.45     2.472   12.88    16.23      32.66       ab   

 **6**     L      CHF      27.78     2.472   12.88    19.57        36       abc   

 **9**     L      WTH      28.61     2.472   12.88    20.39      36.82     abcde  

 **3**     L      CH       28.75     2.472   12.88    20.53      36.96      ab d  

 **7**     F      WTH      37.12     2.472   12.88     28.9      45.33      bcde  

 **1**     F      CH       40.06     2.472   12.88    31.85      48.28      c e   

 **4**     F      CHF      40.06     2.472   12.88    31.85      48.28       de   
--------------------------------------------------------------------------------- 

После запуска следующего кода график отображается правильно, но имеется несоответствие, поскольку буквы .group ложатся на неправильный response. Пример в результирующем графике: под hor = L managem = WTH у меня есть .group буквы «abc» вместо «abcde» (вместо этого вместо «managem = CH»).

Вот код:

library(ggplot2)
pd = position_dodge(0.7)   
plot.mixed.lme<-ggplot(cld.mixed.lme,aes(x = hor,y=response, color=managem, label=.group))+ 
        theme_bw()+
        geom_point(shape  = 15, size   = 4, position = pd) +
        geom_errorbar(aes(ymin  =  lower.CL,ymax  =  upper.CL),width =  0.2,size  =  0.7,position = pd) +
        theme(axis.title   = element_text(face = "bold"),
              axis.text    = element_text(face = "bold"),
              plot.caption = element_text(hjust = 0)) +

        geom_text(nudge_x = c(-0.3, 0, 0.3, -0.3, 0, 0.3,-0.3, 0, 0.3),
                  nudge_y = c(4.5,  4.5, 4.5,4.5,  4.5, 4.5,4.5,  4.5, 4.5),
                  color   = "black") 
plot.mixed.lme

Вот результирующий сюжет:

enter image description here

Я приветствую любые предложения и большое спасибо заранее за вашу помощь,

BAlpine

1 Ответ

0 голосов
/ 25 апреля 2018

Я нашел способ обойти, но это отнимает много времени.По сути, я изменил geom_text в соответствии с таблицей:

geom_text(nudge_x = c(-0.3, 0.3, 0, 0.3, -0.3, 0,-0.3, 0, 0.3),

Любая идея, чтобы соответствовать ему автоматически?

Большое спасибо

...