gpt4 book ai didi

r - 是什么导致我的 R 包仅在基于 linux 的构建中出现 "Must request at least one colour from a hue palette"错误?

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:08 24 4
gpt4 key购买 nike

我目前正在检查一些代码的跨平台兼容性。我正在使用 Travis-CI 在 GitHub 提交的 ubuntu 下构建我的 R 包。如果我删除这一个部分,它会成功构建,但如果我包含这段代码,我会收到错误:

Must request at least one colour from a hue palette.

这构建良好并在 Windows 和 OS X 上正常工作,这个问题只出现在 ubutu 构建上。我还想指出,这是在执行后续代码的小插图构建步骤中发生的。此错误消息似乎源自 this function in the R scales library.

我有一些看起来像这样的数据:

gene <- c("ISG20","ISG20","HEY1","ISG20","ACTB","MDM2","CDYL","HEY1","ACTB","UTP3","MDM2") 
variable <- c("6h_ebov","1d_ebov","1d_ebov","2d_ebov","2d_ebov","2d_ebov","2d_restv","2d_restv","2d_restv","2d_restv","2d_restv")
value <- c(-4.54267311671893,0.523667984831315,0.552671011358972,3.97643775389922,0.888734866999937,1.26719604773752,1.31653814202267,2.28445821019938,1.00301304727651,1.86941283629719,1.33916249182697 )

filteredList <- data.frame(gene,variable,value)

> head(filteredData)
gene variable value
1 ISG20 6h_ebov -4.5426731
2 ISG20 1d_ebov 0.5236680
3 HEY1 1d_ebov 0.5526710
4 ISG20 2d_ebov 3.9764378
5 ACTB 2d_ebov 0.8887349
6 MDM2 2d_ebov 1.2671960

我正在使用ggplot2来显示这些数据,我的命令大致如下:

library(ggplot2)
library(ggthemes)

stata_long_pal = c(stata_pal("s2color")(15), stata_pal("s1rcolor")(15))
plot_out <- ggplot(filteredList, aes(x=value, y=factor(variable, levels=as.character(unique(variable)), ordered=TRUE), label=variable, col=variable)) +
geom_point(stat='identity', aes(col=variable), size=3) +
theme_stata() +
scale_fill_manual(values=stata_long_pal) +
theme(axis.text.y = element_text(angle = 45, hjust = 1), plot.title = element_text(size=14, face="bold", hjust=0)) +
guides(col=guide_legend(ncol=6%/%3)) +
theme(legend.text = element_text(size=12)) +
theme(legend.title=element_blank()) +
theme(axis.text=element_text(size=12, face="bold")) +
theme(text = element_text(size=22,margin = margin(t = 0, r = 10, b = 0, l = 0))) +
labs(x="", y="", title="Differentially Expressed Genes", subtitle="Log2 Fold-Change")

这是触发错误的部分。我觉得这个问题可能是 aes() 或 scale_fill_manual() 的一些小技术问题。我试图看看以几种不同的方式改变这些是否有任何效果,但因为我使用的是 Travis-CI,每次改变后都需要相当长的时间来测试。

有没有人看到可能导致问题的原因或对发生这种情况的原因有任何见解?非常感谢。

编辑:我想指出我已经将问题缩小到这段代码。

geom_point(stat='identity', aes(col=variable), size=3) 

如果我执行以下操作,它会起作用,但我的着色会丢失。

geom_point()

EDIT2:我修改了数据部分以使其更有用。现在应该直接复制/粘贴单词。

最佳答案

根据我的经验,当我最终为我的标签使用 NA 时,就会发生这种情况。我愿意打赌你的“变量”变量有 NAs 而不是你在调用 ggplot 时想要的 col= 参数的字符串。我还注意到您在 aes 内外都有 col= 两次,这可能会有问题。我刚刚使用 Shiny 遇到了这个问题,我想我会提供我的 2 美分。

关于r - 是什么导致我的 R 包仅在基于 linux 的构建中出现 "Must request at least one colour from a hue palette"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52649772/

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