2017-06-21 70 views
-1

我想創建使用purrr軟件包方法具有相同x但不同y的多個圖。也就是說,我想使用map()或walk()函數來執行此操作。ggplot使用咕嚕聲map()來繪製相同的x與多個y的

爲簡單起見使用mtcars數據集。

ggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() 
ggplot(data = mtcars, aes(x = hp, y = cyl)) + geom_point() 
ggplot(data = mtcars, aes(x = hp, y = disp)) + geom_point() 

編輯 到目前爲止,我已經嘗試

y <- list("mpg", "cyl", "disp") 
mtcars %>% map(y, ggplot(., aes(hp, y)) + geom_point() 
+2

你嘗試過什麼嗎?你卡在哪裏? – aosmith

+0

我曾嘗試創建一個我的y變量'列表(「mpg」,「cyl」,「disp」)列表,並將其用作map()中的.x參數。對於.f參數。我用'ggplot(data =。,aes(x = hp,y = y))+ geom_point()'。請注意,我已經從mtcars的map函數管道開始,這樣我可以用'.'調用數據。我從下面的答案中學到了(感謝MrFlick),aes_string()函數可以用於調用您的美學。我也不清楚如何使用匿名函數或公式來產生期望的結果。 – tictacjoe

回答

1

這是一種可能性

ys <- c("mpg","cyl","disp") 
ys %>% map(function(y) 
    ggplot(mtcars, aes(hp)) + geom_point(aes_string(y=y))) 

它就像任何其他的地圖功能,你只需要正確配置美學在函數中。

+0

感謝您的幫助! – tictacjoe