在移动中的R mosaicplot)标签位置((Moving label position in m

2019-10-21 01:29发布

鉴于该实施例中在mosaicplot 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 = "")

我怎样才能移动组别标签(编辑:类别名称)向上,这样的全名是可见的?

Answer 1:

像@MrFlick,我还可以看到标签。 你改变剧情的利润? 以下是如何检查:

par("mar")
[1] 5.1 4.1 4.1 2.1

我在默认边距粘贴(C(下,左,上,右))。 如果你是小,它可能不留有余地的标签。 对他们来说重置为默认值(或任何你想)做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")

UPDATE:要除去轴标签,列联表保存为一个对象,然后设置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 ,而不是基地的图形,因此,所有的调整剧情需要与做latticegrid ,而不是基本的图形功能或参数:

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

见这个小插曲了很多例子。



文章来源: Moving label position in mosaicplot() in R