Reactormonk
Reactormonk

Reputation: 21690

R stat_smooth all points

From Plot vectors of different length with ggplot2, I've got my plot with lines.

ggplot(plotData, aes(x, y, label=label, group=label)) + geom_line() + stat_smooth()

But this smooths one line each. How do I smooth over all data points?

Upvotes: 10

Views: 4892

Answers (1)

Gavin Simpson
Gavin Simpson

Reputation: 174778

ggplot(plotData, aes(x, y, label=label, group=label)) + 
    geom_line() +
    geom_smooth(aes(group = 1))

should do it. The idea here is to provide a new group aesthetic so that the fitted smoother is based on all the data, not the group = label aesthetic.

Following the example from @Andrie's Answer the modification I propose would be:

ggplot(plotData, aes(x, y, label=label, group=label)) + 
    geom_text() + 
    geom_smooth(aes(group = 1))

which would produce:

enter image description here

Upvotes: 17

Related Questions