2017-05-02 4 views
1

ggplotを使用して棒グラフを作成したいとします。 x軸には、72項目あります。私は1から72の順番で項目を持っていきたいと思いますが、次の表を使ってデータをプロットすると、添付されたプロットのように順番にそれらを取得しません。Rのx軸上にあるアイテムの棒グラフを作成する方法ggplot2を使用する

p <-ggplot(data, aes(pos, log)) 
p +geom_bar(stat = "identity", aes(fill = group)) 

enter image description here あなたは、私はプロットを修正することができます方法を知っていますか?

+0

何順あなたがそれらを得るのですか? –

答えて

0

ここに問題があります。完全なスペルで語彙的な順序が得られるため、ASCIIシーケンスで「0」が「T」の前にあるため「10G」が「1T」の前に来ます。おそらくあなたが望んでいる(明らかに認識したり明示的に表現するのが難しい)のは、これらを主に数値コンポーネントで、そしてレターコンポーネントでは二次的にのみ欲しいということです。 「混合」gtoolsパッケージでmixedsort -functionで配信することができ、ソートのこの種:

library(gtools) # possibly after installing the package 
data$pos < factor(data$pos, levels=mixedsort(unique(dat$pos))) 
# then re-run your code 
1

「posが」文字です。 ggplotはそれを正しい順序で入れていると考えます。何を気にすることは「POS」の中の数字ではなく、末尾の文字がある場合は、その変数をトリミング可能性があり、再グラフを次のように

pos = c('10g', '11t', '1a') 
log <- c(3,4,5) 
data <- (data.frame(pos, log)) 

data$pos.2 <- as.numeric(substr(data$pos,1,nchar(data$pos)-1)) 

p <- ggplot(data, aes(factor(pos.2), log)) 
p +geom_bar(stat = "identity") 
関連する問題