2012-12-24 109 views
3

我是一个完整的新手R请原谅我,如果这已经被问了一个gazillion次。我正在尝试使用R制作heatmap,接着这example,这是tsvs使用ggplot2调整比例热图

这是一个例子。

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")) 

任何帮助是最欣赏的,在此先感谢。

回答

3

默认情况下我们有? rescale

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

这就是为什么你的值是0和1.Just之间指定的最小值和最大值来? rescale

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

谢谢你解释@agstudy,这个工作。 – Amit

+0

@如果你没事就可以检查答案。 – agstudy

+0

再次在一个小数据集上绘制图。当然,使用你的建议会在图形中产生0到0.3之间的比例,但我没有看到使用建议产生的热图与使用默认重新比例选项产生的热图之间的颜色差异。 – Amit