我在R中有一个矩阵,表示两个变量的联合probability mass function(pmf),例如:

> matrix(c(.13, .00004, 0, 0, 0, .04, .13, .008, 0, 0, .01, .007, .16, .02, .0004, .004, .025, .070, .14, .01, .001, .007, .028, .028, .12), nrow=5)
        [,1]  [,2]   [,3]  [,4]  [,5]
[1,] 0.13000 0.040 0.0100 0.004 0.001
[2,] 0.00004 0.130 0.0070 0.025 0.007
[3,] 0.00000 0.008 0.1600 0.070 0.028
[4,] 0.00000 0.000 0.0200 0.140 0.028
[5,] 0.00000 0.000 0.0004 0.010 0.120

我想创建此数据的2D可视化效果,将一个正方形分成5x5个较小的正方形,其中各个正方形的颜色与矩阵中的条目成比例。 (在上述情况下,沿对角线将是最暗的)。有没有一种简单的方法来生成这种类型的图像?

最佳答案

ggplot可以很轻松地处理这个问题。我知道有两种简单的方法可以做到这一点:

library(ggplot2)
dat <- matrix(c(.13, .00004, 0, 0, 0, .04, .13, .008, 0, 0, .01, .007, .16, .02, .0004, .004, .025, .070, .14, .01, .001, .007, .028, .028, .12), nrow=5)
ggfluctuation(as.table(dat), type = "colour") +
    scale_fill_gradient(low = "white", high = "blue")

#Or with geom_tile
dat.m <- melt(dat)

ggplot(dat.m, aes(X1, X2, fill = value)) +
    geom_tile(colour = "grey") + scale_fill_gradient(low = "white", high = "blue")

为了完整起见,这是一个点阵解决方案(也很简单):
library(lattice)
levelplot(dat)

关于r - 可视化R中的2变量联合概率质量函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5554165/

10-12 16:58