我必须用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?
绘制这样的图形答案 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())