我已经导入了一个.csv文件,并在折线图上绘制了数据点。但是我正在尝试比较男性和女性的预期寿命,但是我不知道如何绘制男性的线条和女性的线条。
以下是我的部分数据示例(ALE代表平均预期寿命)。
Year Sex ALE
1900 Female 48.3
1900 Male 46.6
1901 Female 50.6
1901 Male 48
1902 Female 53.4
1902 Male 50.2
1903 Female 52
1903 Male 49.5
1904 Female 49.1
1904 Male 46.6
1905 Female 50.2
1905 Male 47.6
这是我到目前为止的代码。最终,我将把工作放到.rmd文件中。
library(ggplot2) # call up ggplot2
library(RColorBrewer) # call up rcolorbrewer palette
options(scipen = 999) # remove scientific notation
sex <- read.csv("~/Big Data IBP/Life expectancy_sex.csv") # data focusing on life expectancy comparing sex. #male v. female
# run test to see how year of death has changed over the years
ggplot(data = sex, aes(x = Year, y = ALE)) +
geom_line(linetype = "solid", col = "Blue", size = 0.5, arrow = arrow()) +
labs(
title = "Average Life Expectancy Based on Sex",
subtitle = "1900-2014", x = "Year", y = "Age at Death"
)
问题是我想在男性上画一条线,在女性上画一条线,以便在一张图表上比较这两条线。但是我得到的实际结果是图中的一条线。
答案 0 :(得分:0)
您需要将group
,color
和linetype
映射到aes
library(ggplot2) # call up ggplot2
options(scipen = 999) # remove scientific notation
df <- read.table(text = "Year Sex ALE
1900 Female 48.3
1900 Male 46.6
1901 Female 50.6
1901 Male 48
1902 Female 53.4
1902 Male 50.2
1903 Female 52
1903 Male 49.5
1904 Female 49.1
1904 Male 46.6
1905 Female 50.2
1905 Male 47.6",
header = TRUE, stringsAsFactors = FALSE)
# run test to see how year of death has changed over the years
ggplot(data = df, aes(x = Year, y = ALE,
group = Sex, color = Sex, linetype = Sex)) +
geom_line(size = 0.5, arrow = arrow()) +
labs(
title = "Average Life Expectancy Based on Sex",
subtitle = "1900-2014", x = "Year", y = "Age at Death"
) +
scale_color_brewer(palette = "Dark2") +
theme_classic(base_size = 16)
由reprex package(v0.2.1)于2019-04-15创建