我一直在尝试绘制 lsmeans 模型的结果,其中框表示 LS 均值。误差线表示 LS 均值的 95% 置信区间,其中共享字母的均值没有显着差异。我想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
字母落在 wrong 上而出现不匹配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
这是结果图:
我欢迎任何建议,并在此先感谢您的帮助,
高山