2012-03-05 73 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個盒子(即每一個(治療,時間)對),你真的想從盒子裏刪除'時間'信息嗎?那麼就不可能知道某個特定的箱子是在哪個時間點?