畫垃圾處理圖 <- function(資料, 地區) {
資料 |>
filter(地區別 == 地區) |>
pivot_longer(cols = c(回收再利用比例, 焚化比例, 衛生掩埋比例, 其他比例),
names_to = "垃圾處理類別", values_to = "占比") |>
ggplot(aes(x = 年月, y = 占比, fill = 垃圾處理類別)) +
geom_area(position = "stack", alpha = 0.7) +
scale_fill_manual(values = c(
"回收再利用比例" = "#D4E6F1",
"其他比例" = "#85C1E9",
"衛生掩埋比例" = "#3498DB",
"焚化比例" = "#1B4F72"
)) +
labs(title = paste0(地區, "垃圾處理趨勢"),
x = "年月", y = "占比", fill = "垃圾處理類別") +
theme_minimal()
}
畫垃圾產生圖 <- function(資料, 地區) {
資料 |>
filter(地區別 == 地區) |>
pivot_longer(cols = c(一般垃圾比例, 資源垃圾比例, 廚餘比例, 事業員工生活垃圾比例),
names_to = "垃圾產生類別", values_to = "占比") |>
ggplot(aes(x = 年月, y = 占比, fill = 垃圾產生類別)) +
geom_area(position = "stack", alpha = 0.7) +
scale_fill_manual(values = c(
"事業員工生活垃圾比例" = "#D4E6F1",
"廚餘比例" = "#85C1E9",
"資源垃圾比例" = "#3498DB",
"一般垃圾比例" = "#1B4F72"
)) +
labs(title = paste0(地區, "垃圾產生趨勢"),
x = "年月", y = "占比", fill = "垃圾產生類別") +
theme_minimal()
}
for (地區 in 地區列表) {
print(畫垃圾處理圖(data_比例, 地區))
print(畫垃圾產生圖(data_比例, 地區))
}圖檔
#產生及處理細項 ##各縣市
##分區
畫處理趨勢圖 <- function(資料, 分區名稱) {
data <- 資料 |>
filter(分區 == 分區名稱) |>
pivot_longer(
cols = c(平均回收比例, 平均焚化比例, 平均衛生掩埋比例, 平均其他比例),
names_to = "垃圾處理類別",
values_to = "平均占比"
) |>
select(年月, 垃圾處理類別, 平均占比)
ggplot(data, aes(x = 年月, y = 平均占比, fill = 垃圾處理類別)) +
geom_area(position = "stack", alpha = 0.7) +
scale_fill_manual(values = c(
"平均回收比例" = "#D4E6F1",
"平均其他比例" = "#85C1E9",
"平均衛生掩埋比例" = "#3498DB",
"平均焚化比例" = "#1B4F72"
)) +
labs(title = paste0(分區名稱, "垃圾處理趨勢"),
x = "年月", y = "占比", fill = "一般廢棄物處理類別") +
theme_minimal()
}
畫產生趨勢圖 <- function(資料, 分區名稱) {
data <- 資料 |>
filter(分區 == 分區名稱) |>
pivot_longer(
cols = c(平均一般垃圾比例, 平均資源垃圾比例, 平均廚餘比例, 平均事業員工生活垃圾比例),
names_to = "垃圾產生類別",
values_to = "平均占比"
) |>
select(年月, 垃圾產生類別, 平均占比)
ggplot(data, aes(x = 年月, y = 平均占比, fill = 垃圾產生類別)) +
geom_area(position = "stack", alpha = 0.7) +
scale_fill_manual(values = c(
"平均事業員工生活垃圾比例" = "#D4E6F1",
"平均廚餘比例" = "#85C1E9",
"平均資源垃圾比例" = "#3498DB",
"平均一般垃圾比例" = "#1B4F72"
)) +
labs(title = paste0(分區名稱, "垃圾產生趨勢"),
x = "年月", y = "占比", fill = "一般廢棄物產生類別") +
theme_minimal()
}
for (區 in 分區清單) {
print(畫處理趨勢圖(data_比例_分區平均, 區))
print(畫產生趨勢圖(data_比例_分區平均, 區))
}#各縣市產生及處理差異
data_產生及處理差異 <- data |>
select(年月, 地區別, 一般廢棄物處理量, 一般廢棄物產生量) |>
mutate(差異 = 一般廢棄物處理量 - 一般廢棄物產生量)
data_產生及處理差異 <- data_產生及處理差異 |>
mutate(差異方向 = ifelse(差異 >= 0, "處理 > 產生", "處理 < 產生"))
畫差異柱狀圖 <- function(資料, 地區) {
ggplot(資料 |> filter(地區別 == 地區), aes(x = 年月, y = 差異, fill = 差異方向)) +
geom_col() +
geom_hline(yintercept = 0, linetype = "dashed", color = "gray40") +
scale_fill_manual(values = c("處理 > 產生" = "#3498DB", "處理 < 產生" = "#E74C3C")) +
labs(title = paste0(地區, "產生與處理差異(正負顯示)"),
x = "年月", y = "差異量", fill = "狀態") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
}
for (地區 in 地區列表) {
print(畫差異柱狀圖(data_產生及處理差異, 地區))
}#扣除事業員工垃圾 ##各縣市
畫扣除事業員工生活垃圾<-function(data,地區){
ggplot(data|>filter(地區別 == 地區),aes(x=年月,y=一般廢棄物產生量-事業員工生活垃圾))+
geom_bar(stat = "identity", fill = "steelblue")+
labs(title = paste0(地區, "一般廢棄物產生扣除事業員工生活垃圾"),
x = "年月", y = "一般廢棄物產生扣除事業員工生活垃圾") +
theme_minimal()
}
for (地區 in 地區列表) {
print(畫扣除事業員工生活垃圾(data, 地區))
}##全台
ggplot(data|>
group_by(年月)|>
summarise(全台垃圾產生=sum(一般廢棄物產生量),
全台事業廢棄物=sum(事業員工生活垃圾)),aes(x=年月,y=全台垃圾產生-全台事業廢棄物))+
geom_bar(stat = "identity", fill = "steelblue")+
labs(title = "全台一般廢棄物產生扣除事業員工生活垃圾",
x = "年月", y = "全台一般廢棄物產生扣除事業員工生活垃圾") +
theme_minimal()#分區人均垃圾產生量
data_分區人均垃圾產生量<-data|>
group_by(分區,年月)|>
summarise(一般廢棄物分區總產生=sum(一般廢棄物產生量),
分區總人口=sum(人口))|>
mutate(平均分區一般廢棄物產生=一般廢棄物分區總產生/分區總人口)
ggplot()+
geom_line(data_分區人均垃圾產生量|>filter(分區!="其他"), mapping = aes(x= 年月, y=平均分區一般廢棄物產生, col= 分區))+
scale_color_brewer(palette = "Blues") +
labs(y="人均產生量(公噸)",
col="分區",
x="年份")+
theme_minimal() +
theme(
plot.title = element_text(size = 14, face = "bold"),
strip.background = element_rect(fill = "#d7dfe5", color = "#d7dfe5"))