Не уверен, если это программирование вопрос или нет ...R ggplot2 ввести небольшое сглаживание для линейного графика лишь несколько точек данных
Если у меня есть следующие данные, которые производит «остроконечный» диаграммы, и Я хотел бы создать слегка сглаженный, используя ggplot2, как я могу сделать это наиболее элегантно. Обычные методы сглаживания удаляют слишком много информации. Один из способов, который я рассматриваю, состоит в том, чтобы интерполировать дополнительные две точки данных между текущим набором, а затем взять 2-процентную скользящую среднюю или что-то еще. Кажется, что много сложной работы, чтобы закодировать вручную, поэтому я отвечу на вопрос, который автоматизирует это элегантно, как последнее средство.
a=data.frame(year=paste('FY',2001:2012,sep='.'),values=rnorm(12))
library(ggplot2)
Как вы можете видеть, что это остроконечный и визуально непривлекательным
ggplot(a,aes(x=year,y=values,group=1))+geom_line()
И это снимает слишком много информации из графика
ggplot(a,aes(x=year,y=values,group=1))+stat_smooth(se=F)
Благодаря
спасибо @SvenHohenstein, который работает для единственного графика. Я изо всех сил стараюсь, чтобы он выравнивался по горизонтали для множества наборов данных и расширял ось X, поэтому мне нужно немного вернуться к чертежной доске ... –
@SvenHohenstein Очень хороший подход. В моем случае я хочу сделать то же самое, но мой многочлен не может давать отрицательные значения. Можно ли установить более низкий предел для stat_smooth? Спасибо – pacomet
@pacomet Вы не можете указать ограничение в 'stat_smooth'. Вы должны найти определенную функцию сглаживания для своих данных, которая может использоваться в 'stat_smooth'. –