将变量函数标签添加到R中的三元图

问题描述

我想将我的数据绘制为三元图,其中基因在三种条件之一(即)下上升或下降。更接近显示更高值的条件。

  1. 是否为每个变量标准化了独立于值的值?
  2. 我可以在选定的声明变量“ func2”的“基因”变量中添加标签吗?

这是我获得的(顶部)和我想要的(底部)的可复制示例。

gene <- c("Gene1","Gene2","Gene3","Gene4","Gene5","Gene6")
func1 <- c("A","B","C","D","A")
func2 <- c("A1","B1","C1","D1","C2","A2")
Cond1 <- c(0.007623561,0.004639893,0.000994121,0.017494429,0.000366445,0.006663334)
Cond2 <- c(0.011299941,0.009994388,0.001012428,0.013695669,0.000299771,0.010287904)
Cond3 <- c(0.005055458,0.016826251,0.001311254,0.016115009,0.000242897,0.004583889)
df <- data.frame(gene,func1,func2,Cond1,Cond2,Cond3)


library(ggplot2) 
library(ggtern) 
ggtern(data=df,aes(x=Cond1,y=Cond2,z=Cond3,color=func1)) +
theme_bw() +
geom_point() +
labs(x="Cond1",y="Cond2",z="Cond3") +
scale_T_continuous(breaks=unique(df$x))+ 
scale_L_continuous(breaks=unique(df$y))+ 
scale_R_continuous(breaks=unique(df$z))

enter image description here

enter image description here

解决方法

我们首先存储原始图:

library(ggtern)

g = ggtern(data=df,aes(x=Cond1,y=Cond2,z=Cond3,color=func1)) +
theme_bw() +
geom_point() +
labs(x="Cond1",y="Cond2",z="Cond3") +
scale_T_continuous(breaks=unique(df$x))+ 
scale_L_continuous(breaks=unique(df$y))+ 
scale_R_continuous(breaks=unique(df$z))

使用geom_label_viewport()选项,一个简单的带注释的图将如下所示:

g + geom_text(aes(label=func2),hjust=-0.2,vjust=-0.2,size=3)

enter image description here

您可以像这样子集标记点:

g + geom_text(data=~subset(.,func2 %in% c("C2","B1")),aes(label=func2),size=3)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...