[英]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.