2016-07-13 30 views
0

ggplot2を使用して、同じプロット上の線で2つの散布図をプロットしたいとします。私はまた、色を指定したい。ggplot2と同じプロット上の点と線

dat <- data.frame(x = 1:10, y1 = 2:11, y2 = 3:12) 
ggplot(dat, aes(x)) + geom_line(aes(y = y1, color = "y1"), color = "blue") + geom_line(aes(y = y2, color = "y2"), color = "red") + geom_point(aes(y = y1), color = "blue") + geom_point(aes(y = y2), color = "red") 

つの質問:

  1. どのように私は伝説を表示させるのですか?
  2. ggplot2の新機能です。私はこれを行う簡単な方法が必要であると信じています。見せてください。ありがとう。

enter image description here

答えて

1

あなたはggplot2で簡単にこれを行うにはreshape2からmelt機能を使用する必要があります。

enter image description here

dat <- data.frame(x = 1:10, y1 = 2:11, y2 = 3:12) 

library(reshape2) 
dat.melt = melt(dat, id = "x") 
> print(dat.melt) 
    x variable value 
1 1  y1  2 
2 2  y1  3 
3 3  y1  4 
4 4  y1  5 
5 5  y1  6 
6 6  y1  7 
7 7  y1  8 
8 8  y1  9 
9 9  y1 10 
10 10  y1 11 
11 1  y2  3 
12 2  y2  4 
13 3  y2  5 
14 4  y2  6 
15 5  y2  7 
16 6  y2  8 
17 7  y2  9 
18 8  y2 10 
19 9  y2 11 
20 10  y2 12 

ggplot(dat.melt, aes(x = x, y = value, color = variable)) + geom_line() + geom_point() 

EDIT 手動で色を設定する+ scale_color_manualを追加します。 enter image description here

+0

ありがとう。 '溶融 '機能を使用したくない場合はどうすればいいですか? –

+0

'melt'データは伝説を得るのに最も簡単な解決策です。 'ggplot2'は' aes'の中に 'color'引数を入れて凡例を正しく記入する必要があります。 – bVa

+0

'melt'を使って、' y1'では赤、 'y2'では青で色を指定するにはどうしたらいいですか? –

関連する問題