2013-03-14 5 views
6

나는 하나의 두 그래프 인 ggplot2으로 간단한 고전 플롯을 만들었습니다. 그러나 나는 전설을 보여주는 데 어려움을 겪고있다. 전설을 보여주지 않습니다. 나는 용융물을 사용하지 않았고 모양을 바꾸지 않았다. 나는 고전적인 방법을 사용한다. 아래는 제 코드입니다.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

관련 문제