在R中的ggplot2内操纵数据点的值

时间:2018-04-13 10:25:55

标签: r ggplot2 dplyr data-manipulation

我使用代码对某些数据应用了平滑滤镜:

ggplot(aes(x = date, y = price), data = df1) +
geom_point() +
geom_smooth()

我已经为一些数据集做了这个。我现在要做的是使平滑线标准化,显示平均价格,以便所有图表的y轴值从100开始。为此,我理想地将平滑线的所有数据点除以第一个数据的值指向并乘以100. ie(y / y 1 * 100)这样可以更轻松地比较数据集之间的平滑线和平均价格。我已经尝试使用mutate函数但在我绘制图形后它似乎在ggplot2中不起作用(但我需要首先绘制图形以便知道第一个y值)。我不确定我可以尝试的其他功能或如何处理它。任何帮助,将不胜感激!

我已经创建了一个示例数据框供您使用,并插入了样本平滑图的图片:

date <- sample(seq(as.Date('2014/01/01'), as.Date('2015/01/01'), by="day"), 100)
price <- round(runif(100,1,100), 2)
df1 <- data.frame(date, price)

Smoothing Graph

1 个答案:

答案 0 :(得分:2)

可以直接将此代码编入aes

ggplot(df1, aes(x = date, y = price/price[which.min(date)]*100)) +
  geom_point() +
  geom_smooth() + 
  ylab('price (% relative to first record)')

enter image description here