0

我正在尝试使用 ggplot2 库生成散点图。我的数据框(称为 scatterPlotData)是这种形式:

115 2.3
120 1.6
.
.
.
132 4.3

(... 表示许多其他类似的值)。本质上,一个 2 列数据框。我也有标签与这些点一起使用。首先,我遇到了散点图本身的问题。我正在使用以下代码:

p <- ggplot(scatterPlotData, aes("Distance (bp)", "Intensity"))
p + geom_point()

但是,使用上面的代码,我得到以下图:

在此处输入图像描述

显然,这不是散点图。所以,如果有人能指出我做错了什么,我会非常有帮助。

其次,关于标签。我将有许多数据点,这些数据点有重叠数据点的风险。我应该如何使用ggplot为每个点添加标签?此外,它指出我可以使用directlabels包来获得使用不同颜色的良好无重叠标记散点图,但是,我不确定我将如何处理,ggplot因为我没有找到任何有关使用directlabels的文档与ggplot.

非常感谢任何一个(或两个)问题的帮助 - 谢谢。

4

2 回答 2

3

丢失引号,此时您正在绘制文本值的图......再看一遍,您的变量名 ( Distance (bp)) 中的括号会出现问题。将其更改为不带括号的内容,然后在ggplot不带引号的情况下进行调用:

#Assuming Distance (bp) is the first column
names(scatterPlotData)[1] <- "Distance"
p <- ggplot(scatterPlotData, aes(Distance, Intensity) + geom_point()

至于不重叠的标签,这是一个令人烦恼的问题,有很多关于 SO 的讨论——我认为你不会从这里这样一个模糊的问题中得到很好的回应。

于 2013-07-24T02:29:35.110 回答
3

首先,如果您提供一个可重现的示例来精确描述您的数据,那将会更有帮助。

您不应该aes在引号中传递变量名称。我不确定你从哪里得到的,不会有一个我能想到的任何人这样做的例子(除非他们使用aes_string的是专门针对这种情况的)。

但是,您似乎有一个尴尬的变量名,即Distance (bp). 这是非标准的,不推荐。名称中不应包含空格。最好的办法是将该列重命名为合理的名称,然后执行以下操作:

p <- ggplot(scatterPlotData, aes(x = Distance_bp,y = Intensity))
p + geom_point()

如果您不重命名该列,则可能会出现以下情况:

p <- ggplot(scatterPlotData, aes(x = `Distance (bp)`,y = Intensity))
p + geom_point()

请注意,这些是反引号,而不是单引号。

至于重叠数据,我建议阅读这里这里

于 2013-07-24T02:51:03.243 回答