3

R(base、lattice 或其他)如何从 100000 个元素向量(或输出该值的函数)创建图形?它会策划一些并拒绝其他人吗?把所有的情节都放在一起?我怎样才能改变这种行为?

我怎样才能创建一个图表,在每个间隔中我都可以看到最大值和最小值,就像在交易“条形”图表中一样?(或任何其他想法来可视化那么多信息,而无需自己事先计算间隔、分钟和最大值,也不需要使用财务包)

我怎样才能创建一个大的“水平滚动”图?

例如,我想绘制前 100000 次迭代

zz <- (zz^2+1) %% nn     

从 zz=1, nn = 10^7+1 开始 x 轴就是迭代次数。

总结。我想在一个很大的间隔内绘制一个有时很软但有时非常尖的函数的输出。尖峰非常重要。

问候

4

4 回答 4

5

你提到你有时会有非常重要的尖峰。

请参阅下面我如何绘制ping结果,其中绝大多数数据以毫秒为单位,但峰值对我来说也很重要:

平

基本上,我hexbin的所有数据点的响应时间都 < 500 毫秒,而所有更长的响应时间的绘图点。5s响应时间另外标记为超时:

ggplot (df, aes (x = date, y = t5)) + 
        stat_binhex (data = df [df$t5 <= 0.5,], bins = nrow (df) / 250) +
        geom_point (data = df [df$t5 > 0.5,], aes (col = type), shape = 3) +
        ylim (c (0, 5)) +
        scale_fill_gradient (low = "#AAAAFF", high = "#000080") +
        scale_colour_manual ("response type", 
                             values = c (normal = "black", timeout = "red")) + 
        ylab ("t / s") 

我想我已经发布了这个作为类似问题的解决方案,但我找不到它。

于 2013-04-09T13:47:17.633 回答
2

如果 R 可以生成绘图,它将简单地绘制点,即使它们彼此重叠。一般来说,这么多的点对绘图并没有真正的用处,也没有必要。处理这个问题的一些策略是:

  • 子样本,比如说,2% 的数据并绘制它。重复几次,看看结果是否改变
  • 不要绘制原始数据,而是先汇总。考虑计算时间平均值,首先对数据进行分箱等。
于 2013-04-09T12:29:53.937 回答
2

R 将绘制所有点,并且事情可能看起来很混乱。

这是一个新包,但请查看 Hadley 的bigvis 包

于 2013-04-09T12:46:21.863 回答
1

curve可能是一个不错的方式去这里:

f <- function(x){(x^2+1)%%(1+1e7)}
curve(f, from=1, to=1e5)

在此处输入图像描述

于 2013-04-09T12:42:28.407 回答