2015-08-17 245 views
3

我已經看到關於x軸標記順序的幾個問題,但仍然沒有一個可以解決我的問題。 我試圖做一個密度圖,顯示的人採用百分制中每個分佈分數給出這樣r ggplot x軸刻度線順序

library(dplyr); library(ggplot2); library(ggtheme) 
ggplot(KA,aes(x=percentile,group=kscore,color=kscore))+ 
    xlab('Percentil')+ ylab('Frecuencia')+ theme_tufte()+ ggtitle("Prospectos")+ 
    scale_color_brewer(palette = "Greens")+geom_density(size=3) 

但x軸標記被下令像1,10,100,11,12,.., 2,20,21,...,99,而不是僅僅1,2,3,...,100這是我想要的輸出 enter image description here

我擔心這會影響整個情節不僅僅是標籤

+3

你的x變量是一個因素。你可能希望它是數字。 'KA $ percentile = as.numeric(as.character(KA $百分比))''。 – Gregor

+1

添加一個'dput(head(KA))'將有助於確認這個 – jeremycg

+1

...但是當您的排序明顯是按字母順序排列的「1,10,100,11,12,...,2」時,幾乎不需要確認。 – Gregor

回答

1

我將我的評論轉到答案,以便可以標記爲已解決:

你的x變量(幾乎可以肯定)是一個因素。你可能希望它是數字。

KA$percentile = as.numeric(as.character(KA$percentile)) 

當你看到奇怪的東西時,最好檢查一下你的數據。運行str(KA)是查看內容的好方法。如果你只想看課,sapply(KA, class)是一個很好的總結。

而且這是一個普遍的[R怪癖,如果你從要素轉換爲數字,以人格的方式去否則你可能只用一級的數字結束了:

year_fac = factor(1998:2002) 
as.numeric(year_fac) # not so good 
# [1] 1 2 3 4 5 
as.numeric(as.character(year_fac)) # what you want 
# [1] 1998 1999 2000 2001 2002 
+0

再次感謝! –