我正在尝试在R中创建热图,但是轴标签(使用传递给row.names
函数的数据框的heatmap
信息)正在挤压x轴,我无法弄清楚如何控制标签。
以下是一个例子:
vDates = seq.Date(from = as.Date('29-11-2012',
format = '%d-%m-%Y'),
length.out = 203, by = 'day')
dfHeatMap = rdirichlet(length(vDates), runif(15))
row.names(dfHeatMap) = as.character(vDates)
heatmap(t(dfHeatMap), Rowv = NA, Colv = NA,
col = cm.colors(256))
处理此问题的任何建议/包裹?
答案 0 :(得分:1)
我能够通过RTFM(更仔细地)解决这个问题。最初我无法让labCol
和labRow
工作。这是一个有效的例子:
library(gtools)
library(ClassDiscovery)
# generate sequence of dates
vDates = seq.Date(from = as.Date('29-11-2012',
format = '%d-%m-%Y'),
length.out = 203, by = 'day')
# generate the random samples
dfHeatMap = as.matrix(rdirichlet(length(vDates), runif(15)))
row.names(dfHeatMap) = as.character(vDates)
# column labels
vDatesNew = rep(as.Date(NA), length(vDates))
vDatesNew[seq(from = 1, to = 203, by = 10)] =
vDates[seq(from = 1, to = 203, by = 10)]
# row labels
labRow = c(NA, NA, 3, NA, NA, 6, NA, NA, 9,
NA, NA, 12, NA, NA, 15)
# draw the heatmap with aspect control
aspectHeatmap(t(dfHeatMap), Rowv = NA, Colv = NA,
col = cm.colors(256), labCol = vDatesNew, labRow = labRow,
margins = c(5, 5), hExp = 1.5, wExp = 4)
我使用ClassDiscovery
包来控制热图的纵横比。这就是它的样子: