2012-03-05 46 views
1

我试图在我的图的x轴上添加对应于列(一个变量)的标签。我怎样才能从这个变量列添加标签?在R图中向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 
+1

@JulioDiaz我不想要一张照片,我想要他们提供的编辑。现在我明白他的问题和他期望的结果。 – Justin 2012-03-06 00:06:47

回答

1

我假设你正在使用的代码是这样的:

​​

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

该解决方案既快速又简单!

library(ggplot2) 

dat <- read.table('clipboard', header=T) 
ggplot(dat, aes(colour=factor(Time), x=Treatment, y = Conductivity))+geom_boxplot() 
0

?boxplot参见,所述names论点:

名称:将各盒形图下方印刷组的标签。 可以是一个字符向量或一个表达式(参见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个盒子(即每一个(治疗,时间)对),你真的想从盒子里删除'时间'信息吗?那么就不可能知道某个特定的箱子是在哪个时间点?