2014-05-20 2 views
3

변수에 플롯 객체를 저장해야합니다. 내가 할 수있는 것을 안다 :R 그래픽 창을 표시하지 않고 플롯

plot(rnorm(10)) 
obj = recordPlot() 
replayPlot(obj) 

그러나 나는 그래픽 창을 보이고 싶지 않다. 그래서 저는 이것을하려고 노력하고 있습니다, 그러나 지금까지는 성공하지 못했습니다.

win.metafile() 
plot(rnorm(10)) 
obj = recordPlot() 
dev.off() 
replayPlot(obj) # it shows a null plot 

글쎄, 난 obj = recordPlot()을하고있을 때 플롯이 아직 준비되지 아마 때문이다.

감사합니다.

+0

아마도 귀하의 질문에 대한 답변이 아니지만 첫 번째 코드 블록에 'replayPlot' 대신'replayPloy'를 입력하십시오. –

+0

문제를 재현 할 수 없습니다. 'replayPlot (obj)'를 호출하면 나에게 좋은 음모를 보여줍니다. – MattLBeck

+1

당신은'ggplot2'를 사용해서 그것을 할 수 있습니다. – Fernando

답변

4

?recordPlot에서 : 당신이 파일에 기록 플롯을 기록 할 경우

The displaylist can be turned on and off using dev.control. 
Initially recording is on for screen devices, and off for print devices. 

그래서 당신은 DisplayList가 설정해야합니다

win.metafile() 
dev.control('enable') # enable display list 
plot(rnorm(10)) 
obj = recordPlot() 
dev.off() 
replayPlot(obj) 
+0

감사합니다 !!! 멋지다! 이것은 내가 생각할 수있는 최선이다 :) –

1

당신은 ggplot2 쉽게 그렇게 할 수 있습니다

require(ggplot2) 
data = data.frame(x = 1:100, y = rnorm(100)) 
p = ggplot(data) + geom_point(aes(x, y)) + theme_classic() 
print(p) # this show the plot 
+0

감사합니다. Fernando. 그것은 효과가 있었다. 그러나 나는 현재 상당히 많은 수의 플롯을 가지고 있으며 표준 플롯을 유지해야합니다. 그러나, 내가 얻 자마자, 나는 모든 플롯을 ggplot으로 전환하기 시작할 것입니다. –

+0

표준 플롯처럼 보이게 만들기 쉽습니다.'? theme'로 예제를 확인하십시오. – Fernando