2016-04-05 27 views
0

Bu tür histogram R'de nasıl yapılır? expectedSpesifik Histogram R

Ben

plot(df$Value, type = 'l') 
polygon(df$Value, col='red') 

çalıştı Ama sonuç ggplot2 ile

result

+0

tekrarlanabilir bir örnek 'arsa olun (x <- C (0, runif (100, 1, 1), 0), tür = 'n'); Çokgen (x, col = 'kırmızı', kenarlık = NA) ' – rawr

cevap

1

Bir başka olası bir yaklaşım sunmak için şunları yapabilirsiniz met Bu grafik, temel R grafiklerini kullanarak oldukça kolay. Genelde çizim grafiklerini baz grafikleri kullanarak elle çizmeyi tercih ederim çünkü çizimin tüm yönleri üzerinde hassas kontrol sağlıyor. Dahası, bu tür grafiklerin ilkel grafik elemanlarından nasıl oluşturulacağını tam olarak düşünerek zaman harcadığınız zaman, bunları tamamen anlamsızlaştırıyor, ki bu da aslında kavramsal açıdan gerçekten çok basit olduklarını anladığınızı kastediyorum. grafiksel yapı. Bu özel durumda, segments()'a tek bir vektörlü çağrı kullanılarak birincil grafiksel eleman (histogram çubuklarının kendilerine atıfta bulunarak) oluşturabiliriz.

## 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 

plot

0

İki çözümler lüzumlu değildir

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") 
+0

Çalışır. Teşekkürler! –