在R图中向x轴添加标签

时间:2012-03-05 22:48:19

标签: r boxplot

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

说我有下表。它有三列:时间,治疗和电导率。我制作了一个boxplot图表(我无法上传,因为我还没有足够的积分,我是一个新用户)。该图显示每个处理三个盒子,尽管每个盒子的标签具有时间点和处理,即用于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

2 个答案:

答案 0 :(得分: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()

答案 1 :(得分:0)

请参阅?boxplotnames参数:

  

名称:将在每个箱线图下打印的组标签。能够             是一个字符向量或表达式(见plotmath)。

所以你可以这样做:

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

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

如果你只想要每3个箱图中有一个名字 - 我不确定如何使用基本图形,你可能需要使用ggplot2lattice图形。

顺便说一句 - 如果你正在制作9个箱形图(即每个一对(治疗,时间)对),你真的想从箱形图中删除“时间”信息吗?那么就不可能知道一个特定的箱形图在哪个时间?