使用boxplot添加线图

时间:2018-07-02 12:41:13

标签: r line scatter-plot boxplot

样本数据

set.seed(123)
par(mfrow = c(1,2))

dat <- data.frame(years = rep(1980:2014, each = 8), x = sample(1000:2000, 35*8 ,replace = T))
boxplot(dat$x ~ dat$year, ylim = c(500, 4000)) 

我有另一个在某些特定年份具有单一值的数据集

ref.dat <- data.frame(years = c(1991:1995, 2001:2008), x = sample(1000:2000, 13, replace = T))
plot(ref.dat$years, ref.dat$x, type = "b")

enter image description here

如何在箱线图的顶部添加线图

2 个答案:

答案 0 :(得分:2)

使用ggplot2,您可以执行以下操作:

ggplot(dat, aes(x = years, y = x)) + 
  geom_boxplot(data = dat,  aes(group = years)) + 
  geom_line(data = ref.dat, colour = "red") + 
  geom_point(data = ref.dat, colour = "red", shape = 1) +
  coord_cartesian(ylim = c(500, 4000)) + 
  theme_bw()

enter image description here

答案 1 :(得分:1)

这里的技巧是弄清楚箱图中的x轴。您有35个框,它们分别绘制在x坐标1、2、3,...,35(即year-1979)上。这样,您可以照常添加带有newtype Walk b a = Walk (forall s. (s -> Step s b) -> s -> Step s a) 的行。

lines

Line over boxplot

这些点很难看清,所以我更改了点样式20。此外,我在y轴上使用了较小的范围,以减少空白空间。