我有一个约有90000行的data.table,我们称之为dtWeights
。我正在尝试绘制带有刻面的箱形图,类似于:
ggplot(dtWeights, aes(Day, Weight, group = Day)) +
geom_boxplot() +
facet_wrap(~ year(Date))
dtWeights
的格式为:
Date Day Weight
2005-01-01 1 0.01
2005-01-01 2 0.01
2005-01-01 3 0.01
2005-01-01 4 0.01
2005-01-01 5 0.01
---
2019-01-01 96 0.01
2019-01-01 97 0.01
2019-01-01 98 0.01
2019-01-01 99 0.01
2019-01-01 100 0.01
因此,每个构面将包含100个框(对应于Day
),每个框代表数百个Date
;总共约有14个方面。
当我在ggplot中绘制此图并在X11上绘制该图时,该过程需要几分钟才能呈现整个图像。但是,如果我将其绘制在基础R
中,它将几乎立即呈现。例如,可以这样做:
par(mfrow = c(4, 4))
lapply(
2005:2019,
function(localYear){
boxplot(Weight ~ Day, data = dtWeights[year(Date) == localYear])
}
)
我认识到基本R
的速度将比ggplot快,但是这里的速度差异远比简单的折线图或条形图之间的差异更明显。
谁能详细说明为什么ggplot中的箱形图绘制如此缓慢,并解释我到底可以做些什么?