这个有点复杂。我花了几个小时来解决这个问题。我有一个三角图与ggtern,一个软件包,必须手动安装从档案,因为它被删除。
我的数据在这里:https://osf.io/xmagp/
如果您安装了ggtern软件包,此代码将使绘图工作。
library("ggplot2")
library(ggtern)
library("directlabels")
DF = read.csv("AdmixtureInAmericasData_v3.csv", #this loads John's data
row.names=1) #first col as rownames
temp = DF[which(DF$US.State==1),] #subset
US.plot = ggtern(data=temp,
aes(x=Eugenomefilledratio,
y=Afrgenomefilledratio,
z=Amergenomefilledratio)) +
xlab("Euro") +
ylab("Afri") +
zlab("Amer") +
tern_limits(T=.4, L=1, R=.4) +
ggtitle("Admixture estimates for US states") +
theme(plot.title = element_text(face="bold")) +
geom_point() +
geom_text(aes(label=rownames(temp)), size=3, fontface="bold", color="navyblue", alpha=.5,hjust=-0.1, position = "jitter")
US.plot
direct.label(US.plot)除了最后一行之外,这应该会产生(我认为相当整洁):

当我尝试使用directlabels命令时,我得到以下内容:
Error in direct.label.ggplot(US.plot) :
Need colour aesthetic to infer default direct labels.有什么想法吗?从阅读“帮助”中可以看出,当您对数据点进行分组时,它就会正常工作,在本例中,我没有这种情况。有可能让它起作用吗?还有别的办法吗?我看过以前的问题和答案,没有看到任何有用的东西。
发布于 2016-01-18 06:52:19
尝试此操作,我将需要将直接标签作为已批准的几何图形添加到包中,在此期间,这是访问包含已批准几何图形列表的未导出隐藏对象的一种方法:
注意,我无法在上面的链接中访问您的数据,因此,为了演示的目的,我只使用了Feldspar集和ggtern。

#Required Libraries
library(directlabels)
library(ggtern)
#Build Sample plot
data(Feldspar)
base <- ggtern(Feldspar,
aes(Ab,An,Or,group=Feldspar,colour=Feldspar)) +
geom_point() +
geom_mask() #Manual Clipping Mask as Last Layer
#Hack
.approvedgeom = c(ggtern:::.approvedgeom,c('GeomDl'))
assignInNamespace('.approvedgeom',
.approvedgeom,
envir=as.environment('package:ggtern'))
#Render the directlabels
direct.label(base)https://stackoverflow.com/questions/29267679
复制相似问题