使用自定义标签R绘制矩阵

时间:2013-12-18 17:07:37

标签: r labels colorbar

我必须用R制作一个情节,不知道我该怎么做。 想象一下:

sample_names = c("a","b","d","e","f","g","h","i","l","m")
M = cbind(seq(0,1,length.out=10), c(1,1,1,1,2,2,2,3,3,3))

M是2列矩阵,其中第一列是连续测量, 第二列是与测量相关的标签(例如1表示“低”,2表示“中”,3表示“高”)。

我想要创建的基本上是一个垂直颜色条,左侧和右侧都有标签。颜色应代表连续测量的值。 左边的标签是样品名称,右边的​​标签是相应的 数据的“低”,“中”,“高”标签。

可能我希望颜色范围从绿色(0)到红色(1),深色约为0.5。

如何使用R?

绘制这样的图形

1 个答案:

答案 0 :(得分:1)

以下是使用ggplot2的解决方案:

levels <- c('low','med','high')
df <- data.frame(
    sample = c("a","b","d","e","f","g","h","i","l","m"),
    value = seq(0,1,length.out=10),
    level = factor(levels[c(1,1,1,1,2,2,2,3,3,3)], level=rev(levels))
)    

# require(ggplot2)
# require(grid)
ggplot(data=df, aes(x=TRUE, y=sample, fill=value)) + geom_tile() +
scale_fill_gradientn(colours=c('green','black','red')) + 
facet_grid(level~., scales='free', space='free') +
scale_y_discrete(expand=c(0,0)) +
theme(panel.margin=unit(0.1,'mm'), axis.title=element_blank(), 
      axis.text.x=element_blank(), axis.ticks.x=element_blank(), 
      legend.title=element_blank())

enter image description here