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을 검토합니다.