2009-09-08 22 views
5

x eksenli etiketlerin iki satıra bölünmesini sağlamaya çalışıyorum. Etiketlerin 45 derece döndürülmesini de istiyorum. Bunu nasıl yapabilirim?Temel grafiklerde eksen etiketlerini 2 satıra bölmek mümkün mü?

var bugüne kadar Ne:

N <- 10 
dnow <- data.frame(x=1:N, y=runif(N), labels=paste("This is observation ",1:N)) 
with(dnow, plot(x,y, xaxt="n", xlab="")) 
atn <- seq(1,N,3) 
axis(1, at=atn, labels=labels[atn]) 
+0

? Demek istediğin "Bu bir gözlem ..." demek istiyorsun? –

+0

@chis_dubois Bu, cevabın ilk kısmı! Teşekkürler! –

cevap

12

Burada ggplot2 paketi ile bir olasılık.

N <- 10 
labs <- factor(1:N,labels=paste("This is \n observation",1:N)) 
dnow <- data.frame(x=1:N, y=runif(N), labels=labs) 
qplot(labels,y,data=dnow) + 
     opts(axis.text.x=theme_text(angle=-45,hjust=0)) 

alt text http://i28.tinypic.com/k024p3.png

Ben de baz paket örneklerini görmeye arıyorum!

+0

@chris - Sorunuzu kabul etmek istiyorum (tüm havalı çocuklar bu günlerde ggplot2 kullanıyor). Ancak, x eksenini elden önce düzeltebilir misiniz (ggplot karakterleri alfabetik olarak sıralar, bu yüzden onu bir faktöre dönüştürmeniz gerekir.) Teşekkürler! –

+0

İyi öneri. Bir faktör olarak değiştirdim, ancak sağ taraf hala kesiliyor. Bunu düzeltmeye çalışacağım. –

+0

bu ayrıca veri etiketleri için de çalışır - eğer onlara bir \ n düşürürseniz, çizgiler kesilir! – Andrew

4

Bu benim temel grafikleri kullanarak (benim ggplot2 gün önce) kadar pişirilir budur: Eğer 2 satır demek istiyorsun

## data 
N <- 10 
dnow <- data.frame(x=1:N, y=runif(N), labels=paste("This is \nobservation ",1:N)) 
## make margins wide 
par(mfrow=c(1,1), mar=c(10,10,6,4)) 
## plot without axix labels or ticks 
with(dnow, plot(x,y, xaxt="n", xlab="")) 
## the positions we ant to plot 
atn <- seq(1,N,3) 
## the label for these positions 
lab <- dnow$labels[atn] 
## plot the axis, but do not plot labels 
axis(1, at=atn, labels=FALSE) 
## plot labels 
text(atn, ## x position 
    par("usr")[3]-.05, ## position of the low axis 
    srt=45, ## angle 
    labels=lab, ##labels 
    xpd=TRUE, ## allows plotting outside the region 
    pos=2) 
## par("usr")[3] 
+0

Bence bu da önemli bir katkı. Ggplot2 ile muhtemelen bu gerekli değildir. Ama sahip olmak da güzel. Ayrıca, Paul Murrel'in R Graphics kitabında 'grid' ile daha iyi ve zarif bir çözüm verilmektedir. – Sam

İlgili konular