从R中的矩阵绘制线图的最快方法
有没有一种方法可以加速下面的代码,从矩阵在R中绘制线图?矩阵相当大,大约3000行乘60列,有时数据更大 我目前使用从R中的矩阵绘制线图的最快方法,r,ggplot2,shiny,R,Ggplot2,Shiny,有没有一种方法可以加速下面的代码,从矩阵在R中绘制线图?矩阵相当大,大约3000行乘60列,有时数据更大 我目前使用matlines或ggplot例如: 库(ggplot2) 图书馆(E2) ##使用ggplot2 数据通过减少绘图中颜色和线型的数量,可以减少渲染时间。例如,比较默认的matlines,它在5种线型和6种颜色之间循环: system.time({ plot(0, ylim = range(data), xlim = c(1, ncol(data)), ylab = "
matlines
或ggplot
例如:
库(ggplot2)
图书馆(E2)
##使用ggplot2
数据通过减少绘图中颜色和线型的数量,可以减少渲染时间。例如,比较默认的matlines
,它在5种线型和6种颜色之间循环:
system.time({
plot(0, ylim = range(data), xlim = c(1, ncol(data)), ylab = "tmp",
type = "n", xaxt = "n", xlab = "")
axis(1, at = seq(ncol(data)), labels = colnames(data), las = 2)
matlines(t(data))
})
# user system elapsed
# 0.66 3.50 4.15
我们只使用一种线型和一种颜色
system.time({
plot(0, ylim = range(data), xlim = c(1, ncol(data)), ylab = "tmp",
type = "n", xaxt = "n", xlab = "")
axis(1, at = seq(ncol(data)), labels = colnames(data), las = 2)
matlines(t(data), col = 1, lty = 1)
})
# user system elapsed
# 0.23 0.58 0.83
正如其他人所提到的,除了性能方面,简化绘图本身可能很好。我只想强调,如果必须在ggplot2中绘制大量点,那么绘制这些点是多么昂贵。以下是一些具有不同类型点的不同基准。如果忽略这些点,可以在1/3的时间内绘制绘图。在40%的时间内,周期
作为点。如果您确实需要适当的点数,我建议shape=16
库(ggplot2)
图书馆(E2)
欧洲/柏林数据中心
#>日期2020-06-27
#>
#>-包裹-------------------------------------------------------------------
#>包*版本日期库源
#>资产负债表0.2.1 2019-03-21[1]起重机(R 4.0.0)
#>后端口1.1.7 2020-05-13[1]起重机(R 4.0.0)
#>callr 3.4.3 2020-03-28[1]起重机(R 4.0.0)
#>cli 2.0.2 2020-02-28[1]起重机(R 4.0.0)
#>色彩空间1.4-1 2019-03-18[1]克兰(R 4.0.0)
#>蜡笔1.3.4 2017-09-16[1]克兰(R4.0.0)
#>旋度4.3 2019-12-02[1]起重机(R4.0.0)
#>描述1.2.0 2018-05-01[1]起重机(R 4.0.0)
#>devtools 2.3.0 2020-04-10[1]起重机(R 4.0.0)
#>文摘0.6.25 2020-02-23[1]CRAN(R 4.0.0)
#>dplyr 0.8.5 2020-03-07[1]起重机(R4.0.0)
#>省略号0.3.1 2020-05-15[1]CRAN(R 4.0.0)
#>评估0.14 2019-05-28[1]起重机(R 4.0.0)
#>fansi 0.4.1 2020-01-08[1]起重机(R 4.0.0)
#>farver 2.0.3 2020-01-16[1]起重机(R 4.0.0)
#>fs 1.4.1 2020-04-04[1]起重机(R4.0.0)
#>ggplot2*3.3.0.9000 2020-05-31[1]Github(tidyverse/ggplot2@2b03e47)
#>胶水1.4.1 2020-05-13[1]起重机(R 4.0.0)
#>GTTable 0.3.0 2019-03-25[1]起重机(R 4.0.0)
#>高0.8 2019-03-20[1]克朗(R4.0.0)
#>htmltools 0.5.0 2020-06-16[1]起重机(R4.0.2)
#>httr 1.4.1 2019-08-05[1]起重机(R 4.0.0)
#>克尼特1.28 2020-02-06[1]克兰(R 4.0.0)
#>标签0.3 2014-08-23[1]起重机(R 4.0.0)
#>生命周期0.2.0 2020-03-06[1]起重机(R 4.0.0)
#>magrittr 1.5 2014-11-22[1]CRAN(R 4.0.0)
#>备忘录1.1.0 2017-04-21[1]克兰(R 4.0.0)
#>微基准1.4-7 2019-09-24[1]起重机(R 4.0.2)
#>mime 0.9 2020-02-04[1]起重机(R4.0.0)
#>孟塞尔0.5.0 2018-06-12[1]克兰(R 4.0.0)
#>支柱1.4.4 2020-05-05[1]起重机(R 4.0.0)
#>pkgbuild 1.0.8 2020-05-07[1]起重机(R4.0.0)
#>pkgconfig 2.0.3 2019-09-22[1]起重机(R4.0.0)
#>pkgload 1.1.0 2020-05-29[1]起重机(R4.0.0)
#>plyr 1.8.6 2020-03-03[1]起重机(R 4.0.0)
#>prettyunits 1.1.1 2020-01-24[1]起重机(R4.0.0)
#>processx 3.4.2 2020-02-09[1]起重机(R 4.0.0)
#>ps 1.3.3 2020-05-08[1]起重机(R4.0.0)
#>purrr 0.3.4 2020-04-17[1]起重机(R 4.0.0)
#>R6 2.4.1 2019-11-12[1]起重机(R4.0.0)
#>Rcpp 1.0.4.6 2020-04-09[1]起重机(R4.0.0)
#>遥控器2.1.1 2020-02-15[1]起重机(R4.0.0)
#>重塑2*1.4.4 2020-04-09[1]起重机(R4.0.0)
#>rlang 0.4.6 2020-05-02[1]起重机(R4.0.0)
#>rmarkdown 2.1 2020-01-20[1]起重机(R4.0.0)
#>rprojroot 1.3-2 2018-01-03[1]CRAN(R 4.0.0)
#>比例尺1.1.1 2020-05-11[1]起重机(R4.0.0)
#>sessioninfo 1.1.1 2018-11-05[1]CRAN(R 4.0.0)
#>stringi 1.4.6 2020-02-17[1]起重机(R 4.0.0)
#>纵梁1.4.0 2019-02-10[1]起重机(R4.0.0)
#>测试2.3.2 2020-03-02[1]起重机(R 4.0.0)
#>tibble 3.0.1 2020-04-20[1]起重机(R 4.0.0)
#>潮汐选择1.1.0 2020-05-11[1]起重机(R 4.0.0)
#>使用本1.6.1 2020-04-29[1]起重机(R 4.0.0)
#>vctrs 0.3.0 2020-05-11[1]起重机(R4.0.0)
#>2020-04年期间的第2.2.0条
system.time({
plot(0, ylim = range(data), xlim = c(1, ncol(data)), ylab = "tmp",
type = "n", xaxt = "n", xlab = "")
axis(1, at = seq(ncol(data)), labels = colnames(data), las = 2)
matlines(t(data), col = 1, lty = 1)
})
# user system elapsed
# 0.23 0.58 0.83