chi*_*n s 15 r machine-learning ggplot2
我目前正在阅读Hadley Wickham的R for Data Science.在那里,有以下示例:
library(tidyverse)
ggplot(data = diamonds) +
stat_summary(
mapping = aes(x = cut, y = depth),
fun.ymin = min,
fun.ymax = max,
fun.y = median
)
Run Code Online (Sandbox Code Playgroud)
现在,有一个问题是如何使用适当的geom_函数创建相同的图.我看着默认geom的stat_summary,它是pointrange.
所以我尝试了以下方法:
ggplot(data = diamonds) + geom_pointrange(mapping = aes(x = cut, y = depth), stat = "summary")
Run Code Online (Sandbox Code Playgroud)
但我没有得到min和max积分的情节.
如何使用geom_pointrange?获得精确的图?
Ben*_*son 16
geom_pointrange不会自动计算ymin或ymax值.您可以在使用stat = "summary"时执行此操作geom_pointrange:
ggplot(data = diamonds) +
geom_pointrange(mapping = aes(x = cut, y = depth),
stat = "summary",
fun.ymin = min,
fun.ymax = max,
fun.y = median)
Run Code Online (Sandbox Code Playgroud)
我能想到的简单方法就是使用geom_line和stat_summary
ggplot(data = diamonds, mapping = aes(x = cut, y = depth)) +
geom_line() +
stat_summary(fun.y = "median", geom = "point", size = 3)
Run Code Online (Sandbox Code Playgroud)
如果我真的想使用geom_pointrange,那么我将首先创建小型数据集。
data = diamonds %>%
group_by(cut) %>%
summarise(min = min(depth), max = max(depth),
median = median(depth))
ggplot(data, aes(x = cut, y = median, ymin = min, ymax = max)) +
geom_linerange() +
geom_pointrange()
Run Code Online (Sandbox Code Playgroud)
小智 5
我在未来三年,我也有同样的疑问,但这里的解决方案都没有对我有用。我能够使用此代码实现所需的输出(只是为了帮助我的时间的人们):
ggplot(data = diamonds) +
geom_pointrange(
mapping = aes(x = cut, y = depth),
stat = "summary",
fun.min = min,
fun.max = max,
fun = median
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5644 次 |
| 最近记录: |