【问题标题】:Best way to plot smooth normal distribution in ggplot在ggplot中绘制平滑正态分布的最佳方法
【发布时间】:2014-10-31 20:56:10
【问题描述】:

我想在 ggplot 中绘制一个漂亮的、“接近极限”的正常 pdf。

我发现要获得一个非常对称和干净的图,我必须将样本数量增加到一个相当大的数量;一百万创造了一个伟大的可视化。然而,这很慢,特别是如果我希望在某个时候与 Shiny 合作。

df <- data.frame(c(rnorm(1000000)))
ggplot(df, aes(df[1])) + geom_density()

肯定有更好的方法来显示接近理想正态分布的东西吗?

【问题讨论】:

  • 一定要随机抽样吗?或者你能画出dnorm吗?就像这里的第一个例子docs.ggplot2.org/current/stat_function.html
  • 来自stat_function 帮助文件:ggplot(data.frame(x = c(-5, 5)), aes(x)) + stat_function(fun = dnorm)
  • 谢谢大家,我以前没有遇到过stat_function。我去看看!

标签: r ggplot2 normal-distribution


【解决方案1】:

基本上,您的代码应如下所示:

 ggplot(data=dataset, aes(dataset$value)) +
      stat_function(fun = dnorm, args = c(mean = mean(dataset$value), sd = sd(dataset$value)))

stat_function 使用dnorm 函数(获取正态变量的密度)解析均值和中值并绘制正态分布。

参考:How dnorm works?

对于 ggplot stat_function 文档请遵循此 link 示例:https://github.com/tidyverse/ggplot2/blob/master/R/stat-function.r

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    相关资源
    最近更新 更多