相关疑难解决方法(0)

带有值的热图(ggplot2)

我已经看到了各种R图形系统中包含晶格和基底的值的热图,如下所示:

在此输入图像描述

我倾向于使用ggplot2一点,并希望能够制作具有相应单元格值的热图.这是热图和尝试使用geom_text:

library(reshape2, ggplot2)
dat <- matrix(rnorm(100, 3, 1), ncol=10)
names(dat) <- paste("X", 1:10)
dat2 <- melt(dat, id.var = "X1")
p1 <- ggplot(dat2, aes(as.factor(Var1), Var2, group=Var2)) +
    geom_tile(aes(fill = value)) +
    scale_fill_gradient(low = "white", high = "red") 
p1

#attempt
labs <- c(apply(round(dat[, -2], 1), 2, as.character))
p1 +  geom_text(aes(label=labs), size=1)
Run Code Online (Sandbox Code Playgroud)

通常我可以找出要传递的x和y值,但在这种情况下我不知道,因为此信息未存储在数据集中.如何将文字放在热图上?

r ggplot2

31
推荐指数
2
解决办法
4万
查看次数

在geom_tile中订购数据

我有一个数据框,我想geom_tile()从它生成一个图,但我希望图表不是基于字母顺序排序,而是基于此数据框内的变量.

structure(list(V1 = c("a", "y", "w", "p", "v", "h", "i"), 
    V2 = c("r", "w", "q", "m", "l", "q", "g"), V3 = c( 
    "5", "2", "9", "2", "1", "3", "0")), .Names = c("V1", "V2", 
"V3"), class = "data.frame", row.names = c(NA, -8L))
Run Code Online (Sandbox Code Playgroud)

我想根据变量对图表进行排序V3,因为正常的绘图将根据字母V1和中的顺序对它们进行排序V2.

怎么做?

r ggplot2

12
推荐指数
2
解决办法
1万
查看次数

如何在ggplot2 heatmap中的特定区域添加边界框?

我在这里使用一个例子.我的问题是如何在此热图中添加特定的边界框,例如在左上方的四个图块中添加一个红线框?

require(ggplot2)
require(reshape)
require(scales)

mydf <- data.frame(industry = c('all industries','steel','cars'), 
    'all regions' = c(250,150,100), americas = c(150,90,60), 
     europe = c(150,60,40), check.names = FALSE)
mydf

mymelt <- melt(mydf, id.var = c('industry'))
mymelt

ggplot(mymelt, aes(x = industry, y = variable, fill = value)) +
    geom_tile() + geom_text(aes(fill = mymelt$value, label = mymelt$value))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r heatmap

5
推荐指数
1
解决办法
4106
查看次数

标签 统计

r ×3

ggplot2 ×2

heatmap ×1