r - 绘制常规二维图,但添加第三维作为热图

标签 r plot ggplot2

到处都找不到我要问的问题,可能是关键词错误。本质上,我在矩阵中有 3 个维度:

> head(info)
        [,1]   [,2]  [,3]
[1,] 8.59645 251944 22.89
[2,] 6.95160 141559 21.35
[3,] 7.43870 131532 22.99
[4,] 8.64467 126688 22.72
[5,] 8.77482 123120 22.17
[6,] 7.22364 122268 24.46

我正在绘制 info[,3] 与 info[,2] 的对比

plot(info[,3], info[,2], type="p", pch=20)

Plotting info[,3] vs info[,2]

我想用基于信息 [,1] 的热图为这些点着色。

我可以做这样的事情:

plot(info[which(info[,1] <= 2),3], info[which(info[,1] <= 2),2], type="p", pch=20, col="black")
lines(info[which(info[,1] >= 2),3], info[which(info[,1] >= 2),2], type="p", pch=20, col="red")

plotting based on info[,1]

但我相信热图会更好看。

有什么想法吗?谢谢, 阿德里安

解决方案: 谢谢大家的精彩建议!这是有效的:

qplot(info[,3], info[,2], colour=info[,1]) + scale_colour_gradient(limits=c(0, 10), low="green", high="red")

Solution working!

最佳答案

使用 ggplot2 您可以通过第三个变量着色

## Some sample data
set.seed(0)
x <- rnorm(1000, rep(c(20, 60), each=500), 8)
y <- c(rexp(500, 1/5e4)*1/(abs(x[1:500]-mean(x[1:500]))+runif(1)),
       rexp(500, 1/5e3)*1/(abs(x[501:1000]-mean(x[501:1000]))+runif(1)))
z <- c(sort(runif(1000)))
info <- matrix(c(z,y,x), ncol=3)

## Using ggplot
ggplot(as.data.frame(info), aes(V3, V2, col=V1)) +
  geom_point(alpha=0.5) +
  scale_color_gradient(low="red", high="yellow")

enter image description here

如果你想制作热图,你可以使用 akima 包在你的点之间进行插值,然后做,

library(akima)
dens <- interp(x, y, z,
               xo=seq(min(x), max(x), length=100),
               yo=seq(min(y), max(y), length=100),
               duplicate="median")
filled.contour(dens, xlab="x", ylab="y", main="Colored by z",
               color.palette = heat.colors)

enter image description here

关于r - 绘制常规二维图,但添加第三维作为热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31896051/

相关文章:

r - 使用 bs() 函数进行样条时如何解释 lm() 系数估计

matlab - 如何在 MATLAB 中绘制带有标准偏差值的误差条形图?

r - 如何在 car::scatter3d 图中显示坐标网格

r - 使用形状时缺少 geom_point 的绘图符号

r - 如何将简单的文本表达式转换为 R 中的数学表达式

r - 如何在 Shiny 的不同选项卡面板上使用相同的输出绑定(bind)

R:什么是NA_character_?

python - 如何使用 matplotlib 绘制类似 gnuplot 的 'with impulses' 的样式?

r - ggplot2 - 在两个图例项之间添加额外的空间

python - 在 Python 中使用 Rpy2 对具有翻转坐标的 ggplot2 条形图进行排序