2011-11-14 17 views
1

私は単純なgplot2ジッタプロットをRで生成しようとしています。xの値は1から100の整数です。このデータをプロットするとx軸は1から始まり、11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, etc.になります。昇順の値(例:1,2,3,4,5、...など)を作成するx軸ここで軸の値をggplot2で昇順に並べ替えますか?

は私のコードです:

data = read.csv('my_data_file', sep"\t") 
x_values = data[,1] 
y_values = data[,2] 
qplot(rank, score, geom="jitter") 

編集:私はまた、いくつかのnon-integerのxの値を持っていることを指摘している必要があります。理想的には、x軸を数字で昇順にして、x軸の末尾にnon-integerの値を追加します。 non-integer値のオーダーは問題ありません。

+0

(http://stackoverflow.com/questions/5208679/order-bars-in-ggplot2-bar-graph)。あるいは、これは連続的なものであってもバサルトなものであってもないかもしれない。 –

答えて

3

あなたはGSK3は言う@として、数値に変換する必要がありますが、this答えが指摘するように、そこにいくつかの困難があり、そしてあなたが使用する必要があります:[ggplot2棒グラフで注文バー]の可能な複製を

x_values <- as.numeric(levels(x_values))[x_values] 
+0

ありがとう、これはほとんど働いた。私は元の質問に2つの「非整数」のx値があることを述べておくべきです。このソリューションを試してみると、警告メッセージが表示されます。「強制されたNAs」これを解決する最善の方法は何ですか? – drbunsen

+0

あらかじめそれらを取り除く必要があります。数値xの値を代入したいと仮定して、car :: recodeを以下のように使うことができます: 'x_values < - recode(x_values、recodes =" '非整数x1' = '10'; '非整数x2' = '11 '")'(これが最も効率的な方法ではないかとは思うが) – ROLO

+1

@ROLOエラーを指摘してくれてありがとう。私は戸口から出てくる質問に答えてはいけません! :-) –

1

x変数には、CSV(Excelはこれが有名ですが)の周りに引用符があります。これは、Rがそれを要素として読み込み、デフォルトでレベルをアルファベット順に並べることを意味します。レベルを修正して、注文を修正します。

x_values <- as.integer(as.character(x_values)) 

はあなたの列のデータ型を参照してくださいstr(data)をお試しください:xは自然整数になりたいようですので、いっそ、あなたのデータ型を修正。データが大きい場合は、より効率的な変換方法があります。

関連する問題