[英]How to create an alluvial plot in ggplot2 with ggalluvial package?
我正在嘗試使用ggalluvial
包在ggplot2
中創建一個沖積地塊。 這是我用來創建情節的兩個有用的網站: site 1和site 2 。
我的目標是使用站點 1 上的相同代碼,但將其應用於我自己的 df,如下所示。 但是,每次我嘗試這樣做時,都會收到以下錯誤:
data.frame 中的錯誤(first_row,curve_data):參數暗示不同的行數:1、12
這是我的df:
t1 <- c("college", "college", "college", "university", "university")
t2 <- c("law", "law", "business", "business", "business")
t3 <- c("public", "private", "private", "private", "public")
t4 <- c(2,4,6,8,10)
df <- data.frame(cbind(t1,t2,t3,t4))
names(df) <- c("Undergrad", "Grad_School", "Sector", "Freq")
這是從站點 1 復制的原始代碼:
library(ggalluvial)
vaccinations
ggplot(data = vaccinations,
aes(axis1 = survey,
axis2 = response,
axis3 = survey,
y = freq)) +
geom_alluvium(aes(fill = response)) +
geom_stratum() +
geom_text(stat = "stratum",
aes(label = after_stat(stratum))) +
scale_x_discrete(limits = c("Survey", "Response"),
expand = c(0.15, 0.05)) +
theme_void()
這是我的代碼,我的 df 被替換了。
ggplot(data = df,
aes(axis1 = Undergrad,
axis2 = Grad_School,
y = Freq)) +
geom_alluvium(aes(fill = Sector)) +
geom_stratum() +
geom_text(stat = "stratum",
aes(label = after_stat(stratum))) +
scale_x_discrete(limits = c("Undergrad", "Grad_School"),
expand = c(0.15, 0.05)) +
theme_void()
當您cbind()
您的向量時,您會創建一個matrix
(與data.frame
不同)不能包含不同的數據類型。 因此, Freq
被轉換為character
。 如果您只是直接創建沒有cbind()
的data.frame
,它可以正常工作。
library(tidyverse)
library(ggalluvial)
t1 <- c("college", "college", "college", "university", "university")
t2 <- c("law", "law", "business", "business", "business")
t3 <- c("public", "private", "private", "private", "public")
t4 <- c(2,4,6,8,10)
df <- data.frame(t1,t2,t3,t4)
names(df) <- c("Undergrad", "Grad_School", "Sector", "Freq")
ggplot(data = df,
aes(axis1 = Undergrad,
axis2 = Grad_School,
y = Freq)) +
geom_alluvium(aes(fill = Sector)) +
geom_stratum() +
geom_text(stat = "stratum",
aes(label = after_stat(stratum))) +
scale_x_discrete(limits = c("Undergrad", "Grad_School"),
expand = c(0.15, 0.05)) +
theme_void()
由reprex 包(v2.0.1)於 2022-07-18 創建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.