0

我想绘制几个点列表,每个列表都有距离(十进制)和error_no(1-8)。到目前为止,我正在使用以下内容:

plot(b1$dist1, b1$e1, col="blue",type="p", pch=20, cex=.5)
points(b1$dist2, b1$e2, col="blue", pch=22)

将它们都添加到同一个情节中。(稍后我将添加图例等)。

我遇到的问题是点重叠,即使更改用于绘图的字符,它也会覆盖以前的点。由于我计划绘制的不仅仅是 2,这将是一个大问题。

我找到了一些方法:

http://www.rensenieuwenhuis.nl/r-sessions-13-overlapping-data-points/

但我宁愿做一些沿着 y 轴间隔点的事情,一种方法是添加 0.1,然后添加 0.2,依此类推,但我想知道是否有任何包可以为我做这件事。

干杯 M ps:如果我错过了什么,请告诉我。

4

3 回答 3

2

如您发布的链接的第一点所述,jitter将稍微移动您的所有点。如果您只想移动 y 轴上的点:

plot(b1$dist1, b1$e1, col="blue",type="p", pch=20, cex=.5)
points(b1$dist2, jitter(b1$e2), col="blue", pch=22)
于 2012-06-18T14:52:08.130 回答
2

很大程度上取决于您希望向图表的读者传达什么信息。一个常见的解决方案是使用 R 颜色规范的透明度质量。例如,不要将颜色称为“蓝色”,而是将颜色设置为#0000FF44 (抱歉,如果我只是将其设置为红色或绿色)最后两个字节定义透明度,从 00 到 FF,因此重叠数据点看起来比独立点更暗.

于 2012-06-18T17:05:39.440 回答
0

查看包中的spread.labs函数TeachingDemos,尤其是示例。您可能可以使用该函数来创建绘图(示例处理标签,但也可以很容易地应用于点本身)。关键是您需要根据组合数据找到新位置,然后进行绘图。如果按原样执行的功能不能满足您的要求,您仍然可以查看代码并使用这些想法来展开您的观点。

另一种方法是重组您的数据并使用ggplot2带有“躲避”的包。其他方法而不是points多次使用将是matplot函数,使用col参数来绘制向量latticeggplot2绘图。您可能需要为其中任何一个重构数据。

于 2012-06-18T18:49:58.100 回答