【问题标题】:Moving label position in mosaicplot() in R在R中的mosaicplot()中移动标签位置
【发布时间】:2014-11-20 20:32:07
【问题描述】:

鉴于 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 标签(编辑:类别名称)以显示完整名称?

【问题讨论】:

  • 它们对我来说是可见的。我错过了什么吗? i.stack.imgur.com/AJhXO.png
  • @MrFlick - 我的意思是类别名称(即“更长的类别名称”、“猫名”等),这并不清楚。但是,现在回到它,这似乎是我没有更改图形查看器的窗口大小的问题。应该先尝试一下!在 R 和 Rstudio 中,更改窗口大小都会使整个名称可见。

标签: r axis-labels mosaic


【解决方案1】:

像@MrFlick 一样,我也可以看到标签。你有没有改变你的情节边缘?检查方法如下:

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

我已经粘贴了默认边距 (c(bottom, left, top, right))。如果您的较小,则可能不会为标签留出空间。要将它们重置为默认值(或任何您想要的),请执行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 = "")

结束更新

您可能还喜欢vcd 包中的mosaic 函数。它更复杂,但它可以让您更好地控制情节的细节。 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))

请参阅this vignette 了解大量示例。

【讨论】:

  • eipi10 对此表示感谢。请参阅我上面的评论。如何禁止在mosaicplot() 中打印类别名称(“更长的类别名称”、“猫名称”等)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 2013-05-20
  • 2012-05-07
相关资源
最近更新 更多