加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

包装R的绘图函数(或ggplot2)以防止绘制大型数据集

发布时间:2020-12-14 05:14:02 所属栏目:大数据 来源:网络整理
导读:而不是询问如何绘制大数据集,我想包装绘图,以便生成大量绘图的代码在绘制大对象时不会受到重创.如何以非常简单的方式包装绘图,以便保留其所有功能,但首先测试以确定传递的对象是否太大? 这段代码适用于非常普遍的绘图调用,但它缺少与绘图相同的通用性(见下
而不是询问如何绘制大数据集,我想包装绘图,以便生成大量绘图的代码在绘制大对象时不会受到重创.如何以非常简单的方式包装绘图,以便保留其所有功能,但首先测试以确定传递的对象是否太大?

这段代码适用于非常普遍的绘图调用,但它缺少与绘图相同的通用性(见下文).

myPlot <- function(x,...){
    isBad <- any( (length(x) > 10^6) || (object.size(x) > 8*10^6) || (nrow(x) > 10^6) )
    if(is.na(isBad)){isBad = FALSE}
    if(isBad){
        stop("No plots for you!")
    }
    return(plot(x,...))
}

x = rnorm(1000)
x = rnorm(10^6 + 1)

myPlot(x)

失败的示例:

x = rnorm(1000)
y = rnorm(1000)
plot(y ~ x)
myPlot(y ~ x)

是否有一些简单的方法来包装绘图,以便能够对要绘制的数据进行检查,同时仍然通过所有参数?如果没有,那么ggplot2怎么样?我是一个平等的机会非绘图员. (在数据集很大的情况下,我将使用hexbin,子采样,密度图等,但这不是重点.)

注1:在测试想法时,我建议测试尺寸> 100(或设置变量,例如myThreshold< -1000),而不是大小> 1M – 否则在缓慢绘图方面会有很多痛苦.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读