Как раскрасить категориальную переменную в мозаике

Я пытаюсь показать связь между моими категориальными переменными. Я наконец получил свои данные в то, что я считаю таблицей непредвиденных расходов

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")

Но мои подложки не всегда одного цвета. Что я делаю неправильно?

1 ответ

Решение

Ваши данные кажутся matrix с именами строк, которые близки к непредвиденным обстоятельствам table в R, но не совсем то же самое. Некоторые методы построения графиков имеют дополнительную поддержку таблиц.

Что еще более важно, я не мог запустить ваш код, потому что неясно, что 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)

barplot

И отображение мозаики (как указано в заголовке) будет:

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

mosaicplot

Для визуализации закономерностей зависимости (или, скорее, отклонений от независимости) мозаичный график, заштрихованный с остатками от модели независимости, может быть еще более полезным.

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

mosaicplot-затененных

Более изысканные версии дисплеев с затененной мозаикой доступны в упаковке vcd (см. https://dx.doi.org/10.18637/jss.v017.i03).

Другие вопросы по тегам