2012-12-18 20 views
6

jestem kreślenia wykres słupkowy za pomocą następującego kodu:Jak kontrolować odstęp między paskami?

heights1=c(5,5,4.5,4) 
barplot(heights1, main="Language ", names.arg=c("Hindi R/W", "Speak" , "English 
R/W","Speak"), ylab=" level ", xlab="Language starting with mostly used", 
cex.names=0.8, col=c("darkblue","red")) 

Wyjście przychodzi tak:

enter image description here

Ale co chcę jest, że "polskie R/W" i „Mów "należy połączyć bez luki, a następnie pojawi się spacja, a następnie połączyć" Angielski R/W "i" Mów ". Jak mam to zrobic?

Odpowiedz

6

Powinieneś dodać argument space= do swojej funkcji barplot(), gdzie cyfry odpowiadają spacji przed każdym słupkiem.

heights1=c(5,5,4.5,4)  
barplot(heights1, main="Language ", names.arg=c("Hindi R/W", "Speak" , "English 
    R/W","Speak"), ylab=" level ", xlab="Language starting with mostly used", 
    cex.names=0.8, col=c("darkblue","red"),space=c(0.2,0,0.2,0)) 

enter image description here

+0

To odpowiada na pytanie, ale (dla mnie) nie rozwiązuje problemu, że dane z PO nie są obecnie w bardzo przydatnym formacie dla funkcji 'barplot'. – A5C1D2H2I1M1N2O1R2T1

6

Twoje życie byłoby o wiele łatwiejsze, jeśli dane zostały prawidłowo sformatowany. Funkcja barplot pobiera dane wejściowe z vector lub matrix. Gdy dane wejściowe to matrix, R może użyć dimnames do automatycznego oznaczania rzeczy za Ciebie.

Spróbuj tego:

heights1 = c(5, 5, 4.5, 4) 
barplot(t(matrix(heights1, ncol=2, byrow=TRUE, 
       dimnames=list(c("Hindi", "English"), 
           c("Read/Write", "Speak")))), 
     main="Language ", ylab="Level", 
     xlab="Language starting with mostly used", 
     col=c("darkblue", "red"), 
     beside=TRUE, ylim = c(0, 6), 
     legend.text = TRUE, 
     args.legend = list(x = "topright")) 

enter image description here

Jeżeli odstęp między tymi dwiema grupami jest zbyt dużo, to sugestia przez @Didzis właściwe jest tu. Dodaj space = c(0, .2) do komendy barplot, pamiętając o dane z dokumentacji:

Jeśli height jest macierzą i beside jest TRUE, space może być określona przez dwóch liczb, gdzie pierwsza jest przestrzeń pomiędzy barów w ta sama grupa, a druga - przestrzeń między grupami. Jeśli nie podano go jawnie, domyślnie jest to c(0,1), jeśli wysokość jest macierzą, a obok jest TRUE, a inaczej 0.2.

Powiązane problemy