首页 文章

是否有ggplot2的美学表或目录?

提问于
浏览
60

我是ggplot2的新手,并一直试图找到一个全面的美学列表 . 我想我理解他们的目的,但很难知道哪些可以用于各种情况(主要是geoms?) . Hadley的网站偶尔会在个别地理位置的页面上列出可用的美学,而R文档偶尔(尽管很少)会做同样的事情 . 我甚至发现了两个不太匹配的geom .

我在这里搜索了一些答案,甚至买了这本书!唉,没有帮助 .

我认为拥有一个列在一个维度中的所有美学和所有geom(和其他对象?)在另一个维度中列出的表格会很棒 .

有谁知道这样的事情?

R中是否有一个简单的方法(命令)列出可以应用于对象的所有美学?

以下是表格的开始方式:

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

美学定义/参数目录也是非常有用的参考 .

2 回答

  • 113

    以下是每个geom的 default_aes

    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")
    
  • 9

    看看Hadley Wickham写的小说:#2499901_的小插图:

    此小插图总结了网格绘制功能所采用的各种格式 . 大部分信息可以在R文档中分散使用 . 本附录将所有内容集中在一个地方 .

相关问题