Not sure if this is a programming question or not...
If I have the data below, which produces a \'spiky\' chart, and I\'d like to produce a slightly smoothed one using g
You can try a polynomial. Since the x-axis variable has 12 unique values, you can use polynomials up to the 11th degree. Furthermore, you should use a continuos scale for the x-axis to achieve a smooth curve.
Here's an example of an 8th-order polynomial:
ggplot(a, aes(x = year, y = values, group = 1))+
stat_smooth(aes(x = seq(length(unique(year)))), # continuous x-axis
se = F, method = "lm", formula = y ~ poly(x, 8)) +
scale_x_continuous(breaks = seq(length(unique(a$year))),
labels = levels(a$year)) # original labels
Here, method = "lm"
means, that a linear model is used. The second argument of the poly
function specifies the degree.