我正在尝试使用ggplot2库生成散点图。我的数据框(称为scatterPlotData)采用以下形式:
115 2.3
120 1.6
.
.
.
132 4.3
(......表示许多其他类似的值)。基本上,是一个2列数据帧。我也有标签与每个点一起。首先,我遇到了散点图本身的问题。我正在使用以下代码:
p <- ggplot(scatterPlotData, aes("Distance (bp)", "Intensity"))
p + geom_point()
但是,使用上面的代码,我得到以下图:
显然,这不是散点图。所以,如果有人能指出我做错了什么,我会非常乐于助人。
其次,这是关于标签的。我将有许多数据点,存在重叠数据点的风险。我应该如何使用ggplot为每个点添加标签?另外,states我可以使用 directlabels 包来获得使用不同颜色的良好重叠免费标记散点图,但是,我不确定如何使用{{ 1}}因为我没有找到关于直接标签与ggplot
一起使用的任何文件。
非常感谢任何(或两个)问题的帮助 - 谢谢。
答案 0 :(得分:3)
丢失引号,当你正在制作文本值的图表时...再看一遍,你的变量名(Distance (bp)
)中的括号会有问题。将其更改为不带括号的内容,然后在没有引号的情况下进行ggplot
调用:
#Assuming Distance (bp) is the first column
names(scatterPlotData)[1] <- "Distance"
p <- ggplot(scatterPlotData, aes(Distance, Intensity) + geom_point()
对于不重叠的标签,这是一个棘手的问题,有很多关于SO的讨论 - 我想你不会从这里一个模糊的问题得到很好的回答。
答案 1 :(得分:2)
首先,如果您提供了一个可重复的示例精确地描述了您的数据,那将会更有帮助。
您不应该在引号中的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()
请注意,这些是反引号,而不是单引号。