使用ggtern避免使用ggplot2和directlabels重叠标签

时间:2015-03-25 22:23:50

标签: r ggplot2

这个有点复杂。我花了几个小时试图解决它。我有一个使用 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)

除了最后一行,这应该产生(我认为非常整洁):

enter image description here

当我尝试使用directlabels命令时,我得到了这个:

Error in direct.label.ggplot(US.plot) : 
  Need colour aesthetic to infer default direct labels.

有什么想法吗?通过阅读帮助,看起来它应该在您分组数据点时起作用,在这种情况下我没有。是否有可能使其工作?还有其他方法吗?我查看了较旧的问题及其答案,并没有看到任何有用的信息。

1 个答案:

答案 0 :(得分:1)

试试这个,我需要将直接标签作为已批准的几何图形添加到包中,在此期间,这是一个访问包含已批准几何列表的未导出隐藏对象的黑客攻击:< / p>

注意,我无法通过上述链接访问您的数据,因此只需使用$ php artisan key:generate 设置Feldspar进行演示。

solution

ggtern