2016-11-27 19 views
3

ggplotに凡例を追加しようとしていましたが、惨めに失敗しました。私は関数scale_colour_manual()を試しましたが、凡例は表示されません。次のようにrのgeom_line()グラフに凡例を追加

ggplot()+ 
geom_line(data=Summary,aes(y=Y1,x= X),colour="darkblue",size=1)+ 
geom_line(data=Summary,aes(y=Y2,x= X),colour="red",size=1 ) 

マイデータフレーム「要約」です:

X   Y1   Y2 
139 1.465477e+16 7.173075e+15 
277 1.044803e+16 9.275002e+15 
415 1.059258e+16 8.562518e+15 
553 1.033283e+16 8.268984e+15 
691 9.548019e+15 1.022248e+16 
830 1.008212e+16 8.641891e+15 
968 9.822061e+15 9.315856e+15 
1106 9.948143e+15 9.178694e+15 
1244 1.013922e+16 8.825904e+15 
1382 9.815094e+15 9.283662e+15 

は同じグラフ上にXに対してY1、Y2をプロットし、横に凡例を追加する方法を私に教えてください。

答えて

9

ggplot凡例を作成するには、colouraes(...)内に移動すると自動的に凡例が作成されます。その後、我々はscale_color_discrete経由凡例ラベルを調整することができます。

ggplot()+ 
    geom_line(data=Summary,aes(y=Y1,x= X,colour="darkblue"),size=1)+ 
    geom_line(data=Summary,aes(y=Y2,x= X,colour="red"),size=1) + 
    scale_color_discrete(name = "Y series", labels = c("Y2", "Y1")) 

enter image description here

+1

Nathan、ご返信ありがとうございます。 aes()内に色を配置すると動作します。私は自分でそれを理解しただろうとは思っていません! – ausworli

1

は単一geomコールを使用して、よりコンパクトな答えを提供するために:

ggplot2本当に長いデータ(キーと値のペアが好き)よりも広い(多くの列)。これには、tidyrまたはreshape2のようなパッケージを使用してプロットする前にデータを変換する必要があります。このようにして、aesコールの中に凡例を生成する色を示す変数を持つことができます。あなたのデータのために

:あなたはその後、ヘルパーのscale_colorシリーズを経由して凡例をカスタマイズすることができ

library(tidyr) 
library(ggplot2) 

plot_data <- gather(data, variable, value, -x) 

ggplot(plot_data, aes(x = x, y = value, color = variable)) + 
    geom_line() 

関連する問題