移动R中mosaicplot()中的标签位置

移动R中mosaicplot()中的标签位置,r,axis-labels,mosaic,R,Axis Labels,Mosaic,给出了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

给出了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 = "")
创建示例数据框 种子(56)
df1像@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")

更新:要删除轴标签,请将列联表另存为对象,然后将
dimnames
属性设置为
NA
。当然,您也可以通过这种方式更改或缩写标签。例如,要删除
类别1
标签:

## 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 = "")
结束更新

您可能还喜欢
vcd
软件包中的
mosaic
功能。它更复杂,但它让你对情节的细节有更多的控制<代码>马赛克使用<代码>晶格而不是基本图形,因此所有对绘图的调整都需要使用<代码>晶格或<代码>栅格,而不是基本图形功能或参数:

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

请参阅以获取大量示例。

它们对我来说似乎是可见的。我错过什么了吗@Flick先生-我指的是类别名称(如“较长类别名称”、“猫名”等),不清楚。然而,现在回到这里,我不改变图形查看器的窗口大小似乎是个问题。我应该先试试!在R和Rstudio中,更改窗口大小可以使整个名称可见。eipi10感谢您的帮助。见我上面的评论。如何禁止从
mosaicplot()
中打印类别名称(“较长类别名称”、“猫名”等)?