Q
aesで指定できるパラメータはグラフ(geom)の種類によって違いますが、どこかに一覧表はありますか? 対応するドキュメントを?geom_XXXで見れば書いてありますが、まとめて一覧で見たいんです。
A
残念ながら、ドキュメントに一覧表は用意されていませんが、それぞれのgeomに指定できるパラメータとその初期値は以下のようになっています。(yesとなっているものは、使えるけど初期値が設定されていないパラメータ、requiredは指定が必須のパラメータです)
| geom | colour | size | linetype | alpha | fill | x | y | weight | ymin | ymax | minor params |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Abline | black | 0.5 | 1 | yes | -- | -- | -- | -- | -- | -- | slope=required, intercept=required |
| AnnotationMap | yes | 0.5 | 1 | yes | grey20 | -- | -- | -- | -- | -- | |
| Area | yes | 0.5 | 1 | yes | grey20 | required | required | -- | -- | -- | |
| Bar | yes | 0.5 | 1 | yes | grey20 | required | -- | -- | -- | -- | |
| Blank | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | |
| Boxplot | grey20 | 0.5 | solid | yes | white | required | -- | 1 | required | required | shape=19, outlier.colour=black, outlier.shape=19, outlier.size=1.5, outlier.stroke=0.5, lower=required, upper=required, middle=required |
| Contour | #3366FF | 0.5 | 1 | yes | -- | required | required | 1 | -- | -- | |
| Crossbar | black | 0.5 | 1 | yes | yes | required | required | -- | required | required | |
| Curve | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | xend=required, yend=required |
| CustomAnn | -- | -- | -- | -- | -- | -- | -- | -- | -Inf | Inf | xmin=-Inf, xmax=Inf |
| Density | black | 0.5 | 1 | yes | yes | required | required | 1 | -- | -- | |
| Density2d | #3366FF | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | |
| Dotplot | black | -- | -- | yes | black | required | required | -- | -- | -- | |
| Errorbar | black | 0.5 | 1 | yes | -- | required | -- | -- | required | required | width=0.5 |
| Errorbarh | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | xmin=required, xmax=required, height=0.5 |
| Hex | yes | 0.5 | -- | yes | grey50 | required | required | -- | -- | -- | |
| Hline | black | 0.5 | 1 | yes | -- | -- | -- | -- | -- | -- | yintercept=required |
| Label | black | 3.88 | -- | yes | white | required | required | -- | -- | -- | angle=0, hjust=0.5, vjust=0.5, family=, fontface=1, lineheight=1.2, label=required |
| Line | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | |
| Linerange | black | 0.5 | 1 | yes | -- | required | -- | -- | required | required | |
| Logticks | black | 0.5 | 1 | 1 | -- | -- | -- | -- | -- | -- | |
| Map | yes | 0.5 | 1 | yes | grey20 | -- | -- | -- | -- | -- | map_id=required |
| Path | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | |
| Point | black | 1.5 | -- | yes | yes | required | required | -- | -- | -- | shape=19, stroke=0.5 |
| Pointrange | black | 0.5 | 1 | yes | yes | required | required | -- | required | required | shape=19, stroke=1 |
| Polygon | yes | 0.5 | 1 | yes | grey20 | required | required | -- | -- | -- | |
| Quantile | #3366FF | 0.5 | 1 | yes | -- | required | required | 1 | -- | -- | |
| Raster | -- | -- | -- | yes | grey20 | required | required | -- | -- | -- | |
| RasterAnn | -- | -- | -- | yes | grey20 | required | required | -- | -- | -- | |
| Rect | yes | 0.5 | 1 | yes | grey20 | -- | -- | -- | required | required | xmin=required, xmax=required |
| Ribbon | yes | 0.5 | 1 | yes | grey20 | required | -- | -- | required | required | |
| Rug | black | 0.5 | 1 | yes | -- | -- | -- | -- | -- | -- | |
| Segment | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | xend=required, yend=required |
| Smooth | #3366FF | 1 | 1 | 0.4 | grey60 | required | required | 1 | -- | -- | |
| Spoke | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | angle=required, radius=required |
| Step | black | 0.5 | 1 | yes | -- | required | required | -- | -- | -- | |
| Text | black | 3.88 | -- | yes | -- | required | required | -- | -- | -- | angle=0, hjust=0.5, vjust=0.5, family=, fontface=1, lineheight=1.2, label=required |
| Tile | yes | 0.1 | 1 | yes | grey20 | required | required | -- | -- | -- | |
| Violin | grey20 | 0.5 | solid | yes | white | required | required | 1 | -- | -- | |
| Vline | black | 0.5 | 1 | yes | -- | -- | -- | -- | -- | -- | xintercept=required |
これを生成するコードはこんな感じです。
library(dplyr)
library(purrr)
library(ggplot2)
e <- asNamespace('ggplot2')
Geoms <- grep("^Geom.+", ls(e), value = TRUE)
geoms <-
Geoms %>%
map(get, envir = e)
f <- function(geom) {
aes_default <- geom$default_aes %>%
map_if(is.na, ~ ("yes")) %>%
map_if(~ . == "NA", ~ ("yes")) %>%
map(as.character) %>%
as.list
aes_required <- setNames(rep("required", length(geom$required_aes)),
geom$required_aes )
c(geom = sub("Geom", "", class(geom)[1]),
aes_default,
aes_required)
}
aeses <- geoms %>%
map(f) %>%
bind_rows
# NAの数で分割
is_few_na <- function(col) sum(is.na(col)) < 35
aeses_major <- keep(aeses, is_few_na)
aeses_minor <- discard(aeses, is_few_na)
aeses_minor <-
aeses_minor %>%
by_row(. %>%
discard(is.na) %>%
paste(names(.), ., sep = "=", collapse = ", "),
.labels = FALSE) %>%
rename(`minor params` = .out)
result <- bind_cols(aeses_major, aeses_minor)
# 見やすいようにNAは--で表示する
result[is.na(result)] <- '--'
# Markdown用のテーブルを出力
knitr::kable(result)
参考
この記事は、以下のstackoverflowの内容を参考に書き起こしました: