Rupanya, rakyat telah menemukan cara membuat grafik gaya xkcd di Mathematica dan di LaTeX . Bisakah kita melakukannya di R? Ggplot2-ers? A geom_xkcd dan / atau theme_xkcd?
Saya kira dalam grafis dasar, par (xkcd = BENAR)? Bagaimana saya melakukannya?
Sebagai tikaman pertama (dan jauh lebih elegan ditampilkan di bawah) di ggplot2, menambahkan argumen jitter ke garis membuat tampilan tangan yang bagus. Jadi -
ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) +
geom_line(position="jitter", color="red", size=2) + theme_bw()
Ini menjadi contoh yang bagus - tetapi sumbu dan font tampak lebih rumit. Font muncul terpecahkan (di bawah). Apakah satu-satunya cara untuk menangani kapak untuk mengosongkannya dan menariknya dengan tangan? Apakah ada solusi yang lebih elegan? Secara khusus, di ggplot2, dapat element_line dalam sistem tema baru dimodifikasi untuk mengambil argumen seperti jitter?
Jawaban:
Anda mungkin ingin mempertimbangkan paket berikut:
Paket xkcd : Merencanakan grafik ggplot2 dalam gaya XKCD.
Beberapa contoh (Scatterplots, Bar Charts):
sumber
xkcd
bekerja, tetapi mencoba untuklibrary(xkcd)
menghasilkan> 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’
dan mencoba untukacepack
menghasilkan> install.packages("ace") Warning in install.packages : package ‘ace’ is not available (for R version 3.2.1)
Berpikir di sepanjang baris yang sama dengan beberapa jawaban lain, saya telah "un-ggplotted" bagan dan juga menambahkan fleksibilitas lokasi label sumbu x (yang tampaknya umum di xkcd) dan label sewenang-wenang pada grafik.
Perhatikan bahwa saya memiliki beberapa masalah dengan memuat font Humor Sans dan mengunduhnya secara manual ke direktori yang berfungsi.
Dan kodenya ...
sumber
ggplot2
melakukan trik.geom_smooth
denganmethod = "loess", span = 0.6, se = FALSE
danposition = position_jitter(h=0.005)
memberi saya hasil yang lebih baik pada data yang berisik, karena garis-garisnya halus dan gugup.Fungsi menggambar garis dasar:
Sumbu dasar:
Dan kode sampel:
Menghasilkan:
sumber
Berikut adalah upaya font, berdasarkan tautan dari forum xkcd dan
extrafont
paket:Seperti disebutkan di atas ada diskusi forum tentang font di situs xkcd : Saya mengambil yang pertama yang bisa saya temukan, mungkin ada opsi lain (lebih baik?) (@Jebyrnes memposting sumber lain untuk kemungkinan font dalam komentar di atas - file TTF ada di sini ; seseorang melaporkan kesalahan 404 untuk sumber itu, Anda dapat mencoba alternatifnya di sini atau di sini , mengganti URL-URL itu dengan tepat di
xkcdFontURL
bawah; Anda mungkin harus bekerja sedikit lebih keras untuk mengambil tautan yang diposting Github)(Ini untuk quickie, sekali pakai: untuk penggunaan reguler Anda harus meletakkannya di beberapa direktori font sistem standar.)
Informasi yang paling berguna tentang font ada di situs github extrafont - ini diambil dari sana
Contoh yang diambil kurang lebih kata demi kata dari situs github:
sumber
Saya merancang kalender analitik bertema xkcd hanya menggunakan RStudio. Berikut adalah contoh gaya plot bar xkcd
Untuk menghasilkan plot ini
Ini kode yang digunakan
sumber
Ini adalah awal yang sangat, sangat kasar dan hanya mencakup (sebagian) tampilan dan nuansa garis yang digambar tangan. Butuh sedikit kerja untuk mengotomatisasi ini tetapi menambahkan beberapa AR (1) noise ke fungsi respons bisa membuatnya tampak sedikit digambar tangan
sumber
Inilah pendapat saya tentang
ggplot2
beberapa kode dari atas:Tidak yakin bagaimana cara mengganti kapak, tetapi bisa menggunakan pendekatan yang sama dengannya
jitter
. Maka itu masalah mengimpor font dari XKCD dan layering dengangeom_text
.sumber