亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

改變離散x尺度的順序

改變離散x尺度的順序

蕭十郎 2019-06-12 16:35:06
改變離散x尺度的順序我正在用具有離散x比例尺的ggmap制作一個隱藏的條形圖,x軸現在是按字母順序排列的,但是我需要重新排列它,使它按y軸的值排序(也就是說,最高的條形線將位于左邊)。我試過排序或排序,但是結果是對x軸進行排序,而不是分別對條形進行排序。我做錯了什么?
查看完整描述

3 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

嘗試手動設置x軸上的因子級別。例如:

library(ggplot2)# Automatic levelsggplot(mtcars, aes(factor(cyl))) + geom_bar()


# Manual levelscyl_table <- table(mtcars$cyl)cyl_levels <- names(cyl_table)[order(cyl_table)]mtcars$cyl2 
<- factor(mtcars$cyl, levels = cyl_levels)# Just to be clear, the above line is no different than:# mtcars$cyl2 
<- factor(mtcars$cyl, levels = c("6","4","8"))# You can manually set the levels in whatever order you please. ggplot(mtcars, aes(cyl2)) + 
geom_bar()


正如詹姆斯在他的回答中指出的,reorder是調整因子水平的慣用方法。

mtcars$cyl3 <- with(mtcars, reorder(cyl, cyl, function(x) -length(x)))ggplot(mtcars, aes(cyl3)) + geom_bar()


查看完整回答
反對 回復 2019-06-12
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

對我來說最好的方法是使用向量和類別,按照我需要的順序limits參數scale_x_discrete..我認為這是非常簡單和直接的解決方案。

ggplot(mtcars, aes(factor(cyl))) + 
  geom_bar() + 
  scale_x_discrete(limits=c(8,4,6))


查看完整回答
反對 回復 2019-06-12
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

你可以用reorder:

qplot(reorder(factor(cyl),factor(cyl),length),data=mtcars,geom="bar")

編輯:

要想在左邊有最高的酒吧,你必須使用一些雜念:

qplot(reorder(factor(cyl),factor(cyl),function(x) length(x)*-1),
   data=mtcars,geom="bar")

我希望這也有負面的高度,但它沒有,所以它的工作!


查看完整回答
反對 回復 2019-06-12
  • 3 回答
  • 0 關注
  • 851 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號