Apparemment, les gens ont compris comment créer des graphiques de style xkcd dans Mathematica et dans LaTeX . Pouvons-nous le faire en R? Ggplot2-ers? Un geom_xkcd et / ou theme_xkcd?
Je suppose que dans les graphiques de base, par (xkcd = TRUE)? Comment fait-on ça?
En tant que premier coup de couteau (et comme beaucoup plus élégamment illustré ci-dessous) dans ggplot2, l'ajout de l'argument de gigue à une ligne donne un superbe look dessiné à la main. Donc -
ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
geom_line(position="jitter", color="red", size=2) + theme_bw()
Cela donne un bel exemple - mais les axes et les polices semblent plus délicats. Les polices semblent cependant résolues (ci-dessous). Est-ce la seule façon de gérer les axes pour les masquer et les dessiner à la main? Existe-t-il une solution plus élégante? En particulier, dans ggplot2, element_line dans le nouveau système de thèmes peut-il être modifié pour prendre un argument de type gigue?
Réponses:
Vous pouvez envisager le package suivant:
Package xkcd : traçage des graphiques ggplot2 dans un style XKCD.
Quelques exemples (diagrammes de dispersion, graphiques à barres):
la source
xkcd
œuvres, mais essayer delibrary(xkcd)
céder> 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’
et essayer deacepack
céder> install.packages("ace") Warning in install.packages : package ‘ace’ is not available (for R version 3.2.1)
En pensant dans la même ligne que certaines des autres réponses, j'ai "non-ggploté" le graphique et j'ai également ajouté la flexibilité des emplacements d'étiquette de l'axe des x (qui semble être courante dans xkcd) et une étiquette arbitraire sur le graphique.
Notez que j'ai eu quelques problèmes avec le chargement de la police Humor Sans et que je l'ai téléchargée manuellement dans le répertoire de travail.
Et le code ...
la source
ggplot2
fait l'affaire.geom_smooth
demethod = "loess", span = 0.6, se = FALSE
etposition = position_jitter(h=0.005)
me donnait de meilleurs résultats sur les données bruyantes, car les lignes sont à la fois lisses et instables.Fonction de dessin au trait de base:
Axe de base:
Et exemple de code:
Produit:
la source
Voici une tentative de polices, basée sur les liens des forums xkcd et du
extrafont
package:Comme indiqué ci-dessus, il existe un forum de discussion sur les polices sur le site xkcd : j'ai attrapé la première que j'ai pu trouver, il peut y avoir d'autres (meilleures?) Options (@jebyrnes publie une autre source pour les polices possibles dans les commentaires ci-dessus - le fichier TTF est ici ; quelqu'un a signalé une erreur 404 pour cette source, vous pouvez également essayer ici ou ici , en remplaçant ces URL de manière appropriée
xkcdFontURL
ci-dessous; vous devrez peut-être travailler un peu plus dur pour récupérer les liens publiés par Github)(Ceci est pour une utilisation rapide et ponctuelle: pour une utilisation régulière, vous devez le placer dans un répertoire de polices système standard.)
Les informations les plus utiles sur les polices se trouvaient sur le site github extrafont - elles sont prises à partir de là
Exemple repris plus ou moins textuellement du site github:
la source
J'ai conçu un calendrier analytique sur le thème xkcd en utilisant simplement RStudio. Voici un exemple de style graphique à barres xkcd
Pour générer ce tracé
Voici le code utilisé
la source
C'est un début très, très difficile et ne couvre que (partiellement) l'aspect et la sensation dessinés à la main des lignes. Il faudrait un peu de travail pour automatiser cela, mais en ajoutant un peu de bruit AR (1) à la fonction de réponse, cela pourrait sembler légèrement dessiné à la main
la source
Voici ma vision des choses en
ggplot2
utilisant une partie du code ci-dessus:Je ne sais pas comment remplacer les axes, mais je pourrais utiliser la même approche avec
jitter
. Il s'agit ensuite d'importer la police de XKCD et de la superposer avecgeom_text
.la source