我想整理我的ggplot散点图的标签,使标签不相互重叠的直接标签库。为此,我试图使用直接标签库,但是我无法使其正常工作。当我试图代码:Rearanging ggplot散点图的标签与R中
mytable <- read.csv('http://www.fileden.com/files/2012/12/10/3375236/My%20Documents/CF1_deNovoAssembly.csv', sep=",", header=TRUE)
mytable$Consensus.length <- log(mytable$Consensus.length)
mytable$Average.coverage <-log(mytable$Average.coverage)
mytable$Name <- do.call(rbind,strsplit(as.character(mytable$Name), " ", '['))[,3]
ggplot(mytable, aes(x=Consensus.length, y=Average.coverage, label=Name)) + geom_point() + ylab("Contig Average Coverage (log)") + xlab("Contig Consensus Length (log)") + opts(title="Contig Coverage vs Length") + geom_text(hjust=0, vjust=-0.2, size=4)
direct.label(p, "first.qp")
我得到这个错误:
Error in direct.label.ggplot(p, "first.qp") :
Need colour aesthetic to infer default direct labels.
所以我加入AES到geom_point()
ggplot(mytable, aes(x=Consensus.length, y=Average.coverage, label=Name)) + geom_point(aes(colour=Average.coverage)) + ylab("Contig Average Coverage (log)") + xlab("Contig Consensus Length (log)") + opts(title="Contig Coverage vs Length") + geom_text(hjust=0, vjust=-0.2, size=4)
改变绘图剧本,现在我得到以下错误
Error in order.labels(d) : labels are not aligned
我发现this thread,他们建议如果数据点太多,只手动放置标签,或者根本不放置标签。我同意这一点,但我将用许多不同的数据集生成此图,我确实需要数据标签。到目前为止,这是图表的外观
每个标签(172和165)之间的差异是否有意义?我在问,因为你可以使用基于这些数字减少的色阶。例如,将它们分成10个或20个组。例如,如果它们表示地理或其他可测量距离的东西。 –
另一个步骤可能是去掉点,仅积的数字(在这种情况下,你将要设置'hjust'和'vjust' 0.5。 但我认为最终是没有办法让所有在场的标签,并且不重叠,并且字体很大 - 太多的数据点太靠近彼此。 –
@BrandonBertelsen本身并没有意义上的差异,但我想知道172和165在哪里。例如,我想确定y轴中4.5到5.5之间的数据点组中的哪些数据点群集。 –