2017-04-22 16 views
1

の順序を変更するscale_x_discrete(限界値)を取得することはできません。は私がコードで働いている私の軸

library(ggplot2) 
library(reshape2) 

hslresto <- read.delim("HSL_Resto.txt", header = TRUE, sep = "\t") 
hslrestomelted <- melt(hslresto, id.vars = c("HSL")) 

colnames(hslrestomelted) 
colnames(hslrestomelted) <- c("HSL", "Treatment", "Index") 

HSLplot <- ggplot(hslrestomelted, aes(HSL, Index, fill=Treatment)) + geom_bar(stat="identity", position=position_dodge(), show.legend = TRUE,scale_x_discrete(limits=c("Control", "10 mM C6", "100 mM C6", "1000 mM C6", "10 mM C10", "100 mM C10", "1000 mM C10"))) 


HSLplot 

私は、x軸は、私がscale_x_discreteに概説されている順序で表示されたいが、代わりにアルファベット順(1000mM C10,1000mM C6,100mM C10、...コントロール)で示している。私はscale_x_discreteコードを置いた場所、またはx軸が離散的とは見なされていない場所のどちらかで単純な問題であると確信していますが、Rが初めてのので、理解できません。私はまた、初期コードの外に移動しようとしたので、それは読んでいます:

HSLplot<- ggplot(hslrestomelted, aes(HSL, Index, fill=Treatment)) + geom_bar(stat="identity", position=position_dodge(), show.legend = TRUE) 
HSLplot + scale_x_discrete(limits=c("Control", "10 mM C6", "100 mM C6", "1000 mM C6", "10 mM C10", "100 mM C10", "1000 mM C10")) 
HSLplot 

そしてそれも動作しませんでした。これを理解する助けを借りてもよいですか?

答えて

0

私はHSLを因子(レベルを指定する)に変換すると、あなたが望むようにプロットすると思います。例:次に

levs <- c("Control", "10 mM C6", "100 mM C6", "1000 mM C6", "10 mM C10", "100 mM C10", "1000 mM C10") 

hslrestomelted$HSL <- factor(hslrestomelted$HSL, levels = lev) 

scale_x_discrete()ずにプロットしてみてください。

+0

また、シーケンスを常に維持するために 'factor'のパラメータとして' ordered = TRUE'が必要な場合があります。 – epi99

+0

これは本当に美しく機能しました!ありがとうございました!!! –

関連する問題