2010-08-05 11 views
8

Bazı 100k değerlerim var. 0,20kb,...,100kbR eğrilerinin ekseninde sayı biçimlendirmesini denetleme

: burada R bir çizgi olarak çizmek zaman (.

bir plot(type="l") kullanılarak aşağıdaki x-ekseni kene sayılar örneğin 0e+00,2e+04,...,1e+05) Bunun yerine, olmalarını istiyorum (bilimsel biçimde basılır)

B) aynı ancak şimdi ilk koordinat 1 olmalıdır (yani 0 yerine 1'den başlamaya başlıyor). ...

BTW R diziler 1'den başlar numaralandırma (perl'de diziler aksine, java vs) kullanmak bu yüzden "onlar" 0'dan başlayarak karar çizdirirken neden merak

cevap

8

A) yukarıdaki ile aynı

R> xpos <- seq(0, 1000, by=100) 
R> plot(1:1000, rnorm(1000), type="l", xaxt="n") 
R> axis(1, at=xpos, labels=sprintf("%.2fkb", xpos/1000)) 

B) xpos

+0

Bu doğru değil. numaranın yanındaki "kb" yi eklersiniz, ancak sayıyı değiştirmeden bırakın (1000 ile ayırmak yerine) –

+0

en azından erkeğe doğru cevap için oy verin – John

0

soru oldukça eskidir ayarlamak ama açıklanan problemin birden fazla çözümü için baktığında oldukça yüksek sırada yer aldı. Bu yüzden, bunu oldukça geç cevap olarak ekliyorum ve bazılarının başkalarına yardım edebileceğini umuyoruz :-).

Bazı durumlarda, R önerileriyle onaylanan konumların kullanılması yararlı olabilir. R, bu amaç için işlevini sağlar. Muhtemelen R2.X'da değil, sadece R3.X'dan beri mevcut değildi.

A)

myTicks = axTicks(1) 
axis(1, at = myTicks, labels = paste(formatC(myTicks/1000, format = 'd'), 'kb', sep = '')) 

B) plot(rnorm(1000)) gibi verileri çizmek durumunda

, daha sonra ilk x değeri 1 olup 0. Bu nedenle, otomatik numaralandırma 1. Belki bu bir ile başlar R bir önceki sürümü ile ilgili sorun mu var?