Ответ 1
Иметь ту же проблему.
Добавление
library(scales)
решил эту проблему.
Я следую учебнику в книге 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.
Улучшено разрешение:
Я столкнулся с подобными проблемами, просматривая практический пример книги. Я размещаю здесь полный фрагмент для создания заключительного сюжета в книге (это не тот сюжет, на который ссылался первоначально в этом вопросе, но он тоже разоблачал те же проблемы).
Это исправление устраняет проблемы
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)
Иметь ту же проблему.
Добавление
library(scales)
решил эту проблему.
Вторая проблема вызвана первым. Это обсуждение форума предполагает, что вы видите несовместимость версии с первой проблемой. 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 года.
Просто используйте код из кода автора 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)
Просто два шага:
Добавить библиотеку:
Библиотека (чешуйки)
Измените имя старого параметра:
breaks="50 years"
вместо major="50 years"
Вот и все.
Попробовав другие предложения в этом потоке, мне было проще просто удалить строку scale_x_date
. Настройки по умолчанию выглядят лучше даже после внесения изменений в версию R
.
Кроме того, как вы работаете в этом примере, вы поймете, что не стоит тратить более 5-10 минут на эту проблему. (К сожалению, я усвоил этот трудный путь.)