2013-10-18 3 views
0

다음 플롯 중 4 개를 par(mfrow=c(2,2)) 유형 정렬로 플롯하려합니다. 패키지에서 특수화 된 플로팅 함수의 타일 플롯을 만드는 방법

install.packages("wavelets") 
require(wavelets) 
dat <- rnorm(100) 
plot.modwt(modwt(dat)) #4 of these in a 2x2 grid is desired 

그러나, layoutmfrow하려는 시도는 성공하지 않았습니다.

나는 올바른 답을주는 바운티.

+0

특정 플롯을 가진 문제는이'임베디드 layout'에 이미 전화를 가지고 있으므로 어떤 시도가 덮어 쓸 것입니다. '... if (plot.X) { nf <- layout (matrix (c, 2, 1, 1), 2, 2, byrow = TRUE) 함수의 소스 코드를 보자. c (1, 2), c (2, 1), TRUE) ... ' – plannapus

답변

1

@plannapus가 주석을 달았으므로, plot.modwt 함수는 이미 레이아웃을 호출합니다. 따라서 원래 기능을 변경해야합니다.

  1. R 콘솔에 plot.modwt을 입력하면 완전한 정의를 얻을 수 있습니다.
  2. 이 기능을 복사하여 새로운 기능 (예 : my.plot.modwt)으로 저장하십시오.
  3. 이 함수의 레이아웃 행을 주석으로 처리하십시오.
  4. 새 레이아웃을 설정하십시오. 이것은 나를 위해 일한 : 레이아웃에 다른 변화가 아마 필요합니다,

    my.plot.modwt(modwt(dat1)) 
    my.plot.modwt(modwt(dat2)) 
    my.plot.modwt(modwt(dat3)) 
    my.plot.modwt(modwt(dat4)) 
    

참고 :

nf = layout(matrix(c(3, 1, 4, 2, 7, 5,8, 6), 4, 2, byrow = TRUE), 
    c(2,2), c(2,1, 2, 1), TRUE) 
layout.show(nf) 
  • 는 플롯을 생성하는 함수 (4 회)를 호출합니다.


    내 코드 :

    y.plot.modwt = function (x, levels = NULL, draw.boundary = FALSE, type = "stack", 
          col.plot = "black", col.boundary = "red", X.xtick.at = NULL, 
          X.ytick.at = NULL, Stack.xtick.at = NULL, Stack.ytick.at = NULL, 
          X.xlab = "t", y.rlabs = TRUE, plot.X = TRUE, plot.W = TRUE, 
          plot.V = TRUE, ...) 
    { 
        stackplot.modwt <- function(x, w.range, v.range, col.plot, 
               col.boundary, draw.boundary, X.xtick.at, X.ytick.at, 
               Stack.xtick.at, Stack.ytick.at, X.xlab = "t", plot.X = TRUE) { 
        innerplot <- function(x, y, type = "l", xtick.at, ytick.at) { 
         if (is.null(xtick.at) == FALSE || is.null(ytick.at) == 
          FALSE) { 
         plot(x, y, type = "l", axes = FALSE, frame.plot = TRUE) 
         <snip> 
    
    if (plot.X) { 
         #nf <- layout(matrix(c(2, 2, 1, 1), 2, 2, byrow = TRUE), 
         #    c(1, 2), c(2, 1), TRUE) 
         par(mai = c(0.6, 0.4, 0.1, 0.6)) 
    
    <snip> 
    } 
    
  • +0

    작동하지 않습니다. 오른쪽에있는 하나의 그림 만이'my.plot.modwt'를 호출 할 때마다 계속 덮어 씁니다. – user2763361

    +0

    @ user2763361 그것은 저에게 효과적입니다. 나는 압축 된 버전의 코드를 내려 놓았다. – csgillespie

    +0

    내가 왜 레이아웃을 주석 처리했는지 모르겠습니다. 우리가 바뀌어야 할 것이 아닌가요? 나는 당신이 당신이 제안한 선으로 당신이 주석 처리 한 것을 대체했지만 그것은 효과가 없다고 말하고있었습니다. – user2763361