2013-03-26 10 views
9

Cześć, szarpałem, aby zrobić wykres słupkowy w ggplot, ale nie otrzymałem wyniku. Ramka danych jest następny:Tworzenie wykresu słupkowego w ggplot z pionowymi etykietami na osi X

z=data.frame(x1=read.table(textConnection(" 
Indicador 
Total 
Max. 
          Min. 
          Mean 
          Promedio.Aparatos 
          Promedio.Automotriz 
          Promedio.Belleza 
          Promedio.C.Internet 
          Promedio.Comp 
          Promedio.Deportes 
          Promedio.Educación 
          Promedio.Entretenimiento 
          Promedio.Gasolina 
          Promedio.C.Comerciales 
          Promedio.ATMs 
          Promedio.Hogar 
          Promedio.Libros.y.Música 
          Promedio.Moda 
          Promedio.Pagos.e.Impuestos 
          Promedio.Salud 
          Promedio.Servicios.Varios 
          Promedio.Supermercados 
          Promedio.Telefonia 
          Promedio.Viajes 
          Porcentaje.Aparatos 
          Porcentaje.Automotriz 
          PorcentajeBelleza 
          PorcentajeCompras.en.Internet 
          PorcentajeComputación 
          PorcentajeDeportes 
          PorcentajeEducación 
          PorcentajeEntretenimiento 
          PorcentajeGasolina 
          PorcentajeCentros.Comerciales 
          PorcentajeATMs 
          PorcentajeHogar 
          PorcentajeLibros.y.Música 
          PorcentajeModa 
          PorcentajePagos.e.Impuestos 
          PorcentajeSalud 
          PorcentajeServicios.Varios 
          PorcentajeSupermercados 
          PorcentajeTelefonia 
          PorcentajeViajes 
          "),header=T), 
x2=read.table(textConnection(" 
Número 
36001 
35916 
          12320 
          35889 
          4487 
          2751 
          673 
          1023 
          1062 
          4602 
          824 
          4438 
          4021 
          2577 
          31845 
          5443 
          641 
          6982 
          32868 
          4696 
          1594 
          9746 
          6239 
          13170 
          3973 
          2526 
          540 
          834 
          964 
          4291 
          755 
          3627 
          3254 
          2186 
          30356 
          4855 
          488 
          6612 
          33079 
          4105 
          1314 
          9284 
          5777 
          9666 
          "),header=TRUE)) 

Zbudowałem ten data.frame bo chcę pracować z zamówionych danych

tabla=z[order(z$Número,decreasing=TRUE),] 

Próbowałam z ggplot ale nie dostać mój wykres słupkowy z pionowe etykiety związane ze zmienną Indicador. Chciałbym w osi x zmiennej indicador aw y zmiennej osi Número ale z tego kodu mam brzydkie działki:

qplot(Indicador, data = tabla, geom = "bar") 

I wszystkie etykiety w osi X są tylko w jednej linii. Dzięki za pomoc i ktoś może mi pomóc, jak mogę umieścić kolor w barach.

Odpowiedz

33

Dla lepszej kontroli parametrów użyta funkcja ggplot().

Najpierw należy zmienić kolejność zmiennej Indicador zgodnie z Número, aby otrzymać zamówione paski. Znak minus przed tabla$Número oznacza kolejność odwrotną (od najwyższej do najniższej).

tabla$Indicador<-reorder(tabla$Indicador,-tabla$Número) 

Następnie należy podać wartości X i Y i używać stat="identity" wewnątrz geom_bar() wykreślić wartości rzeczywiste. Dzięki theme() i axis.text.x= można zmienić kierunek tekstu, a także dostosować pozycję pionową i poziomą tekstu pod osią x.

ggplot(tabla,aes(Indicador,Número))+ 
    geom_bar(stat="identity")+ 
    theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.5)) 

enter image description here

Sugestia: W publikacjach, wygląda lepiej użyć coś jak 45 stopni:

theme(axis.text.x=element_text(angle=45,hjust=1,vjust=0.5)) 
Powiązane problemy