【发布时间】:2018-02-26 20:01:42
【问题描述】:
我有一个包含 600 名受访者的数据集。我为 5 年(2013 年、2014 年、2015 年、2016 年、2017 年)的 600 名受访者中的每一个都有一些指标值。此外,我为每个受访者提供了一个城市列。我想创建一个图 - 我使用折线图为 600 名受访者中的每一个绘制指标 - 每个受访者有一个折线图,这样 Y 轴有指标值,X 轴有年份。我已经按城市分隔了折线图的颜色。此外,我想添加一条单独的中值指标线,以便每个城市的受访者都有一条中值线。我能够创建一条合并的中线,但如果我尝试绘制多个中线,则会出现错误。这是我正在使用的代码 -
library(ggplot2)
library(dplyr)
library(tidyr)
library(magrittr)
sample_no <- c(1:600)
city <- c(rep("A",150), rep("B",250), rep("C", 200))
indicator_2013 <- runif(600, min=0, max=1000)
indicator_2014 <- runif(600, min=0, max=1000)
indicator_2015 <- runif(600, min=0, max=1000)
indicator_2016 <- runif(600, min=0, max=1000)
indicator_2017 <- runif(600, min=0, max=1000)
df <- data.frame(sample_no, city, indicator_2013, indicator_2014, indicator_2015, indicator_2016, indicator_2017)
df1 <- df %>%
gather(indicator_2013, indicator_2014, indicator_2015, indicator_2016, indicator_2017, key="Year", value = "Indicator")
df1 %>%
ggplot(aes(x=Year, y=Indicator, color=as.factor(city))) +
geom_line(aes(group = sample_no), alpha = .5, size = 0.7) +
labs(col = "City") +
stat_summary(aes(y = Indicator, group =1), fun.y=median, geom = "line", color = "black", size = 1)
注意:这只是虚拟数据,因此图形是对称的... 我尝试使用以下代码制作多条中线,但出现错误 - 错误:美学必须是长度 1 或与数据相同 (5):颜色、大小
stat_summary(aes(y = Indicator, group =1), fun.y=median, colour=city, geom="line", size =1)
我四处寻找文档和其他 R 博客文章,但没有找到有用的东西。
【问题讨论】: