2012-12-25 2 views
4

ggplot2로 플롯하고 data.frame의 숫자 변수에 따라 요인을 재정렬하려고 할 때 항상이 문제가 발생하는 것처럼 보입니다.숫자 변수로 요인 재정렬

structure(list(Team = structure(1:32, .Label = c("ARI", "ATL", 
"BAL", "BUF", "CAR", "CHI", "CIN", "CLE", "DAL", "DEN", "DET", 
"GB", "HOU", "IND", "JAC", "KC", "MIA", "MIN", "NE", "NO", "NYG", 
"NYJ", "OAK", "PHI", "PIT", "SD", "SEA", "SF", "STL", "TB", "TEN", 
"WAS"), class = "factor"), Fans = c(49L, 145L, 175L, 75L, 104L, 
167L, 101L, 147L, 157L, 304L, 112L, 338L, 200L, 118L, 37L, 60L, 
65L, 225L, 371L, 97L, 163L, 87L, 84L, 102L, 111L, 85L, 422L, 
311L, 63L, 56L, 49L, 271L)), .Names = c("Team", "Fans"), row.names = c(NA, 
-32L), class = "data.frame") 

이 팬의 번호로 팀의 순서를 변경하지 않습니다

ggplot(total.fans, aes(x=reorder(Team, Fans), y=Fans)) + geom_bar() 

그리고이 호출이 하나의 데이터는 변경되지 않습니다 변환 :

transform(total.fans, variable=reorder(Team, -Fans)) 

내가 무엇을 놓치고를?

답변

3

factor() 함수를 사용하여 ggplot() 호출 외부에서 요인을 재정렬 한 다음 ggplot()을 사용할 수도 있습니다.

total.fans$Team <- factor(total.fans$Team , levels = total.fans[order(total.fans$Fans), 1]) 
ggplot(total.fans, aes(x=Team, y=Fans)) + geom_bar(stat="identity") 
+0

감사합니다. 해결책으로 받아 들일 것이지만, 다른 대답에 무엇이 잘못되었는지 알아 내려고합니다. – tcash21

5

내가 경고를 얻을 수 있지만, ggplot2 0.9.3와 나를 위해 작동 : 나는 당신이

enter image description here

ggplot(total.fans, aes(x=reorder(Team, Fans),y=Fans)) + 
    geom_bar(stat="identity") 
이 원하는 생각 (내가 플롯을 표시 할 수 있습니다 주석보다는 게시 ...)

+0

난 그냥 0.9.3로 ggplot 0.2.1에서 업그레이드 (ggplot (total.fans, AES (X = 재주문 (팀, 팬), Y = 팬)) + geom_bar을하려고 할 때이 오류가 나타납니다) 이름 바꾸기 오류 (x, .base_to_ggplot, warn_missing = FALSE) : 함수 "revalue" – tcash21

+2

을 찾을 수 없습니다.'plyr' 패키지도 업데이트했는지 확인하십시오. http://blog.rstudio.org/ 2012 년 12 월 6 일/ggplot2-plyr-release /) –