【问题标题】:tweaking scale heatmap with ggplot2使用 ggplot2 调整比例热图
【发布时间】:2012-12-24 08:59:13
【问题描述】:

我是R 的新手,如果这个问题已经被问了无数次,请原谅我。我正在尝试使用R 制作一个heatmap,遵循这个example,它们是tsvs

这是一个例子。

name sam1 sam2
a     0.2  0
b     0.1  0.05
c     0.3  0.06

抱歉,我无法发布我得到的图表(因为我是新手)。

制作图表时,比例在 0 到 1 之间(heatmap 中的数据在 0 到 1 之间重新调整),但是我的文件中没有任何大于 0.3 的值,因此我想知道是否heatmap 中的比例可以在 0 到 0.3 之间。我不确定我是否在此处提供了足够的详细信息,如果我需要在此处提供更多详细信息,请告诉我。

基本上我正在使用

a <- read.table(file = "name", sep ="\t", header =T) 

a.m <- melt(a)

a.m <- ddply(a.m, .(variable), transform,  rescale = rescale(value))

(p <- ggplot(a.m, aes(variable, transposons)) + 
      geom_tile(aes(fill = rescale), colour = "yellow") + 
      scale_fill_gradient(low = "yellow",  high = "darkgreen"))

任何帮助都非常感谢,在此先感谢。

【问题讨论】:

    标签: r ggplot2 heatmap rescale


    【解决方案1】:

    默认情况下,我们有 ?rescale

        rescale(x, to = c(0, 1), from = range(x, na.rm = TRUE))
    

    这就是为什么您的值介于 0 和 1 之间的原因。只需将 min 和 max 指定为 ?rescale

    a.m <- ddply(a.m, .(variable), transform,  
                        rescale = rescale(value,to=c(0,0.3))))
    

    【讨论】:

    • @Amit 如果你没问题,你可以检查答案。
    • 在一个小数据集上再次制作了图表。确保使用您的建议会在图表中生成 0 到 0.3 之间的比例,但我没有看到使用您的建议生成的热图与使用默认重新缩放选项生成的热图之间的颜色有明显差异。
    • @Amit 更改比例不会更改颜色。我认为你需要 scale_fill_gradientn 来获得 n 颜色之间的平滑颜色渐变。看到这个问题stackoverflow.com/questions/14000232/…
    猜你喜欢
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2017-10-01
    • 2019-05-30
    • 2013-06-28
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多