2012-07-25 53 views
54

我是ggplot2的新手,一直在努力尋找美學的完整列表。我認爲我理解他們的目的,但很難知道哪些可以用於各種情況(主要是幾何?)。哈德利的網站偶爾列出了各個geoms頁面上的可用美學,而R doc偶爾(儘管更少)也是這樣做。我甚至找到了兩個不太匹配的geom。有沒有ggplot2的美學表格或目錄?

我通過這裏的評論搜索答案,甚至買了書!唉,沒有幫助。

我認爲如果有一張桌子,其中包含一個維度中列出的所有美學表格以及另一個維度中列出的所有幾何體(以及其他物體?),那將會很棒。

有沒有人知道這樣的事情?

R中是否有一個簡單的方法(命令)列出所有可應用於對象的美學?

這裏有一個表可能如何開始:

List   x  y  fill  size colour linetype . . . 
geom_point Yes  Yes  Yes  Yes  Yes  No 
geom_abline Yes  Yes  No  Yes  Yes  Yes 
. 
. 
. 

的美學定義目錄/參數將是一個非常有益的參考和。

回答

98

下面是default_aes每個GEOM,

  colour size linetype alpha fill weight shape width height angle hjust vjust family fontface lineheight 
abline  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
area   yes 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
bar   yes 0.5  1 yes grey20  1 -- --  -- -- -- --  --  --   -- 
bin2d   yes 0.5  1 yes grey60  1 -- --  -- -- -- --  --  --   -- 
boxplot  grey20 0.5 solid yes white  1 16 --  -- -- -- --  --  --   -- 
contour #3366FF 0.5  1 yes  --  1 -- --  -- -- -- --  --  --   -- 
crossbar  black 0.5  1 yes yes  -- -- --  -- -- -- --  --  --   -- 
density  black 0.5  1 yes yes  1 -- --  -- -- -- --  --  --   -- 
density2d #3366FF 0.5  1 yes  --  1 -- --  -- -- -- --  --  --   -- 
errorbar  black 0.5  1 yes  --  -- -- 0.5  -- -- -- --  --  --   -- 
errorbarh black 0.5  1 yes  --  -- -- -- 0.5 -- -- --  --  --   -- 
freqpoly  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
hex   yes 0.5  -- yes grey50  -- -- --  -- -- -- --  --  --   -- 
hline  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
linerange black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
path   black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
point  black 2  -- yes yes  -- 16 --  -- -- -- --  --  --   -- 
pointrange black 0.5  1 yes yes  -- 16 --  -- -- -- --  --  --   -- 
polygon   NA 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
quantile #3366FF 0.5  1 yes  --  1 -- --  -- -- -- --  --  --   -- 
raster   -- --  -- yes grey20  -- -- --  -- -- -- --  --  --   -- 
rect   yes 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
ribbon   yes 0.5  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
rug   black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
segment  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
smooth  #3366FF 0.5  1 0.4 grey60  1 -- --  -- -- -- --  --  --   -- 
step   black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 
text   black 5  -- yes  --  -- -- --  --  0 0.5 0.5    1  1.2 
tile   yes 0.1  1 yes grey20  -- -- --  -- -- -- --  --  --   -- 
violin  grey20 0.5 solid yes white  1 -- --  -- -- -- --  --  --   -- 
vline  black 0.5  1 yes  --  -- -- --  -- -- -- --  --  --   -- 

和醜陋的代碼我用來破解這個,

find_aes <- function(geom="point"){ 

    tryCatch({ 
    Geom <- getFromNamespace(paste("Geom", ggplot2:::firstUpper(geom), sep=""), 
          "ggplot2") 

    tmp <- unclass(Geom$default_aes) 
    tmp[is.na(tmp)] <- "yes" 
    data.frame(tmp, stringsAsFactors=FALSE) 
    }, error = function(e) {}) 
} 

funs <- grep("^geom_", ls("package:ggplot2"),val=T) 

geoms <- gsub("^geom_", "", funs) 

all <- lapply(geoms, find_aes) 
names(all) <- geoms 
relevant <- sapply(all, function(x) !is.null(x) && nrow(x) > 0) 
library(plyr) 
results = do.call("rbind.fill",all) 
rownames(results) <- names(relevant[relevant]) 
results[is.na(results)] <- "--" 

options(width=9999) 
capture.output(print(results), file="aes.txt") 
+2

+1 !,此外,如果geom的默認值超過它支持的aes值,那麼這是事實嗎?我認爲是這樣的... – 2012-07-27 08:23:38

+0

小點,美學x和y缺失。 – csgillespie 2012-07-27 08:36:39

+0

我不清楚哪些是可以用比例繪製的真實美學。 – baptiste 2012-07-27 09:03:14

5

,看一下Aesthetic specifications的小插曲,由哈德利韋翰:

此小插圖總結了網格繪圖函數採用的各種格式。大部分這些信息可以分散在整個R文檔中。本附錄將它彙集在一起​​。

+3

死鏈接@ cho7tom。有一個工作?聽起來不錯。 – 2017-06-30 03:23:15

+1

我找到了,並更新了鏈接 – philsf 2017-08-28 12:21:07