我试图用折线图比较奥巴马第一年的支持率和特朗普第一年的支持率。
这里的问题是我使用了奥巴马(2009 年)和特朗普(2017 年)两个不同的年份。似乎不知道如何解决这个问题...
rating_comparison %>%
ggplot(aes(endDate, rating, group = 1)) +
geom_line(data = filter(rating_comparison,
endDate > "2017-01-28",
type == "Overall.A")) +
geom_line(data = filter(rating_comparison,
president == "Obama" &
endDate > "2009-01-25" &
endDate < "2010-01-24",
type == "Overall.A"))
最佳答案
我将从您的代码中假设数据如下所示:
president startDate endDate rating type
Obama 2017-01-17 2017-01-19 59 Overall.A
Trump 2017-01-25 2017-01-27 42 Overall.A
我还假设日期列的类型为Date
。如果没有,请使用以下内容转换它们:
rating_comparison$endDate <- as.Date(rating_comparison$endDate, "%Y-%m-%d")
一种方法是由总统将每个日期转换为“自第一次约会以来的天数”。然后绘制评分与天数的关系图。当然,这假设“首次投票日期”在某种程度上具有可比性 - 我认为它们等于每个总统任期的第一次投票日期。
例如,要按总统着色,限制为前 365 天:
library(dplyr)
library(ggplot2)
rating_comparison %>%
filter(type == "Overall.A") %>%
group_by(president) %>%
mutate(Day = as.numeric(endDate - min(endDate))) %>%
ungroup() %>%
filter(Day <= 365) %>%
ggplot(aes(Day, rating)) +
geom_line(aes(color = president))
我从网上抓取了一些盖洛普数据,与您的数据相似但不完全相同,以获得以下结果:
关于r - 使用 ggplot2 在同一图中绘制不同年份的两条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47802809/