2011-09-27 1 views
10

私は、1つのx変数、1つ以上のファセット変数、および複数の異なる変数を持つデータフレームを持つ問題に遭遇することがよくあります。時には、異なるy変数を別々の線として同時にプロットしたいと思うことがあります。しかし、それは常に私が望むサブセットだけです。私は、 "変数"をカラムとして取得し、それを使用するためにmeltを使用しようとしました。元のデータセットにあったすべてのカラムが必要な場合に機能します。通常はしません。複数のy値をggplot2で別々の行としてプロットする正しい方法

今私は本当にラウンドアバウトのように感じています。 mp3に対してdisp、hp、wtをプロットしたいとします。

ggplot(mtcars, aes(x=mpg)) + 
    geom_line(aes(y=disp, color="disp")) + 
    geom_line(aes(y=hp, color="hp")) + 
    geom_line(aes(y=wt, color="wt")) 

これは本当に冗長です。私が最初にmtcarsを溶かすと、すべての変数が溶けてしまいます。そして、私が望んでいない他の変数をプロットします。

誰かがこれを行う良い方法はありますか?

答えて

8

ggplotは、常にそれはそうmelt長い形式のデータフレームを好む:

mtcars.long <- melt(mtcars, id = "mpg", measure = c("disp", "hp", "wt")) 
ggplot(mtcars.long, aes(mpg, value, colour = variable)) + geom_line() 
+0

をので、対策部品は私が無視したものです。私はこれが正しい方法だと思う、あなたが対話的に探検しているときにちょっと迷惑だ。 –

+2

@Chris - あるいは、あなたが示唆したようにdata.frame全体を溶かし、 'ggplot()'呼び出しで 'subset()'をデータ引数として使うと、別のものをプロットしようとしていて '溶かす – Chase

関連する問題