2015-05-06 6 views
5

bu basit ggplot düşünün.Tuval boyutunu ggplot'ta nasıl kontrol edebilirim? <p><img src="https://i.stack.imgur.com/Psjm9.png" alt="enter image description here"></p> <p></p> Üzerinde siyah bir kenar çekti, bu yüzden ne kadar büyük hayal etmek kolay:

Bu çizimin neden bu kadar büyük olduğunu anlamıyorum. Kodumda ggplot'a, arsa üstünde veya altında herhangi bir alan olmasını istediğim hiçbir şey yoktur.

Her seferinde bu bana benziyor. Tuval boyutunu ggplot'ta nasıl kontrol edebilirim? ggplot2 plot.margin and/or panel.margin theme options Eğer yeterince tuval çıktı boyutları ayarladıktan sonra, iç kenar boşluklarını kontrol edebilmek olmalıdır kullanma

library(ggplot2) 

hex=c("#CC0000", "#90BD31", "#178CCB")  

q <- ggplot(data=NULL) 
    q <- q + geom_rect(data=NULL, aes(xmin=0, xmax=1, ymin=0.5, ymax=1.5), fill=hex[1]) 
    q <- q + geom_rect(data=NULL, aes(xmin=1.5, xmax=2.5, ymin=0.5, ymax=1.5), fill=hex[2]) 
    q <- q + geom_rect(data=NULL, aes(xmin=3, xmax=4, ymin=0.5, ymax=1.5), fill=hex[3]) 
    q <- q + annotate("text", x=.5, y=0.1, label='Impaired', size=4) 
    q <- q + annotate("text", x=2, y=0.1, label='Normal', size=4) 
    q <- q + annotate("text", x=3.5, y=0.1, label='Optimal', size=4) 
    q <- q + coord_fixed() 
    q <- q + theme_classic() 
    q <- q + theme(axis.line=element_blank(), 
        axis.text.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks=element_blank(), 
        axis.title.x=element_blank(), 
        axis.title.y=element_blank(), 
        panel.background=element_blank(), 
        panel.border=element_blank(), 
        panel.grid.major=element_blank(), 
        panel.grid.minor=element_blank(), 
        plot.background=element_blank()) 
    q 
+0

buldum doğrudan cihaz. Birini png(), pdf() veya başka bir favori ile açın ve özellikle boyut, piksel veya cm cinsinden, ihtiyaçlarınıza uygun çıktıya ayarlayın. Daha fazla yardım, yukarıda tedarik etmediğiniz veriler ile tamamen tekrarlanabilir bir örneğe ihtiyaç duyacaktır (hex eksik). –

+0

Eksik 'hex' için üzgünüm ... Ekleyeceğim. Size katılıyorum. Bahsetmediğim şey, bu ggplot'un Parlak bir uygulamada kullanılmakta olmasıdır. Bu yüzden, grafik çıktı cihazını önerdiğiniz gibi makul bir şekilde kontrol edemiyorum. PS 'hex' dışında, her şey tekrarlanabilir olmalıdır. –

+0

Her iki "parlak :: plotOutput" ve "parlak :: renderPlot" yükseklik ve genişlik argümanlarını alır ... – Gregor

cevap

5

. Bu kesinlikle normal bir grafik cihazlar için çalışırken hem de parlak uygulama içinde çalışması gerekir: Ben her zaman tutarlı tuval ve diğer tüm boyutlarını almak için anahtarı grafik çıkışını kontrol etmek olduğunu

library(ggplot2) 
library(grid) 

hex=c("#CC0000", "#90BD31", "#178CCB")  

q <- ggplot(data=NULL) 
    q <- q + geom_rect(data=NULL, aes(xmin=0, xmax=1, ymin=0.5, ymax=1.5), fill=hex[1]) 
    q <- q + geom_rect(data=NULL, aes(xmin=1.5, xmax=2.5, ymin=0.5, ymax=1.5), fill=hex[2]) 
    q <- q + geom_rect(data=NULL, aes(xmin=3, xmax=4, ymin=0.5, ymax=1.5), fill=hex[3]) 
    q <- q + annotate("text", x=.5, y=0.1, label='Impaired', size=4) 
    q <- q + annotate("text", x=2, y=0.1, label='Normal', size=4) 
    q <- q + annotate("text", x=3.5, y=0.1, label='Optimal', size=4) 
    q <- q + coord_fixed() 
    q <- q + theme_classic() 
    q <- q + theme(axis.line=element_blank(), 
        axis.text.x=element_blank(), 
        axis.text.y=element_blank(), 
        axis.ticks=element_blank(), 
        axis.title.x=element_blank(), 
        axis.title.y=element_blank(), 
        panel.background=element_blank(), 
        panel.border=element_blank(), 
        panel.grid.major=element_blank(), 
        panel.grid.minor=element_blank(), 
        plot.background=element_blank(), 
        plot.margin=unit(c(0,0,0,0), "cm"), 
        panel.margin=unit(c(0,0,0,0), "cm")) 
    q 

No margin output

İlgili konular

 İlgili konular