使用ggtern的三角形图

时间:2016-11-30 17:03:20

标签: r triangular

我正在尝试使用三角形图中的某些区域对这些代码进行三次绘制:

library(ggtern)
g <- data.frame(x=c(1,.6,.6), y=c(0,.4,0), z=c(0,0,.4), Series="Green")
r <- data.frame(x=c(0,0.4,0), y=c(0,0,0.4), z=c(1,0.6,0.6),     Series="Red")
p <- data.frame(x=c(0,0.4,0), y=c(1,0.6,0.6), z=c(0,0,0.4),  Series="Purple")
DATA = rbind(g,r,p)

plot <- ggtern(data=DATA,aes(x,y,z)) +
  geom_polygon(aes(fill=Series),alpha=.5,color="black",size=0.25) +
  scale_fill_manual(values=as.character(unique(DATA$Series))) +
  theme(legend.position=c(0,1),legend.justification=c(0,1)) +
  labs(fill="Region",title="Sample Filled Regions")

print(plot)

我想为这个从文本文件中获取的图添加一些点,我正在读取它们的x,y和z坐标。我怎么能指出情节?

如果我尝试这样的话,它会删除之前的情节:

plot <- ggtern(data = data.frame(x = cordnate_x, y = cordnate_y, z = cordnate_z),aes(x, y, z)) + geom_point() +theme_rgbg()
print(plot)

这是我需要添加点数的情节

traingular plot

1 个答案:

答案 0 :(得分:0)

您可以添加点,就好像您有正常的ggplot对象一样。

temp <- data.frame(x=c(0.4), y=c(0.6), z=c(0.4))
plot<- ggtern(data=DATA,aes(x,y,z)) +
    geom_polygon(aes(fill=Series),alpha=.5,color="black",size=0.25) +
    scale_fill_manual(values=as.character(unique(DATA$Series))) +
    theme(legend.position=c(0,1),legend.justification=c(0,1)) +
    labs(fill="Region",title="Sample Filled Regions") +
    geom_point(data = temp, colour = "red") +
    annotate("text", x = 0.3, y = 0.6, z = 0.4, label = "Some text")