簡體   English   中英

交叉表 plot 與 R 中的數字

[英]Cross tabulation plot with numbers in R

我想在交叉表 plot 上添加每個組合的頻率數。

例如,以mtcars為例:

data("mtcars")
table(mtcars$vs, mtcars$am)

我們有$vs$am列之間的每個組合的數量。 如果我直接 plot 這個,我得到 4 個矩形,其大小根據頻率數而變化:

plot(table(mtcars$vs, mtcars$am), main = "Cross tabulation plot",
     xlab = "Engine (vs)", ylab = "Transmission (am)")

在此處輸入圖像描述

是否可以以優雅的方式在相應的矩形內打印這些頻率數字?

通過這種方式,您可以在每個方格中顯示一個數字。 基本上這個想法是計算數字的 position 以便它們適合正方形的中心。

tbl <- table(mtcars$vs, mtcars$am)
prpX <- prop.table(table(mtcars$vs))
prpY <- prop.table(table(mtcars$vs, mtcars$am), margin = 1)

plot(tbl, main = "Cross tabulation plot",
     xlab = "Engine (vs)", ylab = "Transmission (am)")
text(prpX/2 * c(1,-1) + 0:1,
     prpY/2 * c(-1,-1,1,1) + c(1,1,0,0),
     tbl)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM