当前位置:  开发笔记 > 编程语言 > 正文

R:ggplot2点范围示例

如何解决《R:ggplot2点范围示例》经验,为你挑选了2个好方法。

我目前正在阅读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
)

现在,有一个问题是如何使用适当的geom_函数创建相同的图.我看着默认geomstat_summary,它是pointrange.

所以我尝试了以下方法:

ggplot(data = diamonds) + geom_pointrange(mapping = aes(x = cut, y = depth), stat = "summary")

但我没有得到minmax积分的情节.

如何使用geom_pointrange?获得精确的图?



1> Ben Herberts..:

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)



2> 小智..:

我能想到的简单方法就是使用geom_line和stat_summary

 ggplot(data = diamonds, mapping = aes(x = cut, y = depth)) +
     geom_line() +
     stat_summary(fun.y = "median", geom = "point", size = 3)

这将给出非常相似的情节。

如果我真的想使用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()

这将生成完全相同的图。希望这可以帮助!

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有