R 直方图的z-叠加序列图
我有一个人口的时间序列柱状图,我想用一个图来表示。我试图避免把所有的柱状图放在一个x,y的图中,这会变得非常混乱。相反,我想制作一个图形,绘制一系列只有x轴的直方图(对于我的数据来说,形状和x值才是最重要的),每个直方图垂直堆叠在另一个之上。换句话说,我可以制作一组单独的柱状图,将它们导出到Illustrator,然后将它们一个接一个地放在一个垂直行中,并将垂直“z轴”标记为时间,但似乎可以在函数R 直方图的z-叠加序列图,r,R,我有一个人口的时间序列柱状图,我想用一个图来表示。我试图避免把所有的柱状图放在一个x,y的图中,这会变得非常混乱。相反,我想制作一个图形,绘制一系列只有x轴的直方图(对于我的数据来说,形状和x值才是最重要的),每个直方图垂直堆叠在另一个之上。换句话说,我可以制作一组单独的柱状图,将它们导出到Illustrator,然后将它们一个接一个地放在一个垂直行中,并将垂直“z轴”标记为时间,但似乎可以在函数hist中的R中这样做,可以将freq=FALSE设置为,以绘制密度而不是频率。这将缩放直方图的y轴
hist
中的R中这样做,可以将freq=FALSE
设置为,以绘制密度而不是频率。这将缩放直方图的y轴,将注意力集中在形状上,而不是振幅上。但是,即使使用默认的频率直方图,绘图的形状也会相同
下面是一个示例图,其中设备分为4行1列。每个直方图具有不同的分布,但所有图对直方图使用相同的分块(即中断
参数):
例1:
在函数
hist
中,可以将freq=FALSE
设置为,以绘制密度而不是频率。这将缩放直方图的y轴,将注意力集中在形状上,而不是振幅上。但是,即使使用默认的频率直方图,绘图的形状也会相同
下面是一个示例图,其中设备分为4行1列。每个直方图具有不同的分布,但所有图对直方图使用相同的分块(即中断
参数):
例1:
你应该试着向你信任的人解释这一点,以便对其清晰性给出坦诚的意见。你应该试着向你信任的人解释这一点,以便对其清晰性给出坦诚的意见。
set.seed(1)
f1 <- rnorm(100, mean=0, sd=1)
f2 <- rnorm(100, mean=3, sd=3)
f3 <- rnorm(100, mean=4, sd=1)
f4 <- rnorm(100, mean=7, sd=3)
breaks <- pretty(c(f1, f2, f3, f4), n=20)
x11(width=4, height=8)
op <- par(mfcol=c(4,1))
hist(f1, freq=FALSE, breaks=breaks)
hist(f2, freq=FALSE, breaks=breaks)
hist(f3, freq=FALSE, breaks=breaks)
hist(f4, freq=FALSE, breaks=breaks)
par(op)
set.seed(1)
N <- 100
M <- 7
MEAN <- c(1:M)
SD <- MEAN*0.2+1
RES <- list()
for(i in seq(M)){
RES[[i]] <- rnorm(N, mean=MEAN[[i]], sd=SD[[i]])
}
breaks <- pretty(unlist(RES), n=20)
x11(width=4, height=10)
op <- par(mfcol=c(M,1), mar=c(1,3,0,0), oma=c(3,2,1,1))
for(i in seq(M)){
h1 <- hist(RES[[i]], breaks=breaks, plot=FALSE)
plot(h1$mids, h1$densit, t="n", xlab="", ylab="", xaxt="n")
grid()
lines(h1$mids, h1$densit, t="S")
text(par()$usr[1], par()$usr[3]+(par()$usr[4]-par()$usr[3])*0.9, labels=paste("t", i), pos=4)
if(i == M){
axis(1)
} else {
axis(1, labels=FALSE)
}
}
mtext("Density", outer=TRUE, side=2, line=0)
par(op)