ラベルが互いに重ならないように、ggplot 散布図のラベルを整理しようとしています。この目的のために、直接ラベル ライブラリを使用しようとしていますが、動作させることができません。コードを試したとき:
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
このスレッドでは、データ ポイントが少ない場合はラベルを手動で配置するか、データ ポイントが多すぎる場合はラベルをまったく配置しないことを提案しています。これには同意しますが、多くの異なるデータ セットを使用してこのグラフを生成するので、データ ラベルが必要です。今のところグラフはこんな感じ