Bạn cũng có thể có một cái nhìn vào ggsubplot
gói. Gói này triển khai các tính năng được Hadley Wickham trình bày vào năm 2011 ( http://blog.revolutionanalytics.com/2011/10/ggplot2-for-big-data.html ).
(Trong phần sau đây, tôi bao gồm "điểm" -layer cho mục đích minh họa.)
library(ggplot2)
library(ggsubplot)
# Make up some data
set.seed(955)
dat <- data.frame(cond = rep(c("A", "B"), each=5000),
xvar = c(rep(1:20,250) + rnorm(5000,sd=5),rep(16:35,250) + rnorm(5000,sd=5)),
yvar = c(rep(1:20,250) + rnorm(5000,sd=5),rep(16:35,250) + rnorm(5000,sd=5)))
# Scatterplot with subplots (simple)
ggplot(dat, aes(x=xvar, y=yvar)) +
geom_point(shape=1) +
geom_subplot2d(aes(xvar, yvar,
subplot = geom_bar(aes(rep("dummy", length(xvar)), ..count..))), bins = c(15,15), ref = NULL, width = rel(0.8), ply.aes = FALSE)
Tuy nhiên, tính năng này đá nếu bạn có một biến thứ ba để kiểm soát.
# Scatterplot with subplots (including a third variable)
ggplot(dat, aes(x=xvar, y=yvar)) +
geom_point(shape=1, aes(color = factor(cond))) +
geom_subplot2d(aes(xvar, yvar,
subplot = geom_bar(aes(cond, ..count.., fill = cond))),
bins = c(15,15), ref = NULL, width = rel(0.8), ply.aes = FALSE)
Hoặc một cách tiếp cận khác sẽ được sử dụng smoothScatter()
:
smoothScatter(dat[2:3])