2014-09-25 49 views
1

鑑於讀該例子mosaicplot,移動在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 = "") 

我如何可以移動組別標籤(編輯:類別名稱)向上,這樣的全名是可見的?

+0

它們對我來說是可見的。我錯過了什麼嗎? http://i.stack.imgur.com/AJhXO.png – MrFlick 2014-09-26 02:56:52

+0

@MrFlick - 我的意思是類別名稱,(即「更長的類別名稱」,「貓名稱」等),這是不明確的。但是,現在回到它,似乎是我不改變圖形查看器的窗口大小的問題。應該先嚐試一下!在R和Rstudio中,更改窗口大小都可以顯示整個名稱。 – CCID 2014-09-26 08:46:02

回答

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

enter image description here

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

結束時更新

你也可以像vcdmosaic功能。它比較複雜,但它可以讓你更好地控制劇情的細節。 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

+0

eipi10謝謝你。看到我上面的評論。我怎樣才能從'mosaicplot()'中打印類別名稱(「更長的類別名稱」,「貓的名字」等)? – CCID 2014-09-26 08:48:59