繁体   English   中英

heatplot ggplot2错误scale_fill_gradient2和scale_fill_grey之间的行为不同错误:提供给离散刻度的连续值

[英]heatplot ggplot2 error different behaviour between scale_fill_gradient2 and scale_fill_grey Error: Continuous value supplied to discrete scale

我为彩色演示文稿制作了一个热图,现在尝试将其转换为灰度,问题是当我使用完全相同的代码将scale_fill_gradient2替换为scale_fill_grey时,它不起作用。 我见过类似的帖子,但是所有人实际上都在使用离散变量,而我正在使用连续变量。

这是一个示例数据集:

library(ggplot2)
DF <- data.frame(species = rep(c("a", "b", "c"), times= 3), variable = rep(c("Min","Max", "Mean"), each = 3), value = rnorm(9), sign = sample(c("+","-"), 9, replace = TRUE))

我将其绘制成全彩色,并且可以正常工作,这是我的代码:

p <- ggplot(DF, aes(x=variable, y=species)) +  geom_tile(aes(fill=value), colour = "black") + scale_fill_gradient2(low = "blue", high = 'red') +
theme(axis.text.x = element_text(angle = 90, hjust = 0.5, vjust = 0.5))+ geom_text(aes(label=sign), color = 'black')
p

然后我以为如果将scale_fill_gradient2更改为scale_fill_grey,它将更改为灰度,但会引发错误,这是该代码

p2 <- ggplot(DF, aes(x=variable, y=species)) +  geom_tile(aes(fill=value), colour = "black") + scale_fill_grey(start = 0.2, end = 0.8) +
theme(axis.text.x = element_text(angle = 90, hjust = 0.5, vjust = 0.5))+ geom_text(aes(label=sign), color = 'black')
p2

我得到的错误是这个:

Error: Continuous value supplied to discrete scale

谁能告诉我该如何解决?

谢谢

我找到了一种方法:

p <- ggplot(DF, aes(x=species, y=variable)) +  geom_tile(aes(fill=value), colour = "black") + scale_fill_gradient2(low = "white", high = 'black') +
theme(axis.text.x = element_text(angle = 90, hjust = 0.5, vjust = 0.5))+ geom_text(aes(label=sign), color = 'black')
p

那仍然没有使用scale_fill_grey,如果其他人认为也请张贴它,可能会给人们更多选择

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM