Это немного сложно. Я потратил несколько часов, пытаясь его решить. У меня есть треугольный график, сделанный с ggtern пакет, который должен быть установлен вручную из архива с момента его удаления.Избегайте перекрытия этикеток с помощью ggplot2 и directlabels с использованием 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.
Любые идеи? Из чтения справки кажется, что он должен работать, когда вы группировали точки данных, которых у меня нет в этом случае. Возможно ли это сделать? Есть ли другой способ? Я посмотрел на более старые вопросы и их ответы и не видел ничего полезного.