Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

R 그래픽, ggplot2와 Plotly

R 시각화는 로컬 data.frame이나 함수 안에서 만든 예제 데이터를 사용합니다. 필요한 패키지를 Workbook 환경에 추가하고, 함수 안에서 만든 plot 객체는 명시적으로 그려야 합니다.

기본 히스토그램

titanic_dataset을 R data.frame으로 읽고 수치형 Fare 열을 표시합니다. 입력 표도 그대로 반환하므로 후속 변환에서 사용할 수 있습니다.

fare_distribution <- function(titanic_dataset) {
    hist(titanic_dataset$Fare)
    titanic_dataset
}

ggplot2 산점도

환경에 ggplot2가 있어야 합니다. 패키지의 midwest 데이터에서 면적과 인구, 주와 인구 밀도를 표시합니다.

example_ggplot <- function() {
    data("midwest", package = "ggplot2")
    chart <- ggplot2::ggplot(
        midwest, ggplot2::aes(x = area, y = poptotal)
    ) +
        ggplot2::geom_point(ggplot2::aes(colour = state, size = popdensity)) +
        ggplot2::geom_smooth(method = "loess", se = FALSE) +
        ggplot2::xlim(c(0, 0.1)) +
        ggplot2::ylim(c(0, 500000)) +
        ggplot2::theme_bw() +
        ggplot2::labs(
            subtitle = "Area Vs Population",
            y = "Population",
            x = "Area",
            title = "Scatterplot",
            caption = "Source: midwest"
        )
    print(chart)
    NULL
}

print(chart) 또는 plot(chart)로 그림을 표시합니다. 이 노드는 표를 반환하지 않으므로 NULL을 하위 입력으로 사용할 수는 없습니다.

SVG 힌트

기본 출력은 PNG입니다. SVG로 표시하려면 함수 안에 # image: svg 주석을 둡니다. 이것은 일반 R 연산이 아니라 Workbook의 이미지 출력 힌트입니다.

fare_distribution_svg <- function(titanic_dataset) {
    # image: svg
    hist(titanic_dataset$Fare)
    titanic_dataset
}

이미지 크기와 device

더 세밀하게 구성하려면 Workbook이 제공하는 출력 파일 경로 graphicsFile을 png() 또는 svg()에 전달합니다. 열었던 device를 닫아 이미지 기록을 마칩니다.

PNG

다음은 800×400 픽셀, 해상도 300, 흰색 배경과 pointsize 4를 사용하는 표시 예제입니다.

custom_png <- function() {
    grDevices::png(
        filename = graphicsFile,
        width = 800,
        height = 400,
        units = "px",
        pointsize = 4,
        bg = "white",
        res = 300,
        type = "cairo"
    )
    device <- grDevices::dev.cur()
    on.exit(grDevices::dev.off(device), add = TRUE)
    plot(1:10, 1:10)
    NULL
}

SVG

직접 svg()를 사용해도 Workbook의 SVG 힌트를 함께 지정해야 합니다.

custom_svg <- function() {
    # image: svg
    grDevices::svg(
        filename = graphicsFile,
        width = 5,
        height = 9,
        pointsize = 4,
        bg = "white"
    )
    device <- grDevices::dev.cur()
    on.exit(grDevices::dev.off(device), add = TRUE)
    plot(1:10, 1:10)
    NULL
}

graphicsFile은 현재 Workbook 그림 결과를 위한 경로입니다. 임의의 PDF나 텍스트 파일을 데이터셋으로 저장할 때는 파일 출력 API를 사용합니다.

R Plotly

환경에 r-plotly를 추가합니다. 다음은 표준 정규분포 난수 1,000개씩을 좌표로 사용하는 가상 산점도입니다.

plotly_example <- function() {
    chart <- plotly::plot_ly(
        x = rnorm(1000),
        y = rnorm(1000),
        mode = "markers",
        type = "scatter"
    )
    print(chart)
    NULL
}

Plotly 객체를 plot() 또는 print()하면 UI에 나타납니다. 노드에서 실행해야 대화형으로 보이며 콘솔에서는 PNG로 변환됩니다. 20,000점을 넘는 그림은 브라우저 성능 때문에 권장하지 않으며 큰 산점도는 scattergl을 검토합니다.