R - 散点图,如何绘制不同线条中的点重叠?

时间:2012-06-18 14:46:45

标签: r

我想绘制几个点列表,每个列表都有距离(十进制)和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轴划分点的东西,一种方法是添加.1,然后添加.2,依此类推,但我想知道是否有任何包为我做。

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

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

另一种方法是重构数据并使用ggplot2包“躲避”。其他方法而不是多次使用points将是matplot函数,使用col参数绘制矢量或latticeggplot2图。您可能需要重新构建其中任何数据。