使用ggplot2对分组数据使用多个stat_function

奥尼拉

我正在研究数据集,并多次观察参数超时。数据就像:

test<-data.frame(t = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.33, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 0.67, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.33, 1.67, 1.67, 1.67, 1.67, 1.67, 1.67, 1.67, 1.67, 1.67, 1.67, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10), int = c(76.44609375, 94.6619686800895, 112.148907103825, 75.1003097802036, 74.1037037037037, 76.7526662128432, 74.0734830988873, 87.9052100068855, 81.0525931336742, 92.1907873244038, 84.0708929788684, 88.8232221775814, 98.1323678006063, 115.175322139789, 91.2653104925053, 76.3661620658949, 152.637799717913, 107.054702135631, 83.4693197755961, 91.658991910392, 81.3991787335206, 106.153762268266, 100.919789842382, 67.2119436084271, 137.558914728682, 89.1182608695652, 156.10352233677, 108.180911207183, 87.9794680354643, 77.7501400560224, 80.7675382653061, 95.6662793399954, 92.5649630541872, 88.3301402668491, 84.3891875746714, 76.4318673395818, 111.413893510815, 82.4753828420879, 119.099190283401, 192.539417212559, 208.49203187251, 106.919937512205, 105.370936371214, 180.028767711464, 130.29369773608, 170.193357597816, 172.703180212014, 178.061569518042, 182.097607918614, 227.066976984743, 153.856101031661, 432.991580916745, 299.143735224586, 144.118156808803, 396.36644895153, 334.538796516231, 350.186359610275, 200.781101530882, 279.866079790223, 122.542700519331, 235.199555308505, 204.924140655867, 229.181848967152, 225.542753383955, 468.308974987739, 269.306058221873, 229.969282013323, 255.553846153846, 621.021220159151, 255.017211703959, 396.658265826583, 273.300663227708, 232.449965010497, 303.343894502483, 276.952483801296, 327.419805194805, 241.136864249474, 457.961489497136, 498.901714285714, 280.9558101473, 322.089588377724, 386.754533152909, 364.356809338521, 340.416035518412, 428.482916666667, 668.447197400487, 387.671341748481, 471.049545829893, 255.8802020688, 361.979536152797, 192.224629418472, 284.088954468803, 170.763997760358, 237.869065100343, 365.08237271854, 294.266488413547, 718.279750479846, 211.599427030671, 294.045375597047, 207.099267015707, 194.209973045822, 251.306358381503, 190.786794766966, 400.396083385976, 183.133240482823, 130.442107867392, 167.231452991453, 345.110896351776, 299.304645622394, 192.078204692282, 121.273544841369, 153.996295438759, 97.6034616378197, 362.80049522462, 130.498551774077, 106.031656035908, 117.682936668011, 90.1247837370242, 140.855475040258, 169.050049067713, 244.290241606527, 120.603356419819, 173.413333333333, 125.896389002872, 206.543873212215, 186.668320340184, 85.0988108720272, 106.57849117175, 102.867232728676, 216.232957110609, 86.6538461538462, 149.459777852575, 212.498573059361, 93.3816390633923, 105.567730417318, 120.095470383275, 137.205696941396, 141.156985871272, 90.578857338351, 84.8457760314342, 127.092660685395, 136.859870967742, 188.406440382942, 86.0879705400982))
class(test)

我设法使用以下方法绘制每个时间点的密度:

ggplot(test, aes(int, group = as.factor(t),colour=t))+ geom_density()

但是我想做同样的图,但我想绘制密度的对数正态拟合,而不是密度。

我知道如何使用绘制在一个时间点的对数正态分布拟合fitdistr和参数传递给stat_function白衣这个代码

library(MASS)
fit <- fitdistr(subset(test, t == 0,select='int')$int, "lognormal")
ggplot(data=subset(test, t == 0,select='int'), aes(x=int)) +stat_function(fun = dlnorm,args = list(mean = fit$estimate[1], sd = fit$estimate[2]))

但是,如何t使用值的值给出的行颜色对所有行进行处理,t是否可以在args列表中提供功能

延斯·蒂林(Jens Tierling)

我想到了另一个幼稚的解决方案:预测每个dlnorm()的值。

## Split up the data according to t
tt     <- split(test, test$t)

## Fit a lognormal to every dataset
fits   <- lapply(tt, function(x) fitdistr(x$int, "lognormal"))

## Predict values
fitted <- lapply(fits, function(x) dlnorm(x = 1:max(test$int),
                               mean = x$estimate[1], sd = x$estimate[2]))

## Wrap everything into a data.frame ggplot can handle
plot.data <- data.frame(y = unlist(fitted), int = 1:max(test$int),
                        t = rep(unique(test$t),
                            each = length(unlist(fitted))/length(unique(test$t))))

## Plot
ggplot(test, aes(int, group = as.factor(t), colour=t)) +
  #geom_density() +
  geom_line(data = plot.data, aes(y = y), lwd = 1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ggplot2在分组数据上具有多个stat_function

来自分类Dev

R:将时序数据与'splinefun'和ggplot2'stat_function'一起使用

来自分类Dev

在ggplot2中将图例与stat_function一起使用

来自分类Dev

如何使用ggplot2限制stat_function图的范围?

来自分类Dev

使用ggplot2的stat_function绘制泊松分布

来自分类Dev

如何使用for循环在ggplot2中添加'stat_function()'层?

来自分类Dev

ggplot2:在for循环中使用stat_function()获取颜色图例显示

来自分类Dev

如何将stat_function美学映射到ggplot2中的数据?

来自分类Dev

将ggplot2与用户定义的stat_function()集成

来自分类Dev

ggplot2:为特定域添加stat_function?

来自分类Dev

使用stat_function时向ggplot添加图例

来自分类Dev

ggplot2 stat_function,具有facet_grid中不同数据子集的计算参数

来自分类Dev

使用数据帧中的系数进入stat_function

来自分类Dev

在ggplot2中,如何使stat_function服从scale_x_log10?

来自分类Dev

使用ggplot2将多个渐变分组

来自分类Dev

将参数传递给函数,以使用ggplot stat_function进行绘图

来自分类Dev

在ggplot中使用stat_function时着色曲线的一段

来自分类Dev

ggplot:使用stat_function向现有直方图和分布层添加正态分布曲线

来自分类Dev

使用ggplot在网格中绘制两个stat_function()

来自分类Dev

使用ggplot2的多个方面

来自分类Dev

使用ggplot2将图例添加到具有多个stat_bin层的直方图中

来自分类Dev

ggplot2图stat_smooth按变量分组

来自分类Dev

使用LINQ对分层数据进行分组

来自分类Dev

使用tidyverse对分组数据执行除法运算

来自分类Dev

对分组数据进行迭代ANOVA(使用ezANOVA)

来自分类Dev

合并图例以显示多个stat_function行和原始数据点

来自分类Dev

如何使用ggplot2按月,季度或年分组

来自分类Dev

使用ggplot2在R上分组条形图

来自分类Dev

如何使用ggplot2按月,季度或年分组

Related 相关文章

  1. 1

    使用ggplot2在分组数据上具有多个stat_function

  2. 2

    R:将时序数据与'splinefun'和ggplot2'stat_function'一起使用

  3. 3

    在ggplot2中将图例与stat_function一起使用

  4. 4

    如何使用ggplot2限制stat_function图的范围?

  5. 5

    使用ggplot2的stat_function绘制泊松分布

  6. 6

    如何使用for循环在ggplot2中添加'stat_function()'层?

  7. 7

    ggplot2:在for循环中使用stat_function()获取颜色图例显示

  8. 8

    如何将stat_function美学映射到ggplot2中的数据?

  9. 9

    将ggplot2与用户定义的stat_function()集成

  10. 10

    ggplot2:为特定域添加stat_function?

  11. 11

    使用stat_function时向ggplot添加图例

  12. 12

    ggplot2 stat_function,具有facet_grid中不同数据子集的计算参数

  13. 13

    使用数据帧中的系数进入stat_function

  14. 14

    在ggplot2中,如何使stat_function服从scale_x_log10?

  15. 15

    使用ggplot2将多个渐变分组

  16. 16

    将参数传递给函数,以使用ggplot stat_function进行绘图

  17. 17

    在ggplot中使用stat_function时着色曲线的一段

  18. 18

    ggplot:使用stat_function向现有直方图和分布层添加正态分布曲线

  19. 19

    使用ggplot在网格中绘制两个stat_function()

  20. 20

    使用ggplot2的多个方面

  21. 21

    使用ggplot2将图例添加到具有多个stat_bin层的直方图中

  22. 22

    ggplot2图stat_smooth按变量分组

  23. 23

    使用LINQ对分层数据进行分组

  24. 24

    使用tidyverse对分组数据执行除法运算

  25. 25

    对分组数据进行迭代ANOVA(使用ezANOVA)

  26. 26

    合并图例以显示多个stat_function行和原始数据点

  27. 27

    如何使用ggplot2按月,季度或年分组

  28. 28

    使用ggplot2在R上分组条形图

  29. 29

    如何使用ggplot2按月,季度或年分组

热门标签

归档