對于重新創建顯示比例的“交叉表圖”的任何幫助,我將不勝感激:
(來源:PEW)
我想方法是使用具有適當形狀的 geom_point ,但我真的不能比這更進一步
library(ggplot2)
df <- data.frame (col = c("A","A","B","B"),
row = c("C", "D","C","D"),
val = c(4,10,29,31))
ggplot(df, aes(y = row, x = col)) geom_point(size = df$val, shape = 15)
感謝您的任何指示。
uj5u.com熱心網友回復:
我認為geom_rect()
可能比geom_point()
這個目的更合適。為了讓它發揮作用,首先需要決定情節的左/右、頂部/底部發生了什么。下面,我們通過找到一個類別的標志來做到這一點。
library(ggplot2)
df <- data.frame (col = c("A","A","B","B"),
row = c("C", "D","C","D"),
val = c(4,10,29,31))
df <- transform(
df,
sign_col = ifelse(col == "A", -1, 1),
sign_row = ifelse(row == "C", -1, 1)
)
然后,您可以將符號與坐標相乘以獲得您可能喜歡的圖。
ggplot(df)
geom_rect(
aes(xmin = 0, xmax = sign_col * val,
ymin = 0, ymax = sign_row * val,
fill = factor(val))
)
geom_text(
aes(label = val,
x = 0.5 * sign_col * val,
y = 0.5 * sign_row * val)
)
geom_hline(yintercept = 0)
geom_vline(xintercept = 0)
coord_equal()
由reprex 包于 2022-07-01 創建 (v2.0.0 )
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/498307.html
上一篇:在預測線周圍畫一個透明虛線框