2015-03-31 123 views
1

說我有一個數據幀:添加打印功能輸出到ggplot圖表 - R的

df <- data.frame(x=1:10, y=4:13) 
p <- ggplot(df,aes(x,y)) + geom_point()  

現在我想很多東西添加到這個圖形,所以我用一個大的粘貼功能和打印輸出。舉例來說,我想在x軸標籤內添加「bananas」這個詞。

x <- "bananas"  
print(paste0("+ xlab('Price of", x[1], "')"), quote=F) 

如果我嘗試:

p + print(paste0("+ xlab('Price of", x[1], "')"), quote=F) 

那麼它顯然是行不通的。但有沒有辦法將這個函數的輸出添加到ggplot對象'p'中,而無需從控制檯上剪切/粘貼?

即所以我們可以自動執行:

p + xlab('Price ofbananas') 

回答

1

如果你想添加Price of bananas作爲X標籤,然後:

p + xlab(paste0("Price of ", x[1])) 

記住,你要添加的xlab,所以這應該是你的外部功能。在它裏面,你添加/創建你想要的標籤。無需打印。

更新

我想你想要的是eval(parse(text=xxx))。例如:

add <- paste0("xlab('Price of ", x[1], "')") 
p + eval(parse(text=add)) 

注意,我刪除從文本+,因爲下一步要p它與eval連接。

我不知道爲什麼你會這樣做,但它的工作原理。

+0

我正在尋找一個更一般的解決方案 - 我有很多額外的主題/標籤/等添加到一個函數內。 – jalapic 2015-03-31 02:15:30

+0

然後只是將輸出存儲在變量中。 – hd1 2015-03-31 02:16:11

+0

我想我明白你想要什麼:你想要代碼'xlab()'和其他的被存儲在一個變量內,並且一次添加它們,對吧? – Molx 2015-03-31 02:40:58