我想在ggplot2中制作热图.我的玩具数据和代码是:
set.seed(12345)
dat <-
data.frame(
Row = rep(x = LETTERS[1:5], times = 10)
, Col = rep(x = LETTERS[1:10], each = 5)
, Y = rnorm(n = 50, mean = 0, sd = 1)
)
library(ggplot2)
p <- ggplot(data = dat, aes(x = Row, y = Col)) +
geom_tile(aes(fill = Y), colour = "white") +
scale_fill_gradient(low = "white", high = "steelblue")
p
Run Code Online (Sandbox Code Playgroud)
我希望为这样的范围值设置颜色方案:
-3 <= Y < -2 ---> Dark Blue
-2 <= Y < -1 ---> Blue
-1 <= …Run Code Online (Sandbox Code Playgroud) 由于缺少更好的名称,我想在R中创建一个连续的1-d热图,即这个问题的1-d版本
玩具数据使用:
df <- data.frame(x=1:20,
freq=c(8, 7, 5, 6, 10, 4, 2, 9, 3, 10, 1, 8, 4, 7, 2, 6, 7, 6, 9, 9))
Run Code Online (Sandbox Code Playgroud)
我可以使用创建粗网格输出
ggplot(data=df, aes(x=x, y=1)) + geom_tile(aes(fill=freq))
Run Code Online (Sandbox Code Playgroud)
但与其他问题类似,我希望有一个平滑的颜色过渡.不幸的是,我不太清楚2-d的答案是否足以让它适应1-d.
我想从一组点在 R 中绘制一个热图。
我有一个像
X Y col
1 2 1
1 1 4
2 4 9
.......
Run Code Online (Sandbox Code Playgroud)
我想从中得到一个热图,X 和 Y 是点的坐标,col 可以是 0 到 40。我试图以点或使用melt() 绘制,但没有运气。
我可以用 geom_point() 绘制一些点,但我希望从一种颜色平滑过渡到另一种颜色,有些可能不是正确的做法。