2013-09-25 65 views
1

我有一個格子圖表,顯示了三個系列,分別標爲條帶中的A,B,C。 在圖表中我已經使用panel.text添加了最大值。但是,我怎樣才能將這些信息添加到條帶名稱旁邊? (例如在頂部條中:A最大值= 2.61)R格子:將面板函數中的信息包含到條形標籤中

#Libraries used: 
library(lattice) 
#Data: Create three random walks: 
A <- c(rnorm(99), cumsum(rnorm(99))) 
B <- c(rnorm(99), cumsum(rnorm(99))) 
C <- c(rnorm(99), cumsum(rnorm(99))) 
#combine data into a dataframe: 
df1 <- data.frame(A,B,C) 
df1 

#create a time series for use in xyplot: 


ts1 <- ts(df1, start=-100, end=-1, frequency=1)  

#create a lattice chart: 

chart1 <-xyplot(ts1 , 
panel=function(x,y) 

{ 

panel.xyplot(x,y) 
panel.lines(x,y) 

y=round(y,2) 
lab1 <- names(y) 
panel.text(-80,min(y)*0.9, paste(lab1,"max:",max(y)), cex = 1.2, font =2,col="blue")  
}) 
chart1 

感謝您的幫助。

回答

1

可以重命名條標籤:

chart1 <-xyplot(ts1 ,  
panel=function(x,y)  
{  
panel.xyplot(x,y)  
panel.lines(x,y)  
},  
strip= strip.custom(factor.levels=paste(dimnames(ts1)[[2]],"max value =",round(apply(ts1,2,max),2)))  
)  
chart1 
+0

非常感謝你。是否有方法在面板組中包含strip.custom函數,以便可以從面板函數獲取輸出,然後將該輸出打印在條上? –

+0

'strip'是高層'xyplot'函數的參數,而不是面板函數。我想在繪製單個面板之前,條形標籤已經被確定了。您可以確定每個面板的最大值,但我認爲您不能更改每個條帶標籤。 – DaveTurek

+0

也許你可以有空白的條形標籤,然後擺弄'panel.text'把你的文字放在條上。但是你有沒有例子說明你爲什麼需要這個? – DaveTurek

相關問題