如何对马赛克中的分类变量进行颜色编码
How to color code a categorical variable in a mosaic
我正在尝试显示我的分类变量之间的关系。我终于把我的数据变成了我认为是偶然事件 table
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")
但是我的承印物颜色并不一致。我做错了什么?
您的数据似乎是 matrix
,其行名称接近 R 中的偶然事件 table
,但不完全相同。一些绘图方法对表格有额外的支持。
更重要的是,我无法 运行 您的代码,因为不清楚 predicted.substrate
是什么。如果它是一个有 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))
然后通过:
将它们转化为 table
subs_count <- as.table(subs_count)
names(dimnames(subs_count)) <- c("EST", "Organism")
然后我使用了 colorspace
包中的定性调色板:
subs_pal <- colorspace::qualitative_hcl(7)
你的条形图似乎是合理的:
barplot(subs_count, ylim = c(0,100), col = subs_pal,
xlab = "organism", ylab = "ESTs per substrate", legend = TRUE)
马赛克显示(如您的标题所示)将是:
mosaicplot(t(subs_count), col = subs_pal, off = 5, las = 1, main = "")
为了可视化依赖模式(或者更确切地说是偏离独立模式),用独立模型的残差着色的马赛克图可能更有用。
mosaicplot(t(subs_count), shade = TRUE, off = 5, las = 1, main = "")
包 vcd
中提供了更精致的阴影马赛克显示版本(参见 doi:10.18637/jss.v017.i03)。
我正在尝试显示我的分类变量之间的关系。我终于把我的数据变成了我认为是偶然事件 table
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")
但是我的承印物颜色并不一致。我做错了什么?
您的数据似乎是 matrix
,其行名称接近 R 中的偶然事件 table
,但不完全相同。一些绘图方法对表格有额外的支持。
更重要的是,我无法 运行 您的代码,因为不清楚 predicted.substrate
是什么。如果它是一个有 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))
然后通过:
将它们转化为table
subs_count <- as.table(subs_count)
names(dimnames(subs_count)) <- c("EST", "Organism")
然后我使用了 colorspace
包中的定性调色板:
subs_pal <- colorspace::qualitative_hcl(7)
你的条形图似乎是合理的:
barplot(subs_count, ylim = c(0,100), col = subs_pal,
xlab = "organism", ylab = "ESTs per substrate", legend = TRUE)
马赛克显示(如您的标题所示)将是:
mosaicplot(t(subs_count), col = subs_pal, off = 5, las = 1, main = "")
为了可视化依赖模式(或者更确切地说是偏离独立模式),用独立模型的残差着色的马赛克图可能更有用。
mosaicplot(t(subs_count), shade = TRUE, off = 5, las = 1, main = "")
包 vcd
中提供了更精致的阴影马赛克显示版本(参见 doi:10.18637/jss.v017.i03)。