2013-03-14 21 views
6

私はggplot2という単純な古典的なプロットを作成しました。これは2つのグラフです。しかし、私は伝説を示すのに苦労しています。それは伝説を示していない。私は溶けて形を変えず、古典的な方法でしか使えませんでした。以下は私のコードです。ggplot2:凡例を表示するには

df<-read.csv("testDataFrame.csv") 
graph<- ggplot(df,aes(A)) + 

geom_line(aes(y=res1), colour = "1")+ 
geom_point(aes(y=res1),size = 5,shape=12)+ 

geom_line(aes(y=res2), colour = "2")+ 
geom_point(aes(y=res2), size = 5, ,shape=20)+ 

scale_colour_manual(values=c("red","green"))+ 
scale_x_discrete (name="X axis")+ 
scale_y_continuous(name="Y-axis")+ 
ggtitle("Test")+ 
#scale_shape_discrete(name ="results",labels=c("Res1", "Res2"),solid = TRUE) 
print(graph) 

データフレームは、次のとおりです。

A,res1,res2 
1,11,25 
2,29,40 
3,40,42 
4,50,51 
5,66,61 
6,75,69 
7,85,75 

上のグラフの凡例を表示する方法上の任意の提案?

答えて

6

ggplot2には、設定したすべての美的(aes)の凡例が表示されます。 group,colour,shapeなどです。 (下図のように)

A variable value 
1  res1 11 
... ... ... 
6  res1 85 
7  res2 75 

あなたはreshape2meltを使ってこれを実現することができます:そして、それを行うには、フォームにデータを取得する必要があります例えば

require(reshape2) 
require(ggplot2) 

ggplot(dat = melt(df, id.var="A"), aes(x=A, y=value)) + 
     geom_line(aes(colour=variable, group=variable)) + 
     geom_point(aes(colour=variable, shape=variable, group=variable), size=4) 

、あなたの場合ポイントをcolourにしない場合は、をgeom_point(aes(.))から削除してください。凡例のオプションについては、this linkに従ってください。

enter image description here

+0

ありがとうございます。カラー変数の名前を変更するにはどうすればいいですか?凡例の変数を表示する代わりに、結果などの名前を変更できますか?方法はありますか?私はちょうど色を削除し、scale_shape_discrete(name = "Results"、labels = c( "Res1"、 "Res1")、solid = TRUE)を使っています。色を変える方法がわからない? – SimpleNEasy

+0

溶けたdata.frameを 'df.m < - melt(df、id.var =" A ")'のような変数に直接/直接的に保存することです。今度は、 'df.m'カラム名をあなたが望むものに変更してください。 – Arun

+0

パーフェクト。ありがとうございました – SimpleNEasy

関連する問題