2014-10-23 2 views
5

여기 테이블을 사용할 수 있습니다 : http://ulozto.cz/xAeP3Ahn/res2-txt. 나는 그 점에서 점 줄거리를 만들기 위해 노력하고있다.ggplot 및 기본 플롯 기능을 사용하여 다른 결과 얻기

res2<-read.table("res2.txt", header = TRUE, sep="\t") 

및 2 플롯을 만들 :

나는 나의 표를 참조하십시오.

(1)이 하나의 플롯 기능을위한 스크립트입니다 :

plot(res2$V2, res2$dist06, type = "n") 
points(subset(res2$V2, year == 2006), subset(res2$dist06, year == 2006), pch = 19, col = "red", cex = 1) 
points(subset(res2$V2, year == 2007), subset(res2$dist06, year == 2007), pch = 19, col = "green", cex = 1) 
points(subset(res2$V2, year == 2008), subset(res2$dist06, year == 2008), pch = 19, col = "black", cex = 1) 
points(subset(res2$V2, year == 2009), subset(res2$dist06, year == 2009), pch = 19, col = "blue", cex = 1) 
points(subset(res2$V2, year == 2011), subset(res2$dist06, year == 2011), pch = 19, col = "yellow", cex = 1) 
legend("topright", c("2006", "2007", "2008", "2009", "2011"), 
    col= c("red", "green", "black", "blue", "yellow"), 
    pch = c(19,19,19,19,19)) 

(2) ggplot2에 대한 :

results from simple plot function (1) and froom ggplot2 (2)

: 여기
res2$year<-as.factor(res2$year) # consider year variable as discrete 
ggplot(data=res2, aes(x=V2, y=dist06, color=year)) + geom_point(shape=16, pch=50) + 
    xlab("threshold") + ylab("Euclidean distance") + 
    scale_fill_hue(name="year") + # set legend title 
    scale_colour_manual(values=c("red", "green", "black", "blue", "yellow")) + 
    theme_bw() 

내 결과입니다

제 질문은 다른 점이 있습니까? 플롯의 n이 다르게 생성 되었습니까?은 다른 색상과 범례에서만 문제가됩니까? "부분 집합"이 잘못 정의 되었습니까? 왜 2006 년이 둘 다 빨간색으로 표시되었지만 그래프에서 다른 위치를 차지하는 이유는 무엇입니까? 2011 년 및 다른 것과 동일합니까? 내가 어디서 잘못한거야? 모든 추천을 주셔서 감사합니다. 나는 3 일째 여기에서 길을 잃습니다.

여기 plot from same data in excel

+0

나는 plot (1)이 귀하의 질문에있는 코드에 의해 생성되지 않는다고 생각합니다. 보십시오 :'subset (res2 $ V2, year == 2006)'; '숫자 (0)'. – Henrik

+0

당신의 질문에 대한 대답이 아니지만, 매년 "point"콜을 피하기 위해 "col"벡터와 "year"컬럼을 부분 집합하여 색 벡터를 만들 수 있습니다 : plot (dist06 ~ V2, data = res2, type = "n")'; 'points (dist06 ~ V2, data = res2, col = col [factor (res2 $ year)])' – Henrik

답변

4

나는이 subset의 잘못된 사용의 부작용 가정하자 (2) 권리이어야 내 엑셀에서 resuls, 그래서 ggplot2의 플롯이다. 그것의 첫 번째 인수는 그래서 같은 전체 데이터 프레임이어야한다 :

subset(res2, year == 2006)$V2 

또는

subset(res2, year == 2006, select = V2) 

(사이드 참고 :이 명령에 의해 반환 된 객체 다르지만, 모두 플롯을 위해 작동합니다)

나는 브라켓 표기법을 사용하는 것이 좋습니다 것 :

res2$V2[res2$year == 2006] 

어느 쪽이든, 당신은 얻을 것이다 교류를 orrect 줄거리 :

당신이다시피

enter image description here

, 당신은 복사/ggplot 접근 방식을 많이 붙여 넣기 할 필요가 없습니다. 좋은!

+0

고맙습니다 @tonytonov, 나는 그런 생각을하지 않을 것입니다! 내가 제안한대로 "부분 집합"을 변경했으며 작동합니다. 다시 한 번 감사드립니다! :) – maycca

+0

당신은 오신 것을 환영합니다! – tonytonov