함수를 사용하여 여러 플롯을 목록에 저장

캠 에스

에서 생성 한 여러 플롯을 ggplot2목록 에 저장하려고 합니다.

이전 스레드 에서 제안한 목록 기능을 사용하려고 하지만 내 요구 사항을 충족하기 위해 자체 기능을 만드는 데 어려움이 있습니다.

먼저 다음 코드를 사용하여 요소를 기반으로 데이터 프레임을 목록으로 분할합니다.

heatlist.germ <- split(heatlist.germ, f=as.factor(heatlist.germ$plot))

그런 다음 나중에 사용할 수있는 목록 함수를 만들려고합니다 lapply.

plot_data_fcn <- function (heatlist.germ) {
  ggplot(heatlist.germ[[i]], aes(x=posX, y=posY, fill=germ_bin)) + 
    geom_tile(aes(fill=germ_bin)) + 
    geom_text(aes(label=germ_bin)) +
    scale_fill_gradient(low = "gray90", high="darkolivegreen4") +
    ggtitle(plot) +
    scale_x_continuous("Position X", breaks=seq(1,30)) +
    scale_y_continuous("Position Y (REVERSED)", breaks=seq(1,20))
  }

heatlist.test <- lapply(heatlist.germ[[i]], plot_data_fcn)

내가 달성하려는 두 가지 주요 사항 :

  1. 12 개의 ggplot (따라서의 12 개 요소 plot)을 목록에 저장합니다.
  2. "Plot [i] Germination"이라는 제목을 만듭니다.

어떤 도움을 주시면 감사하겠습니다.

r2evans

귀하의 데이터가 없으므로 플로팅 메커니즘을 단순화하겠습니다.

첫 번째 문제는 [[i]]함수에서 참조를 사용해서는 안된다는 것입니다. 함수가 데이터를있는 그대로 처리하도록하면 인수가 (다른 환경에서) 목록이있는 요소라는 사실을 알지 못합니다. 대상 자체 만 알고 있습니다.

# a simple plot function
myfunc <- function(x) ggplot(x, aes_string(names(x)[1], names(x)[2])) + geom_point()
# a list of frames, nothing fancy here
datalist <- replicate(3, mtcars, simplify = FALSE)
# just call it ...
myplots <- lapply(datalist, myfunc)
class(myplots[[1]])
# [1] "gg"     "ggplot"

myfunc를 호출 하면 인수 x가 a data.frame뿐이며 함수는 x프레임 목록에서 첫 번째 (또는 두 번째 또는 세 번째) 프레임인지 알 수 없습니다 .

어떤 요소인지를 나타내는 인덱스와 함께 n 번째 프레임을 포함하려면 내 뷰에서 데이터를 함께 "압축"하므로 Map. ( purrr::imap또는 관련 tidyverse 기능을 사용할 수 있습니다 .)

myfunc2 <- function(x, title = "") ggplot(x, aes_string(names(x)[1], names(x)[2])) + geom_point() + labs(title = title)
myplots <- Map(myfunc2, datalist, sprintf("Plot number %s", seq_along(datalist)))
class(myplots[[1]])
# [1] "gg"     "ggplot"

와의 Map관련성 을 이해하려면 lapply다음 lapply(datalist, myfunc)과 같은 "언 롤링"되어 있음을 이해하십시오 .

myfunc(datalist[[1]])
myfunc(datalist[[2]])
myfunc(datalist[[3]])

Map그러나를 사용하면 각 호출에서 하나 이상의 인수 를 받아야하는 하나의 함수를 사용합니다 . 이를 통해 Map함수가 인수를 허용하는만큼 목록 (또는 벡터)을 허용합니다. 두 기능은 동의어입니다.

lapply(datalist, myfunc) # data first,     function second
Map(myfunc, datalist)    # function first, data second

더 복잡한 호출은 다음과 같이 펼쳐집니다.

titles <- sprintf("Plot number %d", seq_along(datalist)) # "Plot number 1", ...
Map(myfunc2, datalist, titles)
# equivalent to
myfunc2(datalist[[1]], titles[[1]])
myfunc2(datalist[[2]], titles[[2]])
myfunc2(datalist[[3]], titles[[3]])

길이가 같으면 (또는 길이 1) 각 인수가 참 list(에서와 같이 datalist)인지 벡터 (에서와 같이)인지는 실제로 중요하지 않습니다 titles.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Python을 사용하여 폴더에 여러 플롯을 어떻게 저장할 수 있습니까?

분류에서Dev

matplotlib를 사용하여 여러 플롯을 루프의 파일에 저장하는 방법

분류에서Dev

SharedPreferences를 사용하여 Flutter의 목록에서 여러 부울을 저장하는 방법

분류에서Dev

matplotlib를 사용하여 pdf 파일에 플롯 저장

분류에서Dev

Octave를 사용하여 플롯을 png로 저장

분류에서Dev

Holoview를 사용하여 여러 플롯을 하나의 .HTML 페이지에 저장하려면 어떻게해야합니까?

분류에서Dev

코드를 사용하여 Rstudio에서 플롯을 저장하는 방법은 무엇입니까?

분류에서Dev

Java readAllLines를 사용하여 파일을 읽고 목록에 저장

분류에서Dev

목록에 저장된 이름을 사용하여 데이터 프레임 목록의 모든 열과 행에서 여러 기능 수행

분류에서Dev

netty에 사용자 이름과 ChannelHandlerContext를 사용하여 사용자 목록을 저장하는 방법

분류에서Dev

Python을 사용하여 목록 내에서 사전을 포함하는 json을 csv에 저장하는 방법

분류에서Dev

Mybatis를 사용하여 JavaBean 포함 목록을 Sql에 저장하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 목록에 여러 문자열을 저장하는 C #

분류에서Dev

PYTHON : 요청을 사용하여 여러 이미지를 폴더에 저장

분류에서Dev

Python을 사용하여 여러 이미지를 디렉토리에 저장

분류에서Dev

목록에 여러 사전을 저장하고 목록을 반복합니다.

분류에서Dev

R의 플롯 함수를 한 번만 호출하여 플롯을 PNG 및 PDF로 저장

분류에서Dev

루프를 사용하여 여러 플롯을 만들고 하나에 별도의 플롯 표시

분류에서Dev

hibernate createSQLQuery 메소드를 사용하여 목록에 맵 저장

분류에서Dev

Entity Framework를 사용하여 SQL Server에 개체 목록 저장

분류에서Dev

Azure 함수 C #을 사용하여 Blob Storage에 json 저장

분류에서Dev

urllib와 json을 함께 사용하여 변수에 저장

분류에서Dev

R ggplot2를 사용하여 여러 플롯에 대해 수평 y 축 제목을 오른쪽 정렬

분류에서Dev

matplotlib를 사용하여 목록에서 함수 플로팅

분류에서Dev

HTML 드롭 다운 목록의 여러 값을 배열에 저장하고 PHP를 사용하여 쉼표로 구분하는 방법은 무엇입니까?

분류에서Dev

저장 프로 시저를 사용하여 여러 테이블에 저장

분류에서Dev

R : gridExtra를 사용하여 여러 플롯을 함께 정렬

분류에서Dev

R : gridExtra를 사용하여 여러 플롯을 함께 정렬

분류에서Dev

여러 인수와 여러 인수 목록을 사용하여 함수 작성

Related 관련 기사

  1. 1

    Python을 사용하여 폴더에 여러 플롯을 어떻게 저장할 수 있습니까?

  2. 2

    matplotlib를 사용하여 여러 플롯을 루프의 파일에 저장하는 방법

  3. 3

    SharedPreferences를 사용하여 Flutter의 목록에서 여러 부울을 저장하는 방법

  4. 4

    matplotlib를 사용하여 pdf 파일에 플롯 저장

  5. 5

    Octave를 사용하여 플롯을 png로 저장

  6. 6

    Holoview를 사용하여 여러 플롯을 하나의 .HTML 페이지에 저장하려면 어떻게해야합니까?

  7. 7

    코드를 사용하여 Rstudio에서 플롯을 저장하는 방법은 무엇입니까?

  8. 8

    Java readAllLines를 사용하여 파일을 읽고 목록에 저장

  9. 9

    목록에 저장된 이름을 사용하여 데이터 프레임 목록의 모든 열과 행에서 여러 기능 수행

  10. 10

    netty에 사용자 이름과 ChannelHandlerContext를 사용하여 사용자 목록을 저장하는 방법

  11. 11

    Python을 사용하여 목록 내에서 사전을 포함하는 json을 csv에 저장하는 방법

  12. 12

    Mybatis를 사용하여 JavaBean 포함 목록을 Sql에 저장하는 방법은 무엇입니까?

  13. 13

    사용자 지정 목록에 여러 문자열을 저장하는 C #

  14. 14

    PYTHON : 요청을 사용하여 여러 이미지를 폴더에 저장

  15. 15

    Python을 사용하여 여러 이미지를 디렉토리에 저장

  16. 16

    목록에 여러 사전을 저장하고 목록을 반복합니다.

  17. 17

    R의 플롯 함수를 한 번만 호출하여 플롯을 PNG 및 PDF로 저장

  18. 18

    루프를 사용하여 여러 플롯을 만들고 하나에 별도의 플롯 표시

  19. 19

    hibernate createSQLQuery 메소드를 사용하여 목록에 맵 저장

  20. 20

    Entity Framework를 사용하여 SQL Server에 개체 목록 저장

  21. 21

    Azure 함수 C #을 사용하여 Blob Storage에 json 저장

  22. 22

    urllib와 json을 함께 사용하여 변수에 저장

  23. 23

    R ggplot2를 사용하여 여러 플롯에 대해 수평 y 축 제목을 오른쪽 정렬

  24. 24

    matplotlib를 사용하여 목록에서 함수 플로팅

  25. 25

    HTML 드롭 다운 목록의 여러 값을 배열에 저장하고 PHP를 사용하여 쉼표로 구분하는 방법은 무엇입니까?

  26. 26

    저장 프로 시저를 사용하여 여러 테이블에 저장

  27. 27

    R : gridExtra를 사용하여 여러 플롯을 함께 정렬

  28. 28

    R : gridExtra를 사용하여 여러 플롯을 함께 정렬

  29. 29

    여러 인수와 여러 인수 목록을 사용하여 함수 작성

뜨겁다태그

보관