r - 在 ggplot 组合中绘制 gamma、normal 和 t 的 PDF
问题描述
我想绘制正态分布、伽玛和 t 分布的 pdf。我只想为每个分布生成一个随机样本。目的只是为了说明图表之间的差异。我不确定是否可以将它们结合起来。我知道如何用这段代码分别绘制曲线:
ggplot(data = data.frame(x = c(-3, 3)), aes(x)) +
stat_function(fun = dnorm, n = 101, args = list(mean = 0, sd = 1)) + ylab("") +
scale_y_continuous(breaks = NULL)
ggplot(data = data.frame(x = c(-10, 10)), aes(x)) +
stat_function(fun = dt, n = 1000, args = list(df = 3)) + ylab("") +
scale_y_continuous(breaks = NULL)
ggplot(data = data.frame(x = c(-10, 10)), aes(x)) +
stat_function(fun = dgamma, n = 1000, args = list(shape = 3)) + ylab("") +
scale_y_continuous(breaks = NULL)
我想将所有这些组合成一个图,例如每个图的一种颜色。这在ggplot中可能吗?感谢有人有任何意见。
编辑:我知道使用 gridextra 包和功能 grid.arrange 我可以将它们组合成图片。但我想让它们在同一个图中。我也不太明白为什么 t 分布与正态分布如此相似。我尝试过 n = 5,但它们仍然非常相似。我想说明它们之间的区别。问候
解决方案
您无需在ggplot
调用中指定数据...您可以将其添加到每个stat_function
调用中。
ggplot() +
stat_function(data = data.frame(x = c(-3, 3)), aes(x), fun = dnorm, n = 101, args = list(mean = 0, sd = 1), colour = "red") +
stat_function(data = data.frame(x = c(-10, 10)), aes(x), fun = dt, n = 1000, args = list(df = 3), colour = "blue") +
stat_function(data = data.frame(x = c(-10, 10)), aes(x), fun = dgamma, n = 1000, args = list(shape = 3), colour = "green") +
ylab("") +
scale_y_continuous(breaks = NULL)
推荐阅读
- javascript - 使用 javascript 创建输入表单
- c - 为什么这个班次插入 1?C
- python - 有没有办法在单个查询中获取表行和表数据的总数
- javascript - 无法读取 null 的属性“__reactInternalInstance$0jI 669g6n8or”
- python - 通过 SessionRunHooks 访问 Estimator 评估结果
- azure - 通过 ARM 模板在 Azure SQL 数据库上启用审核设置
- azure - 向 Cortana Skill 发送参数
- python - Python,从输入中打印最出现的单词或字母
- shell - 基于shellscript中的时间戳合并2个排序文件(内容相似)
- redis - 如何获取Redis位图中设置位的所有位置?