R ggplot2中的瀑布图似乎呈现不正确
我正在尝试重新创建瀑布图,如中所示 我正在从链接复制代码R ggplot2中的瀑布图似乎呈现不正确,r,ggplot2,R,Ggplot2,我正在尝试重新创建瀑布图,如中所示 我正在从链接复制代码 balance <- data.frame(event = c("Starting\nCash", "Sales", "Refunds", "Payouts", "Court\nLosses", "Court\nWins", "Contracts", "End\nCash"), change = c(2000, 340
balance <- data.frame(event = c("Starting\nCash", "Sales", "Refunds",
"Payouts", "Court\nLosses", "Court\nWins", "Contracts", "End\nCash"),
change = c(2000, 3400, -1100, -100, -6600, 3800, 1400, -2800))
balance$balance <- cumsum(c(0, balance$change[-nrow(balance)]))
balance$time <- 1:nrow(balance)
balance$flow <- factor(sign(balance$change))
ggplot(balance) +
geom_hline(yintercept = 0, colour = "white", size = 2) +
geom_rect(aes(fill= 'red'),xmin = time - 0.45, xmax = time + 0.45, ymin = balance, ymax = balance)
geom_text(aes(x = time, y = pmin(balance, balance + change) - 50, label = dollar(change)),
hjust = 0.5, vjust = 1, size = 3)
scale_x_continuous( breaks = balance$time, labels = balance$event) +
scale_y_continuous("Balance") +
scale_fill_manual(values = c("-1" = "red", "1" = "black"))
余额
首先,您的xmin、xmax等应该在aes()中。我看到了很多小错误,比如美学不在aes()中geom_rect()
中,在geom_rect()
和geom_text()
之后缺少加号,以及ymax
与ymin
相同。此外,当您希望将填充
映射到因子(流)
时,可以指定固定的填充
颜色。
ggplot(balance %>%
mutate(flow = factor(flow, labels = c("Negative", "Positive")))) +
geom_hline(yintercept = 0, colour = "white", size = 2) +
geom_rect(aes(fill= flow, xmin = time - 0.45, xmax = time+0.45, ymin = change, ymax = balance),
color = "black") +
geom_text(aes(x = time, y = pmin(balance, balance + change) - 50, label = change),
hjust = 0.5, vjust = 1, size = 3) +
scale_x_continuous(breaks = balance$time, labels = balance$event) +
scale_y_continuous("Balance") +
scale_fill_manual(values = c("Negative" = "red", "Positive" = "green"))