我有這個資料框,我正在嘗試創建一個堆疊條,其中有一條穿過中間的線。
my_df <- tibble(
Week = c(ymd("2022-06-06"),ymd("2022-06-06"),ymd("2022-06-06"),ymd("2022-06-06") 7,ymd("2022-06-06") 7, ymd("2022-06-06") 7),
Scenario = c("Conservative","Likely","Aggressive","Conservative","Likely","Aggressive"),
Hours = c(100,50,35,150,65,25),
Capacity = c(110,110,110,110,110,110)
)
ggplot(my_df, aes(fill=factor(Scenario, levels = c("Conservative","Likely","Aggressive")), y=Hours, x= Week, label = Hours))
geom_bar(position="stack", stat="identity")
geom_line(data = my_df, aes(x= Week, y = Capacity))
theme(
legend.title= element_blank()
)
從技術上講,一切都是“正確的”,但我想將這條線延伸到圖表的邊緣,因為它看起來會更好。
以下是我嘗試過的變體,但沒有任何方法可以擴展容量線,這是我想要擴展的唯一內容:
ggplot(my_df, aes(fill=factor(Scenario, levels = c("Conservative","Likely","Aggressive")), y=Hours, x= Week, label = Hours))
geom_bar(position="stack", stat="identity")
geom_line(data = my_df, aes(x= Week, y = Capacity))
theme(
legend.title= element_blank()
)
scale_x_date(extendrange(my_df$Week), expand = expansion(mult = c(0, .1)))
我嘗試了 coord_cartesian。
ggplot(my_df, aes(fill=factor(Scenario, levels = c("Conservative","Likely","Aggressive")), y=Hours, x= Week, label = Hours))
geom_bar(position="stack", stat="identity")
geom_line(data = my_df, aes(x= Week, y = Capacity))
theme(
legend.title= element_blank()
)
coord_cartesian(xlim = c(ymd("2022-06-01"),ymd("2022-06-21")))
理想情況下,我想使用類似 scale_x_date 選項的東西,因為我需要每周運行此報告并且不想手動指定日期限制。但無論哪種方式,這些選項都沒有延伸這條線。
uj5u.com熱心網友回復:
您可以使用geom_hline()
而不是geom_line()
.
ggplot(my_df, aes(fill=factor(Scenario, levels = c("Conservative","Likely","Aggressive")), y = Hours, x = Week, label = Hours))
geom_bar(position = "stack", stat="identity")
geom_hline(mapping = aes(yintercept = Capacity))
theme(legend.title = element_blank())
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491049.html