【发布时间】:2014-11-04 22:19:40
【问题描述】:
我正在寻找类似于在 Matlab 中命令 hold all 的 R 技术。
在 Matlab 中,我生成了一些数据:
x = normrnd(0,1,1000,1);
[a,b]=hist(x,20);
L=b(2)-b(1);
area=sum(L*a);
frequency=a/area;
bar(b,frequency,1);
hold all;
range=b(1):0.1:b(20);
f1=normpdf(range,0,1);
f2=normpdf(range,2,2);
plot1=plot(range,f1,'r');
plot2=plot(range,f2,'m');
hold off;
我想在 R 中创建类似的东西。我尝试过这种方式:
x <- rnorm(1000)
h <- hist(x, breaks = 20)
a <- h$counts
b <- h$mids
L <- b[2] - b[1]
area <- sum(L*a)
frequency = a/area
range <- seq(b[1],b[20], by = 0.1)
f1 <- dnorm(range,0,1)
f2 <- dnorm(range,2,2)
barplot(frequency, names.arg = c(b))
我在这里停了下来,因为我不知道如何在当前绘图中添加另一个图表。我尝试使用 ggplot2,但我对此没有太多经验,而且我未能使用该库创建 barplot。
如果有办法用 ggplot2 做到这一点,我想通过解释来了解它,因为我想学习它。我也会欣赏传统情节系统的解决方案。
附言我使用了barplot(frequency, names.arg = c(b)),因为我读过here,在R 中没有对应Matlab 的bar 函数。
【问题讨论】: