0

我能够绘制数据并且一切似乎都有效。唯一的问题是 R 似乎决定是否插入行标记。我有几个不同的数据集,对于 1500 的数据集,绘图工作正常,我可以看到标记。任何其他数据集,所有这些数据集都有 3000 多个点,该图忽略所有标记,只看到线。下面你们可以看到用于绘制数据的代码和示例绘图图。

我的问题是,我如何确保 R 会用标记绘制线条?难道我做错了什么?

感谢您的时间和帮助。

png(filename="figures/all.normdtime.png", width=800, height=600)
plot(ecdf(data1[,10]), col="blue", ann=FALSE,       pch=c(1,NA,NA,NA,NA,NA,NA,NA,NA), cex=2) 
lines(ecdf(data2[,10]), col="green", pch=c(3,NA,NA,NA,NA,NA,NA,NA,NA), cex=2)
lines(ecdf(data3[,10]), col="red", pch=c(8,NA,NA,NA,NA,NA,NA,NA,NA), cex=2)
lines(ecdf(data4[,10]), col="orange", pch=c(2,NA,NA,NA,NA,NA,NA,NA,NA), cex=2)

title(xlab="Transfer rate (bytes/ms)")
title(main="ECDF Normalized Download Time")

dev.off()

没有标记,绘制了 21100 个点

带标记,绘制 1400 个点

4

1 回答 1

0

我会尝试这样的事情:

data1 <- dnorm(seq(-5,5,.001))
x <- ecdf(data1)

plot(ecdf(data1), col="blue", ann=FALSE, pch=c(1,rep(NA,10000)), cex=2) 
points(x=knots(x)[seq(1,length(knots(x)),5)], y=ecdf(data1)(knots(x)[seq(1,length(knots(x)),5)]), col="red",pch=3)

title(xlab="Transfer rate (bytes/ms)")
title(main="ECDF Normalized Download Time")

在此处输入图像描述

原始的 ECDF 不可见,因为我们绘制了大约。1500点。如果你想要更少,只需5将 x 和 y 参数中的值更改points为更大的数字,即 100。然后我们绘制了约 70 个点:

在此处输入图像描述

我没有你的数据,但我认为这应该适合你:

ecdf1 <- ecdf(data1[,10])
ecdf2 <- ecdf(data2[,10])
ecdf3 <- ecdf(data3[,10])
ecdf4 <- ecdf(data4[,10])

knots1 <- knots(ecdf1)
knots2 <- knots(ecdf2)
knots3 <- knots(ecdf3)
knots4 <- knots(ecdf4)

n <- 10 # every 10th point

png(filename="figures/all.normdtime.png", width=800, height=600)

plot(ecdf1, col="blue", ann=FALSE) 
points(x=knots1[seq(1,length(knots1),n)], y=ecdf1(knots1[seq(1,length(knots1),n)]), col="blue",pch=1)

lines(ecdf2, col="green")
points(x=knots2[seq(1,length(knots2),n)], y=ecdf2(knots2[seq(1,length(knots2),n)]), col="green",pch=3)

lines(ecdf3, col="red",)
points(x=knots3[seq(1,length(knots3),n)], y=ecdf3(knots3[seq(1,length(knots3),n)]), col="red",pch=8)

lines(ecdf4, col="orange")
points(x=knots4[seq(1,length(knots4),n)], y=ecdf4(knots4[seq(1,length(knots4),n)]), col="orange",pch=2)


title(xlab="Transfer rate (bytes/ms)")
title(main="ECDF Normalized Download Time")

dev.off()
于 2015-10-07T17:38:31.363 回答