Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的矩阵绘制线图的最快方法_R_Ggplot2_Shiny - Fatal编程技术网

从R中的矩阵绘制线图的最快方法

从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 = "

有没有一种方法可以加速下面的代码,从矩阵在R中绘制线图?矩阵相当大,大约3000行乘60列,有时数据更大

我目前使用
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