Очевидно, люди придумали, как создавать графики в стиле xkcd в Mathematica и LaTeX . Можем ли мы сделать это в R? Ggplot2-ERS? А geom_xkcd и / или theme_xkcd?
Я думаю, в базовой графике, par (xkcd = TRUE)? Как это сделать?
В качестве первого удара (и того, что более элегантно показано ниже) в ggplot2, добавление аргумента джиттера в строку создает отличный рисованный вид. Так -
ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
geom_line(position="jitter", color="red", size=2) + theme_bw()
Это хороший пример, но топоры и шрифты выглядят сложнее. Шрифты выглядят решенными (ниже), хотя. Является ли единственный способ справиться с топорами, чтобы очистить их и нарисовать вручную? Есть ли более элегантное решение? В частности, в ggplot2 можно изменить element_line в новой системе тем, чтобы она принимала аргумент, похожий на джиттер?
Ответы:
Возможно, вы захотите рассмотреть следующий пакет:
Пакет xkcd : построение графики ggplot2 в стиле XKCD.
Некоторые примеры (диаграммы рассеяния, гистограммы):
источник
xkcd
работает, но пытаетсяlibrary(xkcd)
уступить> library(xkcd) Loading required package: extrafont Registering fonts with R Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : there is no package called ‘acepack’ Error: package or namespace load failed for ‘xkcd’
и пытаетсяacepack
добыть> install.packages("ace") Warning in install.packages : package ‘ace’ is not available (for R version 3.2.1)
Думая о той же самой линии, что и некоторые другие ответы, я «распаковал» диаграмму, а также добавил гибкость расположения меток на оси x (что, как кажется, часто встречается в xkcd) и произвольную метку на диаграмма.
Обратите внимание, что у меня было несколько проблем с загрузкой шрифта Humor Sans и я вручную загрузил его в рабочий каталог.
И код ...
источник
ggplot2
добилась цели.geom_smooth
сmethod = "loess", span = 0.6, se = FALSE
иposition = position_jitter(h=0.005)
дает мне лучшие результаты на шумных данных, так как линии и плавные, и дрожащие.Основная функция рисования линий:
Основная ось:
И пример кода:
Производит:
источник
Вот попытка шрифтов, основанная на ссылках с форумов xkcd и
extrafont
пакета:Как отмечалось выше, на сайте xkcd есть обсуждение на форуме о шрифтах : я взял первый, который смог найти, могут быть другие (лучше?) Варианты (@jebyrnes публикует другой источник возможных шрифтов в комментариях выше - файл TTF). находится здесь , кто - то сообщил об ошибке 404 для этого источника, вы можете попробовать в качестве альтернативы здесь или здесь , заменяя эти адреса соответственно для
xkcdFontURL
ниже, вы , возможно , придется работать немного сложнее , чтобы извлечь Github-размещенные ссылки)(Это для быстрого одноразового использования: для регулярного использования вы должны поместить его в какой-нибудь стандартный каталог системных шрифтов.)
Самая полезная информация о шрифтах была на сайте extrafont github - это взято оттуда
Пример взят более или менее дословно с сайта github:
источник
Я разработал тематический аналитический календарь xkcd, используя RStudio. Вот пример стиля бара xkcd
Для генерации этого сюжета
Вот код, используемый
источник
Это очень, очень грубое начало и только (частично) охватывает нарисованный от руки внешний вид линий. Для автоматизации этого потребовалось бы немного работы, но добавление некоторого шума AR (1) в функцию отклика могло бы сделать его слегка нарисованным вручную
источник
Вот мое мнение по поводу
ggplot2
использования приведенного выше кода:Не уверен, как заменить оси, но можно использовать тот же подход с
jitter
. Тогда это вопрос импорта шрифта из XKCD и наложения с помощьюgeom_text
.источник