2015-03-15 5 views
0

У меня есть дата-схема, называемая Finalcombined, которая включает в себя квартал (2004 Q1 до 2013 Q4) и Labourproductivity.Изменение значений оси x в ggplot

quarter LabourProductivity 
========================== 
2004 Q1 96.6 
2004 Q2 96.9 
2004 Q3 96.9 
2004 Q4 97.1 
2005 Q1 97.6 

labourproductivitygraph <- ggplot(data=Finalcombined, aes(x=quarter, y=LabourProductivity))+geom_line(colour="black", size=0.5) + 
    labs(x="Time[Quarter]", y=("Labour Productivity")) + 
    theme(panel.grid.major = element_line(colour = "white", size=0.50), 
     panel.grid.minor = element_line(colour = "white", size=0.16)) + 
    theme(axis.text=element_text(size=16), axis.title=element_text(size=16,face="bold")) + 
    geom_point(colour="black", size=2, shape=16) + 
    geom_smooth(method=lm, se=TRUE, col="blue", size=0.70, alpha=0.40, aes(group=1)) 
labourproductivitygraph 

После выполнения этого кода я получаю следующее сообщение об ошибке:

geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic? 

Любая помощь очень ценится!

+0

Пожалуйста, покажите данные, которые используете, потому что указанная выше строка «квартал ... 97.6» не совсем ясна. – RHA

+0

Извините, что я новичок в R и этой платформе и не совсем уверен, как отформатировать мои данные, чтобы они отображались правильно. Моя переменная четверть существует в четвертом квартале 2004 года по Q1, 2004 году Q2, 2004 Q3, 2004 Q4, 2005 Q5 и т. Д. До 2013 Q4 (сверху вниз), а моя переменная LabourProductivity существует 96,6, 96,9, 96,9, 97,1, 97,6 и т. Д. (сверху вниз). Надеюсь, это прояснит больше. –

ответ

0

Проблема заключается в том, что ваша переменная X не находится в формате, который ggplot распознает как непрерывный. Поскольку он видит «Q1 2004», например, в качестве строки, переменная X интерпретируется как фактор. Это объясняет ошибку, которую вы получаете - она ​​выглядит как ggplot, как будто вы пытаетесь сделать статистику по группе групп, которые имеют только одно значение, что обычно не то, что люди намереваются делать.

Чтобы исправить это, вам нужно преобразовать переменную X в нечто, что ggplot распознает как непрерывное. Это может быть либо дата, либо серия чисел. Предполагая, что у вас есть данные за каждый квартал, простейшая вещь, вероятно, состоит в том, чтобы использовать последовательность-заполнитель, которая идет от 1 до длины фрейма данных. Вы можете использовать эту последовательность как свою X-переменную и просто использовать четвертную переменную для маркировки тиков вдоль оси X. Вот пример кода:

Finalcombined$sequence <- c(1:length(Finalcombined$quarter)) 
labourproductivitygraph <- ggplot(data=Finalcombined, aes(x=sequence, y=LabourProductivity))+geom_line(colour="black", size=0.5) + labs(x="Time[Quarter]", y=("Labour Productivity")) + theme(panel.grid.major = element_line(colour = "white", size=0.50), panel.grid.minor = element_line(colour = "white", size=0.16)) + theme(axis.text=element_text(size=16), axis.title=element_text(size=16,face="bold")) + geom_point(colour="black", size=2, shape=16) + geom_smooth(method=lm, se=TRUE, col="blue", size=0.70, alpha=0.40) + scale_x_continuous(labels=quarter) 
labourproductivitygraph 

Решения для решения этой проблемы?

+0

Не работает и получил следующую ошибку: Ошибка в структуре (список (call = match.call(), aesthetics = эстетика,: объект 'квартал' не найден > labourproductivitygraph Не знаю, как автоматически выбирать масштаб для объекта типа функции. По умолчанию для непрерывного Ошибка в data.frame (x = function (nvec): аргументы подразумевают различное количество строк: 0, 40 –

+0

О, oops, я забыл указать столбец кадра данных для – seaotternerd

+0

К сожалению, все еще не работает! Появилось следующее сообщение об ошибке: Ошибка в лабораториях (x = «Время [Квартал]», y = («Производительность труда»)) + тема (panel.grid.major = element_line (color = "white",: нечисловой аргумент для двоичного кода rator –

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