在我的假設示例中,人們在攤位訂購冰淇淋,每次下訂單時,都會記錄下訂單的月份和下訂單的數量。每行代表下訂單的唯一人員。對于每種口味的冰淇淋,我很想知道不同月份的累計訂單量。例如,如果在 4 月和 5 月總共下達了 3 個 Vanilla 訂單,則圖表應顯示 4 月的 3 個資料點和 5 月的 7 個資料點。
我遇到的問題是每一行都是單獨繪制的(所以 4 月會有 3 個單獨的點,而不是只有 1 個)。
我的次要問題是我的日期在我的圖表上沒有按時間順序排列。我認為將 Month 列轉換為 Date 格式可以解決這個問題,但似乎沒有。
下面是我的代碼:
library(lubridate)
Flavor <- c("Vanilla", "Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Vanilla","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","Strawberry","chocolate","chocolate","chocolate")
Month <- c("1-Jun-21", "1-May-19", "1-May-19","1-Apr-19", "1-Apr-19","1-Apr-19","1-Apr-19", "1-Mar-19", "1-Mar-19", "1-Mar-19","1-Mar-19", "1-Apr-19", "1-Mar-19", " 1-Apr-19", " 1-Jan-21", "1-May-19", "1-May-19","1-May-19","1-May-19","1-Jun-19","2-September-19", "1-September-19","1-September-19","1-December-19","1-May-19","1-May-19","1-Jun-19")
Orders <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2)
data <- data.frame(Flavor,Month,Orders)
data$Month <- dmy(data$Month)
str(data)
data2 <- data[data$Flavor == "Vanilla",]
ggplot(data=data2, aes(x=Month, y=cumsum(Orders))) geom_point()
uj5u.com熱心網友回復:
在這些情況下,通常最好預先計算您想要的摘要并將其發送到 ggplot,而不是亂用 ggplot 的摘要函式。為了清楚起見,我還添加了一個geom_line()。
data %>%
group_by(Flavor, Month) %>%
summarize(Orders = sum(Orders)) %>%
group_by(Flavor) %>%
arrange(Month) %>%
mutate(Orders = cumsum(Orders)) %>%
ggplot(data = ., aes(x=Month, y=Orders, color = Flavor)) geom_point() geom_line()

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/436070.html
上一篇:突出顯示R中斜率最高的折線圖部分
下一篇:Rggplot2如何分離圖例元素
