Reputation: 7526
I have the following table but after many tries have been unable to plot the data so that the x-axis tick marks line up with the year
. I have found solutions to boxplots, but not for geom_line()
How can I make discrete labels for year?
the following solutions did not work
g + scale_x_discrete(limits=c("2013","2014","2015"))
g + scale_x_discrete(labels=c("2013","2014","2015"))
distance_of_moves distance moved year 1 2.914961 2013 2 2.437516 2014 3 2.542500 2015
ggplot(data = distance_of_moves, aes(x = year, y = `distance moved`, group = 1)) + geom_line(color = "red", linetype = "dashed", size = 1.5) + geom_point(color = "red", size = 4, shape = 21, fill = "white") + ylab("Average distance of movement") + xlab("year")
Upvotes: 14
Views: 30443
Reputation: 996
Reproducible example:
data <- data.frame(dist=c(2.914, 2.437, 2.542), year=c(2013, 2014, 2015))
# this ensures that stuff will be ordered appropriately
data$year <- ordered(data$year, levels=c(2013, 2014, 2015))
ggplot(data, aes(x=factor(year), y=dist, group=1)) +
geom_line() +
geom_point()
Specifying the year as an ordered factor will ensure that the x axis is ordered appropriately, regardless of the order in which the levels appear (whereas just using "factor(year)" in the plotting aesthetic could lead to issues).
Upvotes: 18