2016-02-04 4 views
1

У меня есть следующая таблица, но после того, как многие попытки не смогли построить данные, чтобы метки по оси x совпадали с годом. Я нашел решения для ящиков, но не для geomline()ggplot geomline дискретные по оси x заголовки

Как я могу сделать дискретные метки в течение года?

следующие решения не работают

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") 

enter image description here

+1

Вы намеревались иметь 2014, перечисленные дважды в ярлыках? – drhagen

+2

использовать 'as.factor (year)' в 'aes()' – mtoto

+0

нет, только один раз, это была ошибка – iskandarblue

ответ

0

Воспроизводимого примера:

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() 

enter image description here

Задание года в качестве упорядоченного коэффициента гарантирует, что ось x будет упорядочена надлежащим образом, независимо от порядка, в котором появляются уровни (тогда как использование «фактора (года)» в эстетике построения может привести к проблемам).

Смежные вопросы