我是ggplot2的新手,一直在努力寻找一个全面的美学列表.我想我理解它们的用途,但很难知道哪一种可以用于各种情况(主要是Geom?).哈德利的网站偶尔会在页面上列出个别几何图形的可用美学,而R doc的网站偶尔(尽管很少)也会这样做.我甚至还发现了一个几何图形,两者并不完全匹配.

我在这里的 comments 中寻找答案,甚至买了这本书!唉,没有帮助.

我想如果有一张桌子,上面有一维的所有美学元素和所有几何图形(以及其他物体?),那就太棒了在另一个列表中列出.

有人知道这样的事吗?

在R中有没有一种简单的方法(命令)来列出所有可以应用于对象的美学?

下面是一张桌子的开始:

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

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

推荐答案

下面是每个几何图形的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")

R相关问答推荐

高质量地将R格式的图表从Word中输出

如何使用geom_sf在边界显示两种 colored颜色 ?

将复杂的组合列表转换为数据框架

如何求解arg必须为NULL或deSolve包的ode函数中的字符向量错误

如何删除gggvenn与gggplot绘制的空白?

在另一个函数中调用ggplot2美学

gganimate在使用shadow_mark选项时不保留所有过go 的标记

如何根据R中其他列的值有条件地从列中提取数据?

如何优化向量的以下条件赋值?

在R中无法读入具有Readxl和lApply的数据集

计算满足R中条件的连续列

Ggplot2中geom_tile的动态zoom

将标识符赋给事件序列,避免错误观察

在点图上绘制置信度或预测区间ggplot2

在ggplot2上从多个数据框创建复杂的自定义图形

Conditional documentr::R中数据帧的summarize()

如何显示准确的p值而不是<;0.001*?

如何在GALT包的函数&geom_x样条线中调整线宽

Ggplot2如何找到存储在对象中的残差和拟合值?

将每晚的平均值与每晚的值进行比较,统计是否有效?