【问题标题】:Error: Continuous value supplied to discrete scale错误:提供给离散刻度的连续值
【发布时间】:2015-01-08 04:03:46
【问题描述】:

我正在尝试为离散结果(每个值使用单一颜色)制作热图,以便:

df<-data.frame(x=rep(LETTERS[1:10], each=10), 
               y=rep(1:10,10),
               value=sample(1:8, 100,replace=T))
colors<-c("green", "lightyellow", "yellow", "orange", "orangered", "red", "darkred", "black")
ggplot(df, aes(x=x, y=y))+
    geom_tile(aes(fill=value), colour="white")+
    #scale_fill_gradient(low="green", high="red")
    scale_fill_manual(values=colors)
Error: Continuous value supplied to discrete scale

有人知道如何修复它并将颜色变量应用于热图吗?

【问题讨论】:

  • 感谢您的信息。但这有点不同。您能否使用我的演示 +1 提供答案。
  • 您是否阅读了@akrun 提供的链接? “年龄 [值] 是一个连续变量,但您试图在离散尺度中使用它(通过指定年龄 [值] 的特定值的颜色”;“您可以同时将年龄 [值] 视为分类变量(因素)”。

标签: r ggplot2


【解决方案1】:

如果您想手动提供颜色,您需要将fill 映射到一个因子变量。

ggplot(df, aes(x=x, y=y))+
  geom_tile(aes(fill=factor(value)), colour="white")+
  scale_fill_manual(name = "Values", values=setNames(colors, 1:8))

【讨论】:

    猜你喜欢
    • 2016-07-26
    • 2014-07-06
    • 2019-01-04
    • 2023-01-31
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    相关资源
    最近更新 更多