Birden çok sayfa üzerinde bir ggplot facet_wrap
çizimini çizmeye çalışan bir işlev yazmaya çalışıyorum. Bu özellik, ggplot2 özelliği yapılacaklar listesindeki gibi görünüyor. İhtiyacım olan sayfa sayısını, sayfa başına ihtiyacım olan data.frame
numaralı satır sayısını bulmak için bazı küçük hesaplamalar yapıyorum.R + ggplot: Birden çok sayfa üzerinde çizim yapma
pdf(filename)
for (i in seq(num_pages)){
slice = seq(((i-1)*num_rows)+1,(i*num_rows))
slice = slice[!(slice > nrow(df.merged))]
df.segment=df.merged[slice,]
p <- ggplot(df.segment, aes(y=mean,x=phenotype))
p <- p + geom_bar(stat="identity",fill="white",colour="black")
p + facet_wrap("ID",scales="free_y",ncol=n_facets,nrow=n_facets)
}
dev.off()
Benim sorunum, pdf()
ve dev.off()
fonksiyonları arasında, böyle bir for döngüsü içinde tüm kadar sararak, döngü için bir şey yapmak için ggplot beklemek görünmüyor olmasıdır, yani ve döngüsünden çok hızlı bir şekilde yanıp söner ve geçersiz bir PDF çıkarır. Ben i = 1
ayarlarsanız
, böylece ben alana kadar kod çalıştırmasına, i=2
set sonra, for döngüsü içinde yukarıdaki kodu çalıştırmak, pdf()
başlatın ve (i=3
) daha sonra ortaya çıkan PDF cihazı kapatmasına sıkılmış parlak.
Bir sonraki yinelemeye geçmeden önce son çizginin çizmeyi bitirmesini beklemek için for döngüsünü elde etmenin bir yolu var mı?
vay. Baskının böyle kullanılabileceği hakkında hiçbir fikrim yoktu. –
Çünkü p 'bir nesnedir. Kodunuzun son satırı 'p' nesnesini değiştirir, ancak daha sonra cihaza' yazdırmak() 'yı istersiniz. – JoFrhwld
Yup, bu yaygın bir engel. Bazen ggplot2'de bir işlev yazarım ve son bölümün etrafında print() 'ı atıyorum, bu yüzden çıktı almayın ... – aL3xa