【发布时间】:2022-06-23 16:48:28
【问题描述】:
我是 R 新手,我正在尝试制作箭头图。但是,基本的 gggenes set3 颜色主题只有 12 种颜色,我需要更多。
我想为一组基因分配颜色(例如,糖基转移酶全为红色,甲基转移酶全为蓝色)
我在我的 df 中添加了一个名为“颜色”的额外列,并为每个基因分配了一个十六进制代码 (#c1ffc1) - 只是为了测试所有基因在通过并分配糖基转移酶等之前是否可以改变颜色 - 我设法让它改变颜色一次,现在它不起作用?
这是三个基因的代码示例
#add colour column to assign to genes
> colour <- c("#c1ffc1")
> df1$colour <- colour
> #change colour
> library(ggplot2)
> library(gggenes)
> ggplot(df1, aes(xmin = start, xmax = end, y = molecule, fill = colour)) +
+ geom_gene_arrow() +
+ geom_gene_label(aes(label = gene)) +
+ facet_wrap(~ molecule, scales = "free", ncol = 1) +
+ theme(legend.position="top") + xlim(0,37841) + scale_fill_discrete(name = "gene", labels = c("VanH", "VanA", "VanX"))
molecule start end strand gene orientation colour
KJ364518.1 2314 3345 reverse vanH 1 #f15854
KJ364518.1 3347 4387 reverse vanA 1 #f15854
KJ364518.1 4384 4992 reverse vanX 1 #f15854
KJ364518.1 6334 7125 reverse ajrR 1 #faa43a
KJ364518.1 7246 8097 reverse pdh 1 #5da5da
KJ364518.1 8410 10272 reverse tri 1 #b276b2
提前非常感谢, 露西
【问题讨论】:
-
没有样本数据很难知道,但是......我推断
gene是一个分类变量,并且尝试区分超过(比如说)7 种不同的颜色甚至可能是有问题的不考虑色盲等问题。但是......通常你可以使用aes(color=I(colour))(或添加到现有的aes(..))来强制ggplot在数据中使用你预定义的颜色。 -
@r2evans 您好,非常感谢您的回复!我已经编辑了帖子以添加 df 的图像,希望这更有意义?
-
谢谢!为此......请不要(仅)发布代码/数据/错误的图像:它会破坏屏幕阅读器并且无法复制或搜索(参考:meta.stackoverflow.com/a/285557 和 xkcd.com/2116)。请直接包含代码、控制台输出或数据(例如,
data.frame(...)或来自dput(head(x))的输出)。 (我不会花时间转录数据。) -
@r2evans 真诚的道歉,我对此很陌生...我的数据是一个表格有没有办法输入,所以你可以看到?
-
如果您将
dput(head(df1))的输出复制粘贴到您的问题中,我们可以使用它来重现您的部分数据。