私はRとggplot2を学んでいます。指示によると、geomにはデフォルトの統計があり、statにはデフォルトのgeomがあるため、geomとstatは通常交換可能です。
私の演習は、stat、手動、およびの3つの方法でプロットを作成することgeom_pointrange
です。私は3番目の部分で立ち往生しています:
library("tidyverse")
# With stat_summary
ggplot(data = diamonds) +
stat_summary(
mapping = aes(x = cut, y = depth),
fun.min = min,
fun.max = max,
fun = median
)
# Manually
diamonds_summary = diamonds %>%
group_by(cut) %>%
summarize(p = median(depth), lower = min(depth), upper = max(depth))
ggplot(diamonds_summary) +
geom_pointrange(
mapping = aes(x = cut, y = p, ymin = lower, ymax = upper)
)
# With geom_pointrange and stat
ggplot(data = diamonds) +
geom_pointrange(
mapping = aes(x = cut, y = median(depth)),
stat = "summary"
)
# Warning: No summary function supplied, defaulting to `mean_se()`
stat
paramで識別される関数に2つの要約関数(最小と最大)を渡すにはどうすればよいですか?
3つのソリューションはすべて、次の出力を生成するはずです。
sepcifyする場合stat="summary"
でも、値を要約する方法を知る必要があります。デフォルトでは、標準誤差のある平均を使用します。ただし、最小値と最大値の中央値が必要です。独自のサマリー関数を作成できます
median_min_max <- function(x) {
data.frame(y=median(x), ymin=min(x), ymax=max(x))
}
そして、それをfun.data=
パラメータを介してポイントレンジレイヤーに渡します。
ggplot(data = diamonds) +
geom_pointrange(
mapping = aes(x = cut, y = depth),
stat = "summary", fun.data = median_min_max
)
これにより、要約されたデータから作成したプロットと一致するプロットが得られます。
ggplot
持っていないmedian_hilow
要約機能を使用していますが、それはHmisc::smedian.hilow
確信に基づい分位INTEVALではなく、最小/最大値を使用する関数を。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加