Aparentemente, la gente ha descubierto cómo hacer gráficos de estilo xkcd en Mathematica y en LaTeX . ¿Podemos hacerlo en R? Ggplot2-ers? ¿Un geom_xkcd y / o theme_xkcd?
Supongo que en gráficos básicos, par (xkcd = TRUE)? ¿Cómo lo hago?
Como primera puñalada (y mucho más elegantemente mostrada a continuación) en ggplot2, agregar el argumento de jitter a una línea es una gran apariencia dibujada a mano. Entonces -
ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
geom_line(position="jitter", color="red", size=2) + theme_bw()
Es un buen ejemplo, pero los ejes y las fuentes parecen más complicados. Sin embargo, las fuentes aparecen resueltas (abajo). ¿Es la única forma de lidiar con los ejes para dejarlos en blanco y dibujarlos a mano? ¿Hay una solución más elegante? En particular, en ggplot2, ¿se puede modificar element_line en el nuevo sistema de temas para tomar un argumento similar a jitter?
Respuestas:
Es posible que desee considerar el siguiente paquete:
Paquete xkcd : Trazado de gráficos ggplot2 en un estilo XKCD.
Algunos ejemplos (diagramas de dispersión, gráficos de barras):
fuente
xkcd
obras, pero tratar delibrary(xkcd)
rendir> 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’
y tratar de obteneracepack
rendimientos> install.packages("ace") Warning in install.packages : package ‘ace’ is not available (for R version 3.2.1)
Pensando en la misma línea que algunas de las otras respuestas, he "desglosado" el gráfico y también he agregado la flexibilidad de las ubicaciones de las etiquetas del eje x (que parece ser común en xkcd) y una etiqueta arbitraria en el gráfico.
Tenga en cuenta que tuve algunos problemas al cargar la fuente Humor Sans y la descargué manualmente al directorio de trabajo.
Y el código ...
fuente
ggplot2
hizo el truco.geom_smooth
conmethod = "loess", span = 0.6, se = FALSE
yposition = position_jitter(h=0.005)
me estaba dando mejores resultados en datos ruidosos, ya que las líneas son suaves y fluctuantes.Función básica de dibujo lineal:
Eje básico:
Y código de muestra:
Produce:
fuente
Aquí hay un intento de las fuentes, basado en enlaces de los foros xkcd y el
extrafont
paquete:Como se señaló anteriormente, hay una discusión en el foro sobre las fuentes en el sitio xkcd : tomé la primera que pude encontrar, puede haber otras opciones (¿mejores?) (@Jebyrnes publica otra fuente de posibles fuentes en los comentarios anteriores: el archivo TTF está aquí ; alguien informó un error 404 para esa fuente, alternativamente, puede intentar aquí o aquí , sustituyendo esas URL adecuadamente por
xkcdFontURL
debajo; puede que tenga que trabajar un poco más para recuperar los enlaces publicados por Github)(Esto es para uso rápido y único: para uso regular, debe colocarlo en algún directorio de fuentes del sistema estándar).
La información más útil sobre las fuentes estaba en el sitio extrafont github ; esto se toma de allí
Ejemplo tomado más o menos textualmente del sitio github:
fuente
Diseñé un calendario de análisis temático xkcd simplemente usando RStudio. Aquí hay un ejemplo de estilo de diagrama de barras xkcd
Para generar esta trama
Aquí está el código usado
fuente
Este es un comienzo muy, muy difícil y solo cubre (parcialmente) el aspecto dibujado a mano de las líneas. Se necesitaría un poco de trabajo para automatizar esto, pero agregar algo de ruido AR (1) a la función de respuesta podría hacer que parezca un poco dibujado a mano.
fuente
Aquí está mi opinión sobre el
ggplot2
uso de algunos de los códigos de arriba:No estoy seguro de cómo reemplazar los ejes, pero podría usar el mismo enfoque con
jitter
. Entonces es cuestión de importar la fuente desde XKCD y aplicar capasgeom_text
.fuente