1

この 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 ラベル (編集: カテゴリ名) を上に移動するにはどうすればよいですか?

4

1 に答える 1

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

更新を終了

パッケージのmosaic機能も気に入るかもしれません。vcdより複雑ですが、プロットの詳細をより細かく制御できます。ベース グラフィックスではなく を使用するため、プロットに対するすべての調整は、ベース グラフィックス関数またはパラメータではなく または で行う必要がmosaicあります。latticelatticegrid

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

多くの例については、このビネットを参照してください。

于 2014-09-26T04:05:52.183 に答える