相关疑难解决方法(0)

在ggplot2中叠加多个stat_function调用

我有两个data.frames,一个包含原始数据,另一个包含我从原始数据派生的建模系数.

更多细节:第一个data.frame"raw"包含"Time"(0s到900s)和"OD",用于许多Variants和4次运行.第二个data.frame"coef"每个Variant/run组合包含一行,该行中有各个系数("M","D.1"和"t0.1").

我已经绘制了每个Variant的原始数据分割并用runID着色,没问题.但现在我想根据runID覆盖模型曲线.

由于建模系数是在不同的data.frame(具有不同的维度,所以我不能只是cbind),stat_function对我不起作用.我可以一次显示曲线.

我尝试过for(){}循环,每次都添加一个stat_function图层:

p <- ggplot(temp, aes(Time, OD)) + geom_point(aes(colour = runID), size = 2) #works fine!
calc <- function(x){temp.n$M[ID] * (1 - exp(temp.n$D.1[ID] * temp.n$t0.1[ID] - x)))}
for(ID in 1:length(unique(temp.n$runID))) {
  p <- p + stat_function(fun = calc)
}
print(p)
Run Code Online (Sandbox Code Playgroud)

最后,所有"p"返回是原始数据和循环位的最终曲线的图.每当我尝试添加新的"stat_function"图层时,"p"似乎恢复到原始状态.

有任何想法吗?

plot overlay r function ggplot2

9
推荐指数
1
解决办法
2068
查看次数

如何将高斯曲线添加到使用qplot创建的直方图?

我有一个问题可能类似于将密度曲线拟合到R中的直方图.使用qplot我用这个命令创建了7个直方图:

 (qplot(V1, data=data, binwidth=10, facets=V2~.)   
Run Code Online (Sandbox Code Playgroud)

对于每个切片,我想添加一个拟合的高斯曲线.当我尝试使用lines()方法时,我收到错误:

Error in plot.xy(xy.coords(x, y), type = type, ...) : 
plot.new has not been called yet
Run Code Online (Sandbox Code Playgroud)

正确执行命令的命令是什么?

r histogram ggplot2

9
推荐指数
2
解决办法
1万
查看次数

ggplot 在使用“facet_wrap”时添加正态分布

我正在绘制以下直方图:

library(palmerpenguins)
library(tidyverse)

penguins %>% 
  ggplot(aes(x=bill_length_mm, fill = species)) +
  geom_histogram() + 
  facet_wrap(~species)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对于每个直方图,我想为每个直方图添加一个正态分布,其中包含每个物种的平均值和标准差。

当然,我知道我可以在开始命令之前计算组特定的均值和 SD ggplot,但我想知道是否有更智能/更快的方法来做到这一点。

我努力了:

penguins %>% 
  ggplot(aes(x=bill_length_mm, fill = species)) +
  geom_histogram() + 
  facet_wrap(~species) + 
  stat_function(fun = dnorm)
Run Code Online (Sandbox Code Playgroud)

但这只在底部给了我一条细线:

在此输入图像描述

有任何想法吗?谢谢!

编辑 我想我想要重新创建的是来自Stata的这个简单命令:

hist bill_length_mm, by(species) normal

这给了我这个: 在此输入图像描述

我知道这里有一些建议:using stat_function and facet_wrap Together in ggplot2 in R

但我专门寻找一个简短的答案,不需要我创建单独的函数。

r ggplot2

4
推荐指数
1
解决办法
1670
查看次数

用R反向统计

我想做的事听起来很简单.我想用R绘制一条正常的IQ曲线,平均值为100,标准差为15.然后,我希望能够在它上面叠加数据的散点图.

有人知道怎么做吗?

statistics r mean population

1
推荐指数
1
解决办法
382
查看次数

在同一图中绘制多条法线曲线

我有兴趣创建一个示例图(理想情况下使用ggplot),它将显示两条具有不同均值和不同标准差的法线曲线.我发现了ggplot的stat_function()参数,但我不确定如何在同一个图上获得第二条曲线.

此代码生成一条曲线:

ggplot(data.frame(x = c(-4, 4)), aes(x)) + stat_function(fun = dnorm)
Run Code Online (Sandbox Code Playgroud)

关于如何获得第二条曲线的任何建议?或者在基础包绘图中可能更简单?

graphics r ggplot2

0
推荐指数
1
解决办法
2660
查看次数

标签 统计

r ×5

ggplot2 ×4

function ×1

graphics ×1

histogram ×1

mean ×1

overlay ×1

plot ×1

population ×1

statistics ×1