Как и другой упомянутый пользователь, вам сложно помочь, не увидев ваш набор данных, pubs
. С учетом вышесказанного, если вы видите свою ось, помеченную как 2015.0 для 2015 года, это определенно означает, что pubs$Year
не отформатировано как дата. Таким образом, ggplot
обрабатывает его как обычную цифру c.
Попробуйте сначала отформатировать как дату:
pubs$Year <- as.Date(pubs$Year, format="your.format.here")
Если бы я увидел, как был построен pubs$Year
, я мог бы дать вам предложение, что использовать для format=
. По умолчанию функция as.Date
будет пытаться использовать различные форматы в соответствии с документацией и сообщать вам об ошибке, если по вашим данным ничего не найдено. as.Date
использует strptime()
для преобразования в Date
класс, поэтому вы можете взглянуть на эту документацию , чтобы понять, как написать кусок format=
. Обратите внимание, что strptime
преобразует символы в типы дат, поэтому, если ваши данные имеют числовое значение c, вы можете преобразовать их в символы , а затем - в дату. Звучит странно, но я сделал это сам, потому что это работает. :)
Есть и другие классы, кроме Date
в R для представления даты или значения даты / времени. Вы также можете использовать POSIXct
или POSIXlt
, используя любую из функций as.POSIX
, которые работают аналогично функции as.Date
. Любой из этих форматов должен нормально работать с ggplot
.
Наконец, если вы хотите указать что-либо, связанное с масштабами для представления на вашем графике, вы можете использовать scale_x_date
для изменения разрывов, ограничений, меток формата и др. c. См. Документацию здесь .