【发布时间】:2021-04-14 05:27:13
【问题描述】:
我正在尝试遍历仅包含数字的列表。对于每个循环,我将列从 char 转换为 numeric,然后尝试绘制它。我的代码的一个基本示例是:
library(ggtree)
library(treeio)
library(tidyverse)
library(ggnewscale)
library(ggtreeExtra)
library(argparse)
library(RColorBrewer)
library(rlist)
library(stringr)
tree <- read.tree("/...") #PLEASE REPLACE THIS WITH THE LOCATION TO 'tree_newick.nwk'
tipcategories = read.csv("....", # PLEASE REPLACE THIS WITH THE LOCATION TO 'plot.tsv'
sep = " ",
header = TRUE,
stringsAsFactors = FALSE)
dd = as.data.frame(tipcategories)
p <- ggtree(tree) + ylim(-1, NA) + theme_tree2()
p <- p %<+% dd + geom_tiplab(size=1)
n <- 60
qual_col_pals = brewer.pal.info[brewer.pal.info$category == 'qual',]
col_vector = unlist(mapply(brewer.pal, qual_col_pals$maxcolors,
rownames(qual_col_pals)))
columns = c("Column1", "Column2")
for (col in columns) {
p <- p + new_scale_fill()
dd[[col]] <- as.numeric(as.character(dd[[col]]))
p <- p + geom_fruit(geom=geom_tile, mapping=aes(fill=dd[[col]]), width=2, offset=0.05) +
scale_fill_continuous(name=col, low='blue', high='red')
}
p <- p + theme(legend.text = element_text(size = 5), legend.key.size = unit(0.3, 'cm'))
ggsave("....") # PLEASE REPLACE THIS WITH WHERE YOU WANT TO SAVE IT
树数据是(请放入文件中,并在读取树中用点替换文件名):
(((((((A:4,B:4):6,C:5):8,D:6):3,E:21):10,((F:4,G:12):14,H:8):13):13,((I:5,J:2):30,(K:11,L:11):2):17):4,M:56);
元数据文件(请在read.csv中放入文件并用点替换文件名):
Accession1 Column1 Column2
A 10 130
B 20 120
C 30 110
D 40 100
E 50 90
F 60 80
G 70 70
H 80 60
I 90 50
J 100 40
K 110 30
L 120 20
M 130 10
上述内容仅适用于一列,但是,当尝试绘制 2 列时,第二列总是会覆盖第一列,并且第一列最终看起来与第二列完全相同。下图是程序正常运行的结果。
第一列(column1)实际上应该是这样的:
谁能提供有关如何解决此问题的帮助?
【问题讨论】:
-
如果没有样本数据进行测试,很难提供帮助。见stackoverflow.com/questions/5963269/…
-
您好,我很抱歉,因为我不知道您的意思。我希望它现在可以重现(否则请通知我)。
-
您可以
dput数据以便更轻松地复制粘贴到 R 脚本中;)
标签: r