1

我正在尝试将与一列(一个变量)相对应的标签添加到我的图表的 x 轴上。如何从这个变量列添加标签?

假设我有下表。它具有三列:时间、治疗和电导率。我制作了一个箱线图(我无法上传,因为我还没有足够的积分,而且我是新用户)。该图显示了每个治疗三个盒子,尽管每个盒子的标签都有时间点和治疗,即 EV 治疗:“17.EV,19.EV,21.EV”对于三个盒子中的每一个。如何单独包含治疗名称?

Time    Treatment   Conductivity
17  EV  47.1
17  EV  41.5
17  EV  53.1
17  EV  57.5
19  EV  53.2
19  EV  68.8
19  EV  69.4
19  EV  28.6
21  EV  56
21  EV  72.9
21  EV  73
21  EV  30
17  Z1a 86
17  Z1a 108
17  Z1a 81.1
17  Z1a 60.5
19  Z1a 74
19  Z1a 90
19  Z1a 109
19  Z1a 98
21  Z1a 84
21  Z1a 96.3
21  Z1a 114
21  Z1a 109.8
17  Z1b 53.3
17  Z1b 60.6
17  Z1b 56.2
17  Z1b 40.5
19  Z1b 61.2
19  Z1b 69.1
19  Z1b 64.1
19  Z1b 49.6
21  Z1b 63.5
21  Z1b 75.8
21  Z1b 73.3
4

2 回答 2

1

我假设您使用的代码类似于:

boxplot(data=dat, Conductivity ~ Treatment + Time)

ggplot2我是这个包裹的忠实粉丝。并会用它解决问题。

解决方案快速简单!

library(ggplot2)

dat <- read.table('clipboard', header=T)
ggplot(dat, aes(colour=factor(Time), x=Treatment, y = Conductivity))+geom_boxplot()
于 2012-03-06T00:06:49.290 回答
0

?boxplotnames论据:

名称:将在每个箱线图下打印的组标签。可以是字符向量或表达式(请参阅 plotmath)。

所以你可以这样做:

boxplot(Conductivity ~ Treatment + Time, 
        names=rep(levels(dat$Treatment),each=3), 
        data=dat)

Returns和levels(dat$Treatment)Returns (因为有 9 个箱线图,所以需要 9 个名称)。c("EV","Z1a","Z1b")rep(xxx,each=3)c("EV","EV","EV","Z1a","Z1a","Z1a","Z1b","Z1b","Z1b)

如果您每 3 个箱线图只需要一个名称 - 我不确定如何使用基本图形来做到这一点,您可能必须使用ggplot2lattice图形。

顺便说一句 - 如果您要制作 9 个箱线图(即每个 (Treatment,Time) 对一个),您真的想从箱线图中删除“时间”信息吗?那么就不可能知道一个特定的箱线图是在哪个时间出现的?

于 2012-03-06T01:03:40.603 回答