在R中的线图中绘制中间线和多条线

时间:2016-01-10 11:18:13

标签: r plot ggplot2 line-plot

我为移动应用的用户提供了一些数据(每个不同电池电量的温度)。我想为每个用户绘制数据(全部在一行图中)以及所有用户的类似temp的{​​{1}}的中位数(在同一图表中,使用a突出显示它)粗线)。我可以使用ggplot2绘制除中位数之外的所有行。这是我的虚拟数据文件(如果需要,我可以更改数据组织/结构或分组我的数据):

percentage

目前我是这样做的:

userId, percentage, temp
11, 2, 32
11, 3, 32
11, 4, 33
11, 5, 33
11, 7, 34
11, 10, 30
12, 2, 30
12, 3, 30
12, 4, 30
12, 5, 30
12, 7, 34
12, 10, 32

结果如下:

line plot

2 个答案:

答案 0 :(得分:2)

你可以尝试

# compute means per percentage-group:
sampleDataFrame$means <- with(sampleDataFrame, ave(temp, percentage, FUN=mean)) 
# plot
ggplot(sampleDataFrame, aes(x=percentage, y=temp, colour=userId)) + 
  geom_line() + 
  geom_line(aes(y=means), size=2, color="black")

enter image description here

答案 1 :(得分:1)

您也可以使用stat_summary

,而不是计算新变量
ggplot(sampleDataFrame, aes(x=percentage, y=temp, colour=factor(userId))) + 
  geom_line() + 
  stat_summary(fun.y = "median", geom = "line", color = "black", size = 1.2)

给出:

enter image description here