如何在R中进行这种直方图?
我试过
plot(df$Value, type = 'l')
polygon(df$Value, col='red')
但结果并不需要
答案 0 :(得分:1)
只是提供另一种可能的方法,您可以使用基本R图形相当容易地构建此图。我通常更喜欢使用基本R图形手动构建绘图,因为它允许精确控制绘图的所有方面。此外,我认为当你花时间考虑如何从原始图形元素构建这些类型的情节时,它完全揭开它们的神秘感,我的意思是你发展它们在概念和概念方面真的非常简单的理解图形结构。在这种特殊情况下,我们可以使用对segments()
的单个矢量化调用来创建主要图形元素(参考直方图条本身)。
## generate data
set.seed(5468L);
N <- 7700L;
df <- data.frame(Value=round(cumsum(c(0.07,runif(N-1L,-0.001,0.001))),5L));
## precompute plot parameters
xlim <- c(1L,N);
ylim <- c(-0.08,0.1);
xticks <- seq(xlim[1L],xlim[2L],276L);
yticks <- seq(ylim[1L],ylim[2L],0.02);
## plot
plot(NA,xlim=xlim,ylim=ylim,xaxs='i',yaxs='i',axes=F,ann=F); ## set range, nothing else
abline(h=yticks,col='lightgrey'); ## horizontal grid lines
segments(seq_len(N),0,y1=df$Value,lwd=0.3,col='#5599CC'); ## histogram bars
text(xticks,-0.005,xticks,adj=c(1,0.5),col='#666666',srt=90,xpd=T); ## custom x-axis in plot
mtext(yticks,2L,0.5,at=yticks,adj=1,las=1L,col='#666666'); ## custom y-axis on margin
答案 1 :(得分:0)
ggplot2的两个解决方案
a <- arima.sim(list(ar=.9), n = 200)#simulated data
df <- data.frame(x = 1:200, a = as.vector(a))
require(ggplot2)
ggplot(df, aes(x = x, y = a)) + geom_area()
ggplot(df, aes(x = x, y = a)) + geom_bar(stat = "identity", width = 1, position = "dodge")