2013-10-10 2 views
3

나는 데이터 프레임 image.rgb을 가지고 있는데, 여기에 이미지의 각 좌표에 대해 r, g, b 값을로드했습니다 (jpegreshape 패키지 사용). 이제 다음과 같이 보입니다 :어떻게하면 ggplot2를 사용하여 (x, y, r, g, b) 좌표로 이미지를 플롯 할 수 있습니까?

> head(image.rgb) 
    y x   r   g   b 
1 -1 1 0.1372549 0.1254902 0.1529412 
2 -2 1 0.1372549 0.1176471 0.1411765 
3 -3 1 0.1294118 0.1137255 0.1176471 
4 -4 1 0.1254902 0.1254902 0.1254902 
5 -5 1 0.1254902 0.1176471 0.1294118 
6 -6 1 0.1725490 0.1372549 0.1176471 

이제 ggplot2를 사용하여이 '이미지'를 플롯하려고합니다. 내가 사용하여 한 번에 (적색 또는 녹색 또는 파랑) 특정 '채널'하나를 플롯 할 수 있습니다 :

ggplot(data=image.rgb, aes(
      x=x, y=y, 
      col=g) #green for example 
     ) + geom_point() 

을 ... 기본 ggplot2 컬러 규모

에 지정할 수있는 방법이 있나요 정확한 rgb 값은 내가 지정한 열에서 가져올 수 있습니까? base 패키지의 plot 기능을 사용

, 색상이되고 당신은 순서 scale_color_identity을 추가해야합니다 나는

with(image.rgb, plot(x, y, col = rgb(r,g,b), asp = 1, pch = ".")) 

을 사용할 수 있습니다하지만 ggplot2

+0

각 (x, y)에 대한 상기 데이터 프레임의 구조를 명확히하기 위해 - 범위 내의 화상 좌표 -이 하나 정확히 것 데이터 프레임의 항목 – user2175594

+0

ggplot (data = image.rgb, aes (x = x, y = y, col = rgb (r, g, b)) + geom_point() '? 여기에서 일하는 것 같습니다 ... – juba

+0

@juba rgb (r, g, b)는 col 인수에 전달 될 때 ggplot2에 의해 임의의 색이 지정되는 문자열 값을 생성하지만 실제 rgb 색으로 표시되지는 않습니다. – user2175594

답변

6

사용하여이 작업을 수행 할 수 있도록하고 싶습니다 "있는 그대로"촬영 :

제공된 샘플 데이터는 매우 비슷한 색상이므로 모든 점은 블래크처럼 보입니다. 케이. geom_tile와 다른 색이 약간 더 볼 수 :

ggplot(data=image.rgb, aes(x=x, y=y, fill=rgb(r,g,b))) + 
    geom_tile() + 
    scale_fill_identity() 

enter image description here

+2

'geom_raster()'는 고려해야 할 또 다른 옵션입니다. – bdemarest

관련 문제