2013-04-20 17 views
23

Bir barplot oluşturmaya çalışıyorum ancak y ekseni ölçeği çok kısa. İşte benim kod:R dikdörtgeni Y ekseni ölçeği çok kısa

barplot(as.matrix(dat), log="y", ylim=c(10000,100000000), beside=TRUE, 
     ylab = "Number of reads", col = c("gray","black","white")) 

short y axis

O (İlim göre) eksen için yer bırakır, ancak gerçek eksen doldurmak değildir. Ben oldum? Barplot ve birkaç şey denedim (etrafında googling gelen xpd = F, yaxs = c(10000,10000000,5 çalışması gerektiğini düşündüm, ama değil).

Bunun küçük bir şey olduğunu biliyorum, ama aslında çalışmak yerine gerçekte takılıp kaldığım bir tür sorun, bu yüzden herhangi bir yardım çok takdir edilecek!

Düzelt: Girdiler için alkışlar!

İlk başta ylim olmadan arsa yaptım, ama daha da tuhaf bir eksenle (aynı problemle) sonuçlanır; Aslında, daha güzel bir aralıklı eksen vermek için ylim değerlerimi seçtim.

dat <- read.table(text="D2,D3n,D3m,D4n,D4m 
21234722,34262282,31920464,25486357,20712943 
35343,64403,22537,39934,46547 
126646,312286,101105,81537,76944", header=TRUE, sep=",") 

Düzenleme 2: - Ben Ar güncellenmiş ve şimdi ince çizer - teşekkürler herkesi @DWin doğru vardı Burada

original no ylim veri var!

+0

onun daha iyi 'arsa log (y) olabilir' – Nishanth

+2

Eğer 'dat' gönderebilir . böylece kodu çalıştırabiliriz. – Nishanth

+1

Hmm. Daha uzun bir log10 y ekseni alıyorum. 1e + 08'e kadar gider. MacOS'taki R 3.0.0, Snow Leopard. Bu yüzden, kurulumunuzun ne olduğunu bize söylemeniz gerekebilir ve eğer eskiyse lütfen güncelleyin. Ayrıca senin komplonun çok yanıltıcı olduğunu düşünüyorum. –

cevap

26

ylim'u ayarlamaya çalıştığınızda kötü değerler veriyorsunuz. Bu bakınız Örneğin (a zoom gibi) arsa ölçeğini değiştirecek bu:

par(mfrow=c(2,1)) 
tN <- table(Ni <- stats::rpois(100, lambda = 5)) 
r <- barplot(tN, col = rainbow(20),ylim=c(0,50),main='long y-axis') 
r <- barplot(tN, col = rainbow(20),main='short y axis') 
Diğer bir seçenek elle axis ve usr kullanarak eksenleri olmadan çizmek ve onu ayarlamaktır

enter image description here

:

require(grDevices) # for colours 
par(mfrow=c(1,1)) 
r <- barplot(tN, col = rainbow(20),main='short y axis',ann=FALSE,axes=FALSE) 
usr <- par("usr") 
par(usr=c(usr[1:2], 0, 20)) 
axis(2,at=seq(0,20,5)) 

enter image description here

+1

Ylim'i, sadece uygun olmayan bir değere ayarladı. –

+0

@MatthewLundberg benim kötü! Bunu görmedim! – agstudy

-3
barplot(data) 

enter image description here

barplot(data, yaxp=c(0, max(data), 5)) 

enter image description here

yaxp = C (Miny ekseni Maxy ekseni Aralığı)

+0

Bu, R 3.3.2'de çalışmaz. –

+0

Y eksenini en yüksek değere ölçeklendirmenin neden varsayılan değer olmadığını merak ediyorum: Çubukların yüksekliklerini her çubuğun üzerine koymaya çalışırsanız, çubukların maksimum yükseklikteki metni kırpılır. Bu varyantı düşünün: p <- barplot (as.matris (dat), ylab = "Okuma sayısı", col = c ("gri", "siyah", "beyaz")); y <- lapply (dat, FUN = max); metin (x = p, y = y, etiketler = y, col = "kırmızı", pos = 3) –