gpt4 book ai didi

r - 在 ggtern 中通过 geom_point 和黑色轮廓填充

转载 作者:行者123 更新时间:2023-12-04 08:39:27 27 4
gpt4 key购买 nike

如何使用选定的填充红色/蓝色和黑色轮廓为 A 和 D 着色。检查我的 以查看我尝试过的内容。谢谢!

obs <- c("Gene1", "Gene2", "Gene3", "Gene4","Gene5", "Gene6")
func1 <- c("A", "B", "C", "D", "C", "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(obs, func1, func2, Cond1, Cond2, Cond3)

library(ggtern)

g = ggtern(data=df,aes(x=Cond1,y=Cond2,z=Cond3)) +
theme_bw() +
geom_point(aes(fill = c("A" = "red", "D" = "blue"), shape=21, colour="black" ) +
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

最佳答案

您需要创建一个命名的颜色列表,然后使用 scale_fill_manual功能。

#A General way of creating a name list of colors
# col<-c("A" = "red", "B"="black", "C"="black", "D"="blue")
col<-rep("black", length(unique(df$func1)))
names(col) <- unique(df$func1)
col[which(names(col)=="A")] <- 'red'
col[which(names(col)=="D")] <- 'blue'

library(ggtern)

g <- ggtern(data=df, aes(x=Cond1,y=Cond2,z=Cond3)) +
theme_bw() +
geom_point(aes(fill=func1), shape=21, colour="black" ) +
scale_fill_manual(values=col) +
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))

print(g)
更新
ggplot 按照定义的顺序绘制不同的层。为了在其他点之上绘制 A & D 点,可以在原始点之后添加另一个 geom_point 定义。
在这里,我创建了 A&D 点的子集,并将它们绘制在初始集合上。
df_ad <- df[(df$func1=="A" | df$func1=="D"),]

ggtern(data=df, aes(x=Cond1,y=Cond2,z=Cond3)) +
theme_bw() +
geom_point(aes(fill=func1), shape=21, colour="black" ) +
geom_point(data=df_ad, aes(x=Cond1,y=Cond2,z=Cond3, fill=func1), shape=21) +
scale_fill_manual(values=col) #+ ....

关于r - 在 ggtern 中通过 geom_point 和黑色轮廓填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64633581/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com