R 如何对马赛克中的分类变量进行颜色编码

R 如何对马赛克中的分类变量进行颜色编码,r,graph,colors,mosaic-plot,R,Graph,Colors,Mosaic Plot,我试图显示我的分类变量之间的关系。我终于把我的数据输入了一个列联表 subs_count ## [,1] [,2] [,3] [,4] ## carbohydrate 2 0 11 2 ## cellulose 18 0 60 0 ## chitin 0 4 0 4 ## hemicellulose 21 3 10 0 ## monosacchari

我试图显示我的分类变量之间的关系。我终于把我的数据输入了一个列联表

subs_count
##                [,1] [,2] [,3] [,4]
## carbohydrate      2    0   11    2
## cellulose        18    0   60    0
## chitin            0    4    0    4
## hemicellulose    21    3   10    0
## monosaccharide    3    0    0    0
## pectin            8    0    2    2
## starch            1    0    4    0
其中每一列代表一个有机体。所以我把我的阴谋

barplot(subs_count, ylim = c(0, 100), col = predicted.substrate,
  xlab = "organism", ylab = "ESTs per substrate")

但我的基底颜色并不一致。我做错了什么?

您的数据似乎是一个
矩阵
,行名接近R中的列联
,但并不完全相同。某些打印方法对表有额外的支持

更重要的是,我无法运行您的代码,因为不清楚
预测了什么。如果它是一个有7种颜色的调色板,那么它应该做你想做的事情(或者至少我认为你想做的事情)

我通过以下方式复制了您的数据:

subs_count <- structure(c(2, 18, 0, 21, 3, 8, 1, 0, 0,
  4, 3, 0, 0, 0, 11, 60, 0, 10, 0, 2, 4, 2, 0, 4, 0, 0, 2, 0),
  .Dim = c(7L, 4L), .Dimnames = list(c("carbohydrate", "cellulose",
  "chitin", "hemicellulose", "monosaccharide", "pectin", "starch"), NULL))
然后我使用了
colorspace
软件包中的定性调色板:

subs_pal <- colorspace::qualitative_hcl(7)

而马赛克显示(如标题所示)将是:

mosaicplot(t(subs_count), col = subs_pal, off = 5, las = 1, main = "")

为了可视化依赖模式(或者更确切地说,独立模式的偏离),用独立模型的残差进行着色的马赛克图可能更有用

mosaicplot(t(subs_count), shade = TRUE, off = 5, las = 1, main = "")

更精细的着色马赛克显示屏版本可在包装
vcd
(请参阅)中找到

mosaicplot(t(subs_count), col = subs_pal, off = 5, las = 1, main = "")
mosaicplot(t(subs_count), shade = TRUE, off = 5, las = 1, main = "")