여러 플롯이있는 Figure에 대한 Figure Wide Axes 생성 (그리드)

학습자

모델의 매개 변수를 변경하는 분석이 있으며 다양한 설정 조합의 효과를 보여주는 잘 레이블이 지정된 그림을 생성하고 싶습니다. 문제없이 실제 플롯을 생성하고 그리드로 정렬 할 수 있습니다. 이제 데이터가 아니라 내가 변경하는 매개 변수 값을 참조하는 축을 추가하고 싶습니다. 다음은 내가하려는 간단한 예입니다.

library(lattice)
library(gridExtra)

dat <- rnorm(1000, 0, 1)

# these are my parameters
scales <- c(0.1, 0.5, 1, 10, 15)
adds <- c(1, 2, 3, 4, 5)

# generate data to be plotted
revData <- list()
ptr <- 1
for (ii in 1:length(scales)){
    for (jj in 1:length(adds)){
        revData[[ptr]] <- (dat * scales[[ii]]) + adds[[jj]]
        ptr <- ptr + 1
    }
}

# generating plots
plotList <- lapply(revData, function(xx){
    xyplot(xx ~ 1:1000)
})
names(plotList) <- sprintf("N%s", 1:length(plotList))
plotList <- c(plotList, list(ncol=length(scales)))
do.call(grid.arrange, plotList)

그러면 다음 그림이 생성됩니다. 여기에 이미지 설명 입력

지금 제가하고 싶은 것은이 플롯 세트에 대해 X 축과 Y 축을 생성하는 것입니다. 여기서 X 축은 scales변수를 참조하고 나열된 값을 가지고 있으며, 마찬가지로 값에 해당하는 Y 축도 adds있습니다. 어떻게해야합니까?

사용자 20650

Another answer using grid package. First create a grid of viewports, then at each iteration of creating the data just plot it. This maybe gives a bit more control over spacing.

library(lattice)
library(grid)

# Data
dat <- rnorm(1000, 0, 1)

# these are my parameters
scales <- c(0.1, 0.5, 1, 10, 15)
adds <- c(1, 2, 3, 4, 5)

Create grid layout - this lets you look at the plot grid: 6 by 6 with the first column and last row used for the additional parameter labels.

grid.show.layout(grid.layout(6, 6, 
                   widths = unit(c(2, rep(1,5)), c("lines", rep("null",5))) ,
                   heights = unit(c(rep(1,5),2), c(rep("null",5), "lines"))))


Start plot

grid.newpage()
pushViewport(viewport(layout=grid.layout(6, 6, 
                       widths = unit(c(2, rep(1,5)), c("lines", rep("null",5))) ,
                       heights = unit(c(rep(1,5),2), c(rep("null",5), "lines")))))

# generate data and plot
for (ii in 1:length(scales)) {

      for (jj in 1:length(adds)) {

           revData <- (dat * scales[ii]) + adds[jj]

           # plot (top to bottom / left to right)
           pushViewport(viewport(layout.pos.row=jj, layout.pos.col=ii+1))
           plot(xyplot(revData ~ 1:1000 , xlab=NULL , ylab=NULL) , newpage=FALSE)
           upViewport(1)
       }
    }

add "scales" labels to x-axis

pushViewport(viewport(layout.pos.row=6, layout.pos.col=2:6 ))
grid.text(scales, x=seq(0.1,0.9 ,length=5), y=0.8 , hjust=0.2, 
                            gp=gpar(col="red" , fontsize=14))
grid.text("Scales" , x=0.5 , y=0.3 ,  gp=gpar(fontsize=20)) 
grid.lines(y=1 , gp=gpar(col="red"))
upViewport(1)

add "adds" labels to y-axis

pushViewport(viewport(layout.pos.row=1:5, layout.pos.col=1 ))
grid.text(rev(adds),hjust=0.4 , x=0.8, y=seq(0.1,0.9 ,length=5), rot=90, 
                           gp=gpar(col="red" , fontsize=14))
grid.text("Adds" , x=0.3 , y=0.5 ,  rot=90, gp=gpar(fontsize=20)) 
grid.lines(x=1 , gp=gpar(col="red"))


EDIT

I added axis titles using grid.text and tweaking the x & y slightly. A better way would be to add another row and column to the grid and use this for the labels. An example grid is below - you will need to tweak another couple of things in the code but is not difficult.

grid.show.layout(grid.layout(7,7,
       widths = unit(c(2, 2,rep(1,5)), c("lines", "lines",rep("null",5))) ,
       heights = unit(c(rep(1,5),2,2), c(rep("null",5), "lines","lines"))))

축 제목에는 첫 번째 열과 마지막 행을, 축 레이블과 선에는 두 번째 열과 마지막 두 번째 행을 사용하여 나머지 그리드는 플롯에 사용할 수 있습니다.



여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

nan 값이있는 동일한 Figure에 대한 여러 서브 플롯

분류에서Dev

줄거리 파이썬 | 서브 플롯이있는 Figure에서 모든 범위 슬라이더 비활성화

분류에서Dev

여러 열과 행이있는 블록에 대한 부트 스트랩 그리드 생성

분류에서Dev

DataFrame.Plot을 사용하여 동일한 Figure에 여러 플롯

분류에서Dev

함수에서 생성 된 Figure를 다른 Figure의 서브 플롯에 추가

분류에서Dev

Matplotlib의 Figure 또는 Axes 객체에서 플롯 된 데이터의 한계를 얻는 방법은 무엇입니까?

분류에서Dev

MATLAB Figure는 LaTeX에 삽입 할 때 크기가 같지 않습니다 (동일한 코드를 사용하여 생성되었지만)

분류에서Dev

matplotlib 프레임, 축이없는 Figure 생성, 컬러 맵으로 2D 배열 플로팅, 입력과 동일한 크기의 numpy 배열에 플롯 저장

분류에서Dev

Matplotlib : 여러 시계열에 대한 서브 플롯 생성

분류에서Dev

단일 플롯 matplotlib에 대한 여러 범례를 생성하는 방법

분류에서Dev

Missing axes in figure with multiple subplots

분류에서Dev

angularjs에서 ui-grid를 사용하여 여러 테이블에 대한 그리드 옵션을 동적으로 생성하는 방법

분류에서Dev

흰색 여백을 채우지 않고 서브 플롯이있는 Figure 저장

분류에서Dev

Django : 여러 등급 기준이있는 리뷰 사이트에 대한 등급 평균 생성

분류에서Dev

Django : 여러 등급 기준이있는 리뷰 사이트에 대한 등급 평균 생성

분류에서Dev

아이디어 플러그인에 대한 작업 생성

분류에서Dev

페이지 태그가 여러 개인 댓글 섹션에 대한 DB 생성

분류에서Dev

열 값을 기반으로 R에서 여러 플롯을 생성하는 더 간단한 코드?

분류에서Dev

여러 iPyWidget 드롭 다운이있는 대화 형 Covid 플롯

분류에서Dev

여러 iPyWidget 드롭 다운이있는 대화 형 Covid 플롯

분류에서Dev

ggplot2에서 여러 상자 플롯으로 Figure 만들기

분류에서Dev

matplotlib (python)-pyplot없이 여러 플롯에 대한 단일 사용자 정의 범례 생성

분류에서Dev

동일한 요소에 대해 여러 규칙을 생성하는 유연한 타이포그래피 Sass mixin

분류에서Dev

Seaborn을 사용하여 동일한 그래픽에 대해 여러 서브 플롯을 사용하는 방법이 있습니까?

분류에서Dev

AttributeError : Figure에 대한 예기치 않은 속성 '반응'

분류에서Dev

bokeh : 한 행에있는 두 개의 플롯에 대한 그리드 정렬

분류에서Dev

한 번에 여러 개의 선 플롯을 그리는 방법

분류에서Dev

`stargazer ()`를 사용하여 여러 모델에 대한 여러 열 이름 생성

분류에서Dev

Scilab에서 여러 플롯을 그리는 빠른 방법이 있습니까?

Related 관련 기사

  1. 1

    nan 값이있는 동일한 Figure에 대한 여러 서브 플롯

  2. 2

    줄거리 파이썬 | 서브 플롯이있는 Figure에서 모든 범위 슬라이더 비활성화

  3. 3

    여러 열과 행이있는 블록에 대한 부트 스트랩 그리드 생성

  4. 4

    DataFrame.Plot을 사용하여 동일한 Figure에 여러 플롯

  5. 5

    함수에서 생성 된 Figure를 다른 Figure의 서브 플롯에 추가

  6. 6

    Matplotlib의 Figure 또는 Axes 객체에서 플롯 된 데이터의 한계를 얻는 방법은 무엇입니까?

  7. 7

    MATLAB Figure는 LaTeX에 삽입 할 때 크기가 같지 않습니다 (동일한 코드를 사용하여 생성되었지만)

  8. 8

    matplotlib 프레임, 축이없는 Figure 생성, 컬러 맵으로 2D 배열 플로팅, 입력과 동일한 크기의 numpy 배열에 플롯 저장

  9. 9

    Matplotlib : 여러 시계열에 대한 서브 플롯 생성

  10. 10

    단일 플롯 matplotlib에 대한 여러 범례를 생성하는 방법

  11. 11

    Missing axes in figure with multiple subplots

  12. 12

    angularjs에서 ui-grid를 사용하여 여러 테이블에 대한 그리드 옵션을 동적으로 생성하는 방법

  13. 13

    흰색 여백을 채우지 않고 서브 플롯이있는 Figure 저장

  14. 14

    Django : 여러 등급 기준이있는 리뷰 사이트에 대한 등급 평균 생성

  15. 15

    Django : 여러 등급 기준이있는 리뷰 사이트에 대한 등급 평균 생성

  16. 16

    아이디어 플러그인에 대한 작업 생성

  17. 17

    페이지 태그가 여러 개인 댓글 섹션에 대한 DB 생성

  18. 18

    열 값을 기반으로 R에서 여러 플롯을 생성하는 더 간단한 코드?

  19. 19

    여러 iPyWidget 드롭 다운이있는 대화 형 Covid 플롯

  20. 20

    여러 iPyWidget 드롭 다운이있는 대화 형 Covid 플롯

  21. 21

    ggplot2에서 여러 상자 플롯으로 Figure 만들기

  22. 22

    matplotlib (python)-pyplot없이 여러 플롯에 대한 단일 사용자 정의 범례 생성

  23. 23

    동일한 요소에 대해 여러 규칙을 생성하는 유연한 타이포그래피 Sass mixin

  24. 24

    Seaborn을 사용하여 동일한 그래픽에 대해 여러 서브 플롯을 사용하는 방법이 있습니까?

  25. 25

    AttributeError : Figure에 대한 예기치 않은 속성 '반응'

  26. 26

    bokeh : 한 행에있는 두 개의 플롯에 대한 그리드 정렬

  27. 27

    한 번에 여러 개의 선 플롯을 그리는 방법

  28. 28

    `stargazer ()`를 사용하여 여러 모델에 대한 여러 열 이름 생성

  29. 29

    Scilab에서 여러 플롯을 그리는 빠른 방법이 있습니까?

뜨겁다태그

보관