R의 모자이크 플롯 도움말
Sep 22 2020
내 현재 플롯 :
구체적 으로는 하단에 x 축이있는 설명 변수, 오른쪽에 응답 변수, 왼쪽에 상대 빈도 및 y 축이 있습니다 . 아래에 R 코드를 첨부하겠습니다.
mosaictable <- matrix (c (3, 9, 22, 21), byrow = T, ncol = 2)
rownames (mosaictable) = c ("White", "Blue ")
colnames (mosaictable) = c ("Captured", "Not Captured")
mosaicplot ((mosaictable), sub = "Pigeon Color", ylab = "Relative frequency",
col = c ("firebrick", "goldenrod1"), font = 2, main = "Mosaic Plot of Pigeon Color and Their Capture Rate"
)
axis (1)
axis (4)
답변
AchimZeileis Oct 28 2020 at 11:57
y 축에 "종속"변수가 있고 해당 주석을 추가하려는이 특별한 모자이크 디스플레이를 "스파인 플롯"이라고도합니다. R은 이것을 spineplot()함수 에서 구현 합니다. 또한 및 둘 다 범주 plot(y ~ x)형일 spineplot()때 내부적으로 호출합니다 .yx
귀하의 경우 spineplot()에는 멋진 형식의 "table"개체를 제공하는 경우 원하는 거의 모든 작업을 자동으로 수행 합니다.
tab <- as.table(matrix(c(3, 22, 9, 21), ncol = 2))
dimnames(tab) <- list(
"Pigeon Color" = c("White", "Blue"),
"Relative Frequency" = c("Captured", "Not Captured")
)
tab
## Relative Frequency
## Pigeon Color Captured Not Captured
## White 3 9
## Blue 22 21
그리고 다음을 얻습니다.
spineplot(tab)
개인적으로 나는 그것을 남겨두고 싶습니다. 그러나 축 레이블을 왼쪽에서 오른쪽으로 또는 그 반대로 전환하는 것이 정말 중요한 경우 먼저 억제 axes = FALSE한 다음 나중에 수동으로 추가하면됩니다. 그 좌표는 각각 첫 번째 변수의 주변 분포와 두 번째 변수의 조건부 분포에서 구해야합니다.
x <- prop.table(margin.table(tab, 1))
y <- prop.table(tab, 1)[2, ]
spineplot(tab, col = c("firebrick", "goldenrod1"), axes = FALSE)
axis(1, at = c(0, x[1]) + x/2, labels = rownames(tab), tick = FALSE)
axis(2)
axis(4, at = c(0, y[1]) + y/2, labels = colnames(tab), tick = FALSE)