我有一個包含 3 個國家/地區的資料的 excel,以及它們從 1960 年到 2019 年的婚姻和離婚值,我需要創建一個圖表,其中 y=多年來每個國家/地區的每個變數的值,我嘗試過這樣做,但我可以似乎沒有讓它起作用,我不確定我做錯了什么。(我必須使用 ggplot,這是課堂要求)
library(ggplot2)
Anos <- factor(CASDIV$Ano)
names(CASDIV)
colors <- c("Casamentos: Croácia" = "Blue", "Casamentos: Irlanda" = "Orange",
"Casamentos: Malta" = "Yellow", "Divórcios: Croácia" = "red",
"Divórcios: Irlanda" = "Green", "Divórcios: Malta" = "Brown")
ggplot(CASDIV, aes(x= Ano))
geom_line(data=subset(CASDIV, País== "HR - Croácia"), aes(y=CASDIV$Casamentos, color = "Casamentos : Croácia"), size = 0,01)
geom_line(data=subset(CASDIV, País== "IE - Irlanda"), aes(y=CASDIV$Casamentos, color = "Casamentos : Irlanda"), size=0,01)
geom_line(data = subset(CASDIV, País=="MT - Malta"), aes(y=CASDIV$Casamentos, color = "casamentos: Malta"), size=0,01)
geom_line(data=subset(CASDIV, País== "HR - Croácia"), aes(y=CASDIV$Divórcios, color = "Divórcios : Croácia"), size=0,01)
geom_line(data=subset(CASDIV, País == "IE - Irlanda"), aes(y=CASDIV$Divórcios, color = "Divórcios : Irlanda"), size=0,01)
geom_line(data=subset(CASDIV, País=="MT - Malta"), aes(y=CASDIV$Divórcios, color = "Divórcios : Malta"), size=0,01)
labs(x="Anos", y= "Valor", Colour = "Legenda")
scale_color_manual(values= colors)
雷:
2017,HR - Croácia,20310,6265
2018,HR - Croácia,19921,6125
2019,HR - Croácia,19761,5936
2017,IE - Irlanda,22021,0
2018,IE - Irlanda,21053,0
2019,IE - Irlanda,20313,0
2016,MT - Malta,3034,371
2017,MT - Malta,2934,312
2018,MT - Malta,2831,349
2019,MT - Malta,2674,354
uj5u.com熱心網友回復:
您的代碼有幾個問題。首先,正如我在評論中已經提到的,您aes(y = CASDIV$..在代碼中使用了不推薦的代碼,并且在您的情況下會導致錯誤。第二:您使用逗號作為小數點分隔符,size=0,01這就是神秘的Error: stat must be either a string or a Stat object, not a numeric vector" notification. 始終.用作小數點。最后,雖然您對顏色采取了正確的方法,但必須確保您在內部使用的標簽aes()與顏色向量中的標簽相同。
注意: 的大小0.01使線條幾乎不可見,所以我切換到0.1.
使用一些虛假的隨機資料來模擬您的真實資料:
library(ggplot2)
set.seed(123)
CASDIV <- data.frame(
Ano = seq(1960, 2020, 10),
País = rep(c("HR - Croácia", "IE - Irlanda", "MT - Malta"), each = 7),
Casamentos = runif(21),
Divórcios = runif(21)
)
Anos <- factor(CASDIV$Ano)
colors <- c("Casamentos: Croácia" = "Blue", "Casamentos: Irlanda" = "Orange",
"Casamentos: Malta" = "Yellow", "Divórcios: Croácia" = "red",
"Divórcios: Irlanda" = "Green", "Divórcios: Malta" = "Brown")
ggplot(CASDIV, aes(x= Ano))
geom_line(data=subset(CASDIV, País== "HR - Croácia"), aes(y=Casamentos, color = "Casamentos: Croácia"), size = 0.1)
geom_line(data=subset(CASDIV, País== "IE - Irlanda"), aes(y=Casamentos, color = "Casamentos: Irlanda"), size=0.1)
geom_line(data = subset(CASDIV, País=="MT - Malta"), aes(y=Casamentos, color = "Casamentos: Malta"), size=0.1)
geom_line(data=subset(CASDIV, País== "HR - Croácia"), aes(y=Divórcios, color = "Divórcios: Croácia"), size=0.1)
geom_line(data=subset(CASDIV, País == "IE - Irlanda"), aes(y=Divórcios, color = "Divórcios: Irlanda"), size=0.1)
geom_line(data=subset(CASDIV, País=="MT - Malta"), aes(y=Divórcios, color = "Divórcios: Malta"), size=0.1)
labs(x="Anos", y= "Valor", Colour = "Legenda")
scale_color_manual(values= colors)

雖然您的代碼有效,但它可能不是最有效的。使用一些資料整理可以大大簡化繪圖代碼:
library(tidyr)
library(dplyr)
CASDIV_long <- CASDIV %>%
pivot_longer(-c(Ano, País)) %>%
mutate(color = paste(name, substring(País, 5), sep = ":"))
ggplot(CASDIV_long, aes(x= Ano))
geom_line(aes(y = value, color = color), size = .1)
labs(x="Anos", y= "Valor", Colour = "Legenda")
scale_color_manual(values= colors)

由reprex 包(v2.0.1)于 2021 年 12 月 23 日創建
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/391172.html
上一篇:如何將R中每天的日期日期轉換為數字格式的每月日期月份
下一篇:如何為R代碼輸入新條件
