Aparentemente, o pessoal descobriu como fazer gráficos no estilo xkcd no Mathematica e no LaTeX . Podemos fazer isso em R? Ggplot2-ers? Um geom_xkcd e / ou theme_xkcd?
Eu acho que nos gráficos base, par (xkcd = TRUE)? Como eu faço isso?
Como uma primeira tentativa (e muito mais elegantemente mostrada abaixo) no ggplot2, adicionar o argumento de jitter a uma linha cria uma ótima aparência desenhada à mão. Assim -
ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
geom_line(position="jitter", color="red", size=2) + theme_bw()
É um bom exemplo - mas os eixos e as fontes parecem mais complicados. As fontes aparecem resolvidas (abaixo), no entanto. É a única maneira de lidar com os eixos para esvaziá-los e desenhá-los manualmente? Existe uma solução mais elegante? Em particular, no ggplot2, o element_line no novo sistema de temas pode ser modificado para obter um argumento semelhante ao jitter?
Respostas:
Você pode considerar o seguinte pacote:
Pacote xkcd : plotando gráficos ggplot2 no estilo XKCD.
Alguns exemplos (gráficos de dispersão, gráficos de barras):
fonte
xkcd
obras, mas tentandolibrary(xkcd)
rendimentos> 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’
e tentando paraacepack
rendimentos> install.packages("ace") Warning in install.packages : package ‘ace’ is not available (for R version 3.2.1)
Pensando da mesma maneira que algumas das outras respostas, eu "desagrupei o gráfico" do gráfico e também adicionei a flexibilidade dos locais dos rótulos do eixo x (o que parece ser comum no xkcd) e um rótulo arbitrário no gráfico.
Observe que tive alguns problemas com o carregamento da fonte Humor Sans e a baixei manualmente para o diretório de trabalho.
E o código ...
fonte
ggplot2
fez o truque.geom_smooth
commethod = "loess", span = 0.6, se = FALSE
eposition = position_jitter(h=0.005)
estava me dando melhores resultados em dados barulhento, como linhas são ambos suave e se agitou.Função básica de desenho de linha:
Eixo básico:
E código de exemplo:
Produz:
fonte
Aqui está uma tentativa das fontes, com base nos links dos fóruns xkcd e do
extrafont
pacote:Como observado acima, há uma discussão no fórum sobre fontes no site xkcd : peguei a primeira que encontrei, pode haver outras opções (melhores?) (@Jebyrnes publica outra fonte para possíveis fontes nos comentários acima - o arquivo TTF está aqui ; alguém relatou um erro 404 para essa fonte; você pode tentar alternadamente aqui ou aqui , substituindo os URLs apropriadamente
xkcdFontURL
abaixo; talvez seja necessário um pouco mais para recuperar os links publicados no Github)(Isso é para uso rápido e único: para uso regular, você deve colocá-lo em algum diretório de fontes padrão do sistema.)
As informações mais úteis sobre fontes estavam no site extrafont github - isso é retirado de lá
Exemplo extraído mais ou menos literalmente do site do github:
fonte
Criei um calendário de análise com tema xkcd usando o RStudio. Aqui está um exemplo de estilo xkcd de gráfico de barras
Para gerar esse gráfico
Aqui está o código usado
fonte
Este é um começo muito, muito difícil e cobre apenas (parcialmente) a aparência e as linhas desenhadas à mão. Demoraria um pouco de trabalho para automatizar isso, mas adicionar algum ruído AR (1) à função de resposta pode fazer com que pareça levemente desenhado à mão
fonte
Aqui está minha opinião sobre o
ggplot2
uso de parte do código acima:Não sei como substituir os eixos, mas poderia usar a mesma abordagem com
jitter
. Então é uma questão de importar a fonte do XKCD e colocar em camadasgeom_text
.fonte