Перемещение позиции метки в мозаичном графике () в R
Учитывая этот пример мозаики в R,
## create example data frame
set.seed(56)
df1 <- data.frame(Category1 = rep(c("Category name", "Longer category name", "Cat name"), times = c(42, 19, 6)), Category2 = sample(c("Low", "Mid", "High"), 67, replace =T, prob = c(0.25, 0.40, 0.35)))
df1
## make a contingency table
table(df1)
## make the mosaic plot
mosaicplot(table(df1), color = 1:3, las = 2, ylab = "Category2", xlab = "Category1", main = "")
Как я могу переместить метки Category1 (редактировать: имена категорий) вверх, чтобы полные имена были видны?
1 ответ
Как и @MrFlick, я также могу видеть метки. Вы изменили свои поля сюжета? Вот как это проверить:
par("mar")
[1] 5.1 4.1 4.1 2.1
Я вставил в поля по умолчанию (с (снизу, слева, сверху, справа)). Если ваш размер меньше, он может не оставить места для ярлыков. Чтобы сбросить их до значений по умолчанию (или как вы хотите), сделайте par(mar=c(5,4,4,2)+0.1)
,
В любом случае, если вы хотите переместить метки, вот несколько примеров:
mosaicplot(table(df1), color = 1:3, las = 1, main = "", xlab="", ylab="")
mtext(side = 1, "Category1", line = 0.5, col="green")
mtext(side = 1, "Category1", line = 1, col="blue")
mtext(side = 1, "Category1", line = 2, col="red")
mtext(side = 2, "Category2", line = -1, col="purple")
ОБНОВЛЕНИЕ: чтобы удалить метки осей, сохраните таблицу сопряженности как объект, а затем установите dimnames
приписывать NA
, Вы также можете, конечно, изменить или сократить ярлыки таким же образом. Например, чтобы удалить Category1
метки:
## make a contingency table
tab1 = table(df1)
dimnames(tab1)[["Category1"]] = rep(NA, length(unique(df1$Category1)))
## make the mosaic plot
mosaicplot(tab1, color = 1:3, las = 2, ylab = "Category2",
xlab = "Category1", main = "")
КОНЕЦ ОБНОВЛЕНИЯ
Вам также может понравиться mosaic
функция в vcd
пакет. Это сложнее, но дает вам больше контроля над деталями сюжета. mosaic
использования lattice
вместо базовой графики, поэтому все корректировки сюжета должны быть сделаны с lattice
или же grid
, а не базовые графические функции или параметры:
library(vcd)
mosaic(table(df1), color = 1:3, las = 2, ylab = "Category2",
xlab = "Category1", main = "",
labeling_args = list(offset_varnames = c(left = 2, top=0)),
gp = gpar(fill = 1:3))
Смотрите эту виньетку для множества примеров.