1

我正在尝试使用 ggplot 制作轮廓/图像图,但到目前为止还没有成功。

考虑 R 中的以下代码,它创建一个z具有二元法线 PDF 的矩阵:

require(mvtnorm)
x1 = seq(-3, 3, length.out=200)
x2 = seq(-3, 3, length.out=200)
z = matrix(0, length(x1), length(x2))
for (i in 1:length(x1)) {
    a = x1
    b = x2[i]
    z[,i] = dmvnorm(cbind(a,b))
}
image(x1,x2,z)

2D 法线 pdf 图像图

是否可以z使用 ggplot 绘制矩阵?

谢谢!

4

1 回答 1

3
# reshape the data
require(reshape2)
dat <- melt(z)

# use geom_raster to mimic image

gg <- ggplot(dat, aes(x=Var2, y=Var1, fill=value))
gg <- gg + labs(x="", y="")
gg <- gg + geom_raster()
gg <- gg + coord_equal()
gg <- gg + scale_fill_gradient(low="red", high="yellow")
gg <- gg + scale_x_continuous(expand = c(0, 0))
gg <- gg + scale_y_continuous(expand = c(0, 0))
gg <- gg + theme_bw()
gg

在此处输入图像描述

如果需要,您可以很容易地更改轴标签。

于 2014-09-29T19:04:13.797 回答