我对 R 很陌生,并且一直在使用 Google(主要是将我引导到这个站点)来摸索为项目制作一个可通过的图表。我无法弄清楚要搜索什么才能找到与我有相同问题的其他人,所以我决定改为询问。

我有一个看起来像这样的数据集:

    ATM TEMP PARENT variable value
1     1    5      1     DEAD     2
2     1    5      2     DEAD     0
3     1    5      3     DEAD     1
4     1   20      1     DEAD     1
55    1    5      1     LIVE    47
56    1    5      2     LIVE    42
57    1    5      3     LIVE    45
58    1   20      1     LIVE    45
109   1    5      1 SWIMMING     1
110   1    5      2 SWIMMING     8
111   1    5      3 SWIMMING     4
112   1   20      1 SWIMMING     4

ATM 代表进行压力实验,TEMP 温度,PARENT 是幼虫来自 3 个成虫中的一个,变量代表幼虫在给定压力/温度下的状况,其值为多少(最初不同,但我使用 reshape2 合并它们)。

我已经能够创建这个图:

使用此代码:
qplot(factor(ATM), value, data = CONDITION, geom = "boxplot", fill = factor(TEMP)) +
geom_point(aes(colour=factor(TEMP)) +
facet_wrap(~ variable, ncol = 1) +
scale_fill_manual(values = c("lightblue","#FF6666")) +
scale_colour_manual(values = c("lightblue","#FF6666")) +
labs(title = "Effect of Pressure on Condition of C.fornicata Larvae") +
xlab("Pressure \n (atm)") +
ylab("Number of Larvae") +
guides(fill=guide_legend(title="Incubation Temp (°C)"),colour=guide_legend(title="Incubation Temp (°C)"))

我的问题是 fill=factor(TEMP) 将箱线图分成两个(我想要的),但是来自 geom_point 的点与现在偏移的箱线图不对齐。我曾尝试在 geom_point 中处理位置参数,但没有任何运气。

提前致谢!

最佳答案

看看 ?position_dodge

# Making the example data set bigger
library(ggplot2)
x = read.table(text='ATM TEMP PARENT variable value
1     1    5      1     DEAD     2
2     1    5      2     DEAD     0
3     1    5      3     DEAD     1
4     1   20      1     DEAD     1
55    1    5      1     LIVE    47
56    1    5      2     LIVE    42
57    1    5      3     LIVE    45
58    1   20      1     LIVE    45
109   1    5      1 SWIMMING     1
110   1    5      2 SWIMMING     8
111   1    5      3 SWIMMING     4
112   1   20      1 SWIMMING     4')
x = rbind(x,x)
x$ATM[13:24] = 50

# Example code that moves the points to the middle of the boxplots
ggplot( aes(x=factor(ATM),y=value), data=x ) +
  geom_boxplot( aes(fill=factor(TEMP))) +
  geom_point( aes(color=factor(TEMP)),
              position=position_dodge(width=0.75) )

关于r - ggplot2 - 将 geom_point 与分割箱线图对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21654960/

10-12 17:55