2013-11-20 2 views
-2

당신은 예를 들어 ggplot 그래픽있는 경우 :R ggplot 그래프에서 버퍼를 반환하는 방법은 무엇입니까?

graphic <- ggplot(data.df, aes(x = Axis1, y = Axis2, shape = Plant, color = Type)) + geom_point(size = 5) 

당신이 PNG의 이진 내용으로 문자열 버퍼에이 그래픽을 변환 할 수 있습니까? 이것을 어떻게 달성할까요? 사전

당신이 png("myfile.png); print(myplot); dev.off() 또는 단지 래스터 데이터가 ggsave()와 중 하나 png() 장치에 이미지를 전송하면
+4

:

library(png) img.n <- readPNG(file.choose(), TRUE) 

숫자는 모두 덜 0보다 다시하려고합니다. 객체'graphic'는 R에있는 객체 일뿐입니다. 디스크 상에 존재하지 않으며'png' 또는 다른 파일 유형이 아닙니다 ... 그 외에도, 당신은 당신이 원하는 방식을 설명 할 필요가 있습니다. png를 "변환"하고 문자열 버퍼가 의미하는 바를 말하십시오. – Justin

+0

나는 그것이 조금 분명하다고 생각한다. 그 그래픽이 객체라는 것을 알고 있습니다. 예를 들어 : ggsave (filename = "example.png", plot = graphic)를 사용하면 디스크의 그래픽을 얻을 수 있습니다. 어떤 점에서이 함수는 이미지 형식으로 디스크에 객체를 씁니다. 이 중간 단계가 필요합니다. 왜냐하면 플로트를 저장하려면 버퍼가 필요하기 때문입니다. 이 이미지의 버퍼 표현이 ​​필요합니다. – Felo

+0

불분명하게 남아있는 것은'example.png' 바이너리가 아니라'graphic' 오브젝트를 찾지 못할 것으로 기대하고있는 것입니다. –

답변

1

에서

감사합니다. 당신은 PNG 패키지에서 readPNG하여 해당 데이터를 검색 할 수 있습니다 : 당신은 '당신 일에 대해 좀 더 설명해야 될 것 같아요

> str(img.n) 
'nativeRaster' int [1:480, 1:480] -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ... 
- attr(*, "channels")= int 4 
> max(img.n) 
[1] -1 
> head(img.n[img.n < -1]) 
[1] -2105377 -3487030 -4342339 -1250068 -6184543 -10329502 
관련 문제