我有以下数据:
loan_amnt term grade sub_grade home_ownership verification_status d_status
7000 60 months C C5 RENT Not Verified Not Defaulted
6500 60 months C C3 OWN Not Verified Not Defaulted
12000 36 months B B5 OWN Verified Defaulted
9000 36 months C C1 RENT Verified Not Defaulted
1000 36 months D D1 RENT Not Verified Defaulted
我需要多元条形图,其中我希望在内部填充d_status
,并且y轴具有百分比值。在x轴上,我需要term
,grade
和verification_status
。这意味着我将需要3个堆叠的条形图。
如何使用ggplot进行绘图?请帮忙。
答案 0 :(得分:0)
您可以使用gridExtra
库。
df <- read.table(text = "loan_amnt term grade sub_grade home_ownership verification_status d_status
7000 60_months C C5 RENT Not_Verified Not_Defaulted
6500 60_months C C3 OWN Not_Verified Not_Defaulted
12000 36_months B B5 OWN Verified Defaulted
9000 36_months C C1 RENT Verified Not_Defaulted
1000 36_months D D1 RENT Not_Verified Defaulted",
header = TRUE)
library(ggplot2)
library(scales)
g1 <- ggplot(df, aes(x = term, fill = d_status)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels = percent) +
ylab("") +
theme(strip.text.x = element_blank(),
legend.position=c(0.85, 0.9))
g2 <- ggplot(df, aes(x = grade, fill = d_status)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels = percent) +
ylab("") +
theme(strip.text.x = element_blank(),
legend.position=c(0.85, 0.9))
g3 <- ggplot(df, aes(x = verification_status, fill = d_status)) +
geom_bar(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels = percent) +
ylab("") +
theme(strip.text.x = element_blank(),
legend.position=c(0.85, 0.9))
library(gridExtra)
grid.arrange(g1, g2, g3, nrow = 1)