使用数字作为x和y轴标签创建热图

时间:2015-01-26 13:39:47

标签: r ggplot2

我正在尝试在ggplot中创建一个热图。

在热图中,x轴和y轴应该是数字,但是,每当我将行和列名称更改为数字时,图表都会将数字视为某种比例。

以下是一个例子:

library(reshape2)
library(ggplot2)

nRow <- 9
nCol <- 16

myData <- matrix(rnorm(nRow * nCol), ncol = nCol)

rownames(myData) <- 1:nRow
colnames(myData) <- 1:nCol

# Replace with numbers that actually have a relationship:
for(ii in 2:ncol(myData)){  myData[, ii] <- myData[, ii-1] + rnorm(nrow(myData))  }
for(ii in 2:nrow(myData)){  myData[ii, ] <- myData[ii-1, ] + rnorm(ncol(myData))  }

# For melt() to work seamlessly, myData has to be a matrix.
longData <- melt(myData)

# Define palette
myPalette <- colorRampPalette(rev(brewer.pal(11, "Spectral")), space="Lab")

zp1 <- ggplot(longData,
              aes(x = Var2, y = Var1, fill = value))
zp1 <- zp1 + geom_tile()
zp1 <- zp1 + scale_fill_gradientn(colours = myPalette(100))
zp1 <- zp1 + scale_x_discrete(expand = c(0, 0))
zp1 <- zp1 + scale_y_discrete(expand = c(0, 0))
zp1 <- zp1 + coord_equal()
zp1 <- zp1 + theme_bw()
print(zp1)

如果我用字母[1:nCol]和字母[1:nRow]

替换行名和列名,那么完全相同

我尝试将数字添加为:

colnames(myData)<-c("1","4","6" ......等但这没有用。

0 个答案:

没有答案