[英]How to color the tip labels on a phylogenetic tree based on factors in external CSV file?
我正在運行帶有R Studio Version 1.2.1335
的MacOS
Mojav
e。 我正在嘗試更改通過nexus
文件上傳到R
的phylogenetic
樹上尖端標簽的顏色。 我有一個單獨的CSV
文件,其中所有物種名稱的確切格式均與nexus
文件相同。 在CSV
中,物種名稱旁邊的列中有“是”或“否”。 物種名稱列稱為Tree_name,另一列為“ have”。 我希望旁邊有“ no”的物種被塗成紅色,其他物種被塗成黑色。 我是第一次使用R
繪制phylogenies
。 任何幫助將不勝感激!
我試圖用點做類似的事情,但不斷提出這個錯誤
Error in res[edge[i, 2]] <- res[edge[i, 1]] + el[i] :
替換的長度為零
這是我嘗試過的代碼:
shark.data<-read.csv("sharks_nosquatinis_format.csv",row.names=1)
dotTree(str_tree_sharks,shark.data,colors=setNames(c("blue","red"),
c("yes","no")),ftype="i",fsize=0.7)
如果沒有運行示例,很難說出來,但是您可以按照以下方式使用:
## Creating a random tree (you can use your nexus one)
my_tree <- rtree(5)
## Creating a random dataset (same)
my_data <- data.frame("column_of_interest" = c("yes", "no", "yes", "no", "yes"))
## Creating a vector of colours
my_colours <- c("black", "orange")
## Plotting the tree with colored tip labels
plot(my_tree,
tip.color = my_colours[(my_data$column_of_interest == "yes")+1])
當然column_of_interest
是您要繪制信息的列。 部分(my_data$column_of_interest == "yes")+1
正在查找column_of_interest
中的哪些行具有元素"yes"
並返回TRUE
/ FALSE
向量。 然后,您可以添加+1
以將該邏輯向量轉換為數字1,其中TRUE
變為2
(1 + 1),而FALSE
變為1
(0 + 1)。 然后, my_colours[(my_data$column_of_interest == "yes")+1]
部分將第一種顏色歸因於FALSE
(在此示例中,不是"yes"
事物),而第二種顏色歸因於TRUE
( "yes"
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.