program story

ggplot의 qplot이 소싱에서 실행되지 않습니다.

inputbox 2020. 11. 25. 07:57
반응형

ggplot의 qplot이 소싱에서 실행되지 않습니다.


두 개의 소스 파일이 있다고 가정 해 보겠습니다. 첫 번째 파일은 이름이 지정 example1.r되고 두 번째 파일은 example2.r아래에 제공됩니다.

example1.r

plot(1:10,1:10)

example2.r

qplot(1:10,1:10)

example1.r을 소스하면 그래프가 그려집니다. 그러나 example2.r을 소스로 사용할 때는 그렇지 않습니다. 여기서 해결책은 무엇입니까?

(example2.r의 qplotggplot2 의 함수입니다)


업데이트 :

  • .R 파일 : source 의 옵션 print.eval=TRUE은 대화 형 명령 줄에서와 같이 평가 결과의 인쇄 동작으로 이어집니다.

source("Script.R", print.eval=TRUE)

  • .Rnw 파일 : knitr 기본적으로 대화식 명령 줄 wrt의 동작을 에뮬레이트합니다. printing. 참고 knitrR 패키지 네트에 대해서도 Sweaving 엔진으로 지정할 수 있습니다.


이것은 나의 원래 대답입니다. 그러나이 해결 방법은 이제 IMHO가 완전히 구식이라는 점에 유의하십시오 (그리고 항상 작은 게으른 틈새 시장에만 적합했습니다).

이것은 유명한 FAQ 7.22입니다. 격자 / 격자 그래픽이 작동하지 않는 이유는 무엇입니까? .

ggplot2 또는 lattice와 같은 그리드 그래픽의 경우 실제로 그리기 위해 그래픽 객체를 인쇄해야합니다.

명령 줄에서 대화식으로이 작업이 자동으로 수행됩니다. 다른 모든 곳 (소스 파일 내부, 루프, 함수, Sweave 청크)은 명시 적으로 인쇄해야합니다.

print (qplot (1 : 10, 1 : 10))

또는 다시 정의 qplot하여 인쇄를 수행 할 수 있습니다 .

qplot <- function (x, y = NULL, z = NULL, ...) {
  p <- ggplot2::qplot (x = x, y = y, z = z, ...)
  print (p)
}

(이렇게하면 축 레이블이 x 및 y로 변경됩니다).

인터랙티브 세션의 사용자가 입력하는 것과 똑같이 코드를 작성하려는 비 네트에서이 접근 방식을 사용합니다.

참고 URL : https://stackoverflow.com/questions/6675066/ggplots-qplot-does-not-execute-on-sourcing

반응형