Подтвердить что ты не робот

"Ошибка в непрерывном_скале" и "ошибка в наследовании" ggplot2 & R 2.14.2

Я следую учебнику в книге Machine Learning for Hackers Дрю Конвей и Джон Уайт и Я застрял с проблемой построения гистограммы. Пример кода запускается здесь:

> quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
+   geom_histogram() + 
+   scale_x_date(major = "50 years")

производит

Error in continuous_scale(aesthetics, "date", identity, breaks = breaks,  : unused argument(s) (major = "50 years")

и

> ggsave(plot = quick.hist,
+        filename = "C:\test.png",
+        height = 6,
+        width = 8)

производит

Error in inherits(plot, "ggplot") : object 'quick.hist' not found

Я использую R версию 2.14.2. и библиотеку ggplot2. Заранее благодарим за любую помощь.


решаемые

Быстрое решение, которое сработало для меня, заключалось в том, чтобы исключить часть "+ scale_x_date (major =" 50 лет ") каждой строки, на которую ссылается метка. Окончательный код, создавший гистограмму, был следующим:

> quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
+   geom_histogram()

Я хотел бы добавить метки в диаграммы в какой-то момент, но пока это решение работает с новой версией ggplot2.


Улучшено разрешение:
Я столкнулся с подобными проблемами, просматривая практический пример книги. Я размещаю здесь полный фрагмент для создания заключительного сюжета в книге (это не тот сюжет, на который ссылался первоначально в этом вопросе, но он тоже разоблачал те же проблемы).
Это исправление устраняет проблемы

  • старый синтаксис на scale_x_date (спасибо Jonas Heidelberg)
  • необходимо явно ссылаться на библиотеку scales (спасибо B0WSER)
  • устаревший синтаксис для legend= (заменен на guide=)
  • устаревший синтаксис для opts() (заменен на labs() и другие)

Изменения в фрагменте книги выделены жирным шрифтом ниже:

library(ggplot2)
  библиотека (весы)
state.plot <-
  ggplot(all.sightings, aes(x=YearMonth, y=Sightings)) +
  geom_line(aes(color="darkblue")) +
  facet_wrap(~State, nrow=10, ncol=5) +
  theme_bw() +
  scale_color_manual(values=c("darkblue"="darkblue"), guide = "none" ) +
  scale_x_date (breaks = date_breaks (width = "5 years" ),
      label = date_format ( "% Y" )) +
  xlab("Time") + ylab("Nb of Sightings") +
  лаборатории (название = "Nb of UFO sightings by Month-Year and US State (1990-2000)")

print(state.plot)

4b9b3361

Ответ 1

Иметь ту же проблему.

Добавление

library(scales)

решил эту проблему.

Ответ 2

Вторая проблема вызвана первым. Это обсуждение форума предполагает, что вы видите несовместимость версии с первой проблемой. PDF, связанный с ним рассказывает о вашей проблеме на странице 31/32; кажется

 scale_x_date(breaks = date_breaks(width = "50 years"), labels = date_format("%Y"))

- новый синтаксис, который вы должны использовать вместо scale_x_date(major = "50 years"). Прочтите PDF для более подробной информации... и удачи в учебнике! Если вы продолжите его, вы можете захотеть установить точную версию программного обеспечения, написанное для...

Для справки R при вводе date_breaks вы должны указать ширину, затем ваш таймфрейм и спецификацию ( "сек", "мин", "час", "день", "неделя", "месяц", "год" ), чтобы он функционировал должным образом. Я добавил необходимый синтаксис к предыдущему фрагменту кода. Это было проверено и проверено во время работы с учебником по обучению машинам для хакеров 14 октября 2012 года.

Ответ 3

Просто используйте код из кода автора Github Repositories, и он работает без особых усилий. Для вашей справки я копирую и вставляю код автора здесь.

quick.hist <- ggplot(ufo.us, aes(x = DateOccurred)) +
  geom_histogram() + 
  scale_x_date(breaks = "50 years")

ggsave(plot = quick.hist,
       filename = file.path("images", "quick_hist.png"),
       height = 6,
       width = 8)

Ответ 4

Просто два шага:

  • Добавить библиотеку:

    Библиотека (чешуйки)

  • Измените имя старого параметра:

    breaks="50 years" вместо major="50 years"

Вот и все.

Ответ 5

Попробовав другие предложения в этом потоке, мне было проще просто удалить строку scale_x_date. Настройки по умолчанию выглядят лучше даже после внесения изменений в версию R.

Кроме того, как вы работаете в этом примере, вы поймете, что не стоит тратить более 5-10 минут на эту проблему. (К сожалению, я усвоил этот трудный путь.)