2015-06-20 92 views
-2

我的数据集有数百万个点,并不是一个好主意来绘制所有这些点。Plot large scatterplot

runif(10000)->t1 
runif(10000)->t3 
as.data.frame(cbind(t1,t3))->t4 
plot(t4[,1],t4[2]) 

我该如何绘制点的样本?我知道我可以从两个样本中进行采样,但问题是第一个col是x值,所以我需要通过采样获得相同的x和y - 或者说相同的索引。不是样本(t4 [,1])然后是样本t4 [,2]

是否有一种简单的方法可以将图中的95%范围的值绘制到图中? 我认为带有预测的解决方案不会对于我来说工作得太好了,只是因为数据集很大,而且需要很长的时间才能完成,实际上只需要在0.1或者95%的数值窗口上绘制出来,并且排在最前面的是

回答

1

您可以对指标进行取样并绘制总点数的子集

N<-10000 
samplesize<-1000 
t4<-data.frame("t1" =runif(N) ,"t3" = runif(N)) 
sampleindices <- sample(1:N,samplesize, replace=FALSE) 
plot(t4[sampleindices,1],t4[sampleindices,2]) 

我不知道您曲线的第二部分estion意味着你想把95%的分位数作为一条线?

quantile_t1<- quantile(t4$t1[sampleindices], probs = 0.95) 
quantile_t3<- quantile(t4$t3[sampleindices], probs = 0.95) 
abline(v = quantile_t1) 
abline(h = quantile_t3) 

你也应该看看这里:R: Scatterplot with too many points。对于我来说,当一个情节包含很多点时,这些问题就会出现,每个点都不会增加任何值,但情节的大小会增加,而R需要永久性地完成它。 10000个数据点根本不应该成为问题。

+0

它更多的是我想在0.1窗口中绘制分位数的runnign平均值,所以它会看起来像ggplot2中的smooth_geom ... – heinheo