[問題] ggplot2請教

看板R_Language作者 (米蟲)時間9年前 (2015/06/03 01:19), 9年前編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/4 (看更多)
各位板友好,我的問題是,如何將ggplot繪製的堆疊長條圖,以堆疊的y值總合排序 附圖說明: http://imgur.com/bwv8fRn
我想要把這張圖的x類別以y總合降冪排列,也就是變成a,c,b,d的順序 請問該怎麼做呢? 以下為我畫出此圖的指令,求解 ------------------------------------ ##資料準備 hp=read.csv(textConnection( "class,year,amount a,99,100 a,100,200 a,101,150 b,100,50 b,101,100 c,102,70 c,102,80 c,103,90 c,104,50 d,102,90")) hp$year=as.factor(hp$year) ##運算資料 p=ggplot(data=hp) p+geom_bar(binwidth=0.5,stat="identity")+ aes(x=class,y=amount,label=amount,fill=year)+ theme() -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.128.54 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1433265541.A.194.html ※ 編輯: ardodo (1.161.128.54), 06/03/2015 01:20:10

06/03 09:02, , 1F
levels(hp$class) = c("a", "c", "b", "d")
06/03 09:02, 1F

06/03 09:05, , 2F
不想要手動改可以用 order 跟 tapply
06/03 09:05, 2F

06/03 09:07, , 3F
hp$class[order(tapply(hp$amount, hp$class, sum),
06/03 09:07, 3F

06/03 09:07, , 4F
decreasing = FALSE)]
06/03 09:07, 4F

06/03 09:07, , 5F
levels(hp$class) = hp$class[order(tapply(
06/03 09:07, 5F

06/03 09:08, , 6F
hp$amount, hp$class, sum), decreasing = FALSE)]
06/03 09:08, 6F

06/04 09:02, , 7F
cel大您好,我嘗試了您的code,出來的類別只有b,a,a,a耶?
06/04 09:02, 7F

06/04 10:13, , 8F
詳細的怎麼跑? 可以修改文章附上程式嗎?
06/04 10:13, 8F
文章代碼(AID): #1LRUM56K (R_Language)
文章代碼(AID): #1LRUM56K (R_Language)