| 微軟以75億美元收購全球最大的單身交友網(wǎng)站GitHub,應景分享一張圖片,其實這圖大家并不陌生,在《聽說你還不會畫熱圖》一文中,大家早已見過:
 
 這圖實在太好玩,被套在各種場景上,今天就要教大家怎么用R,純代碼生成這樣的圖,簡直是吐槽神器。這類圖可以歸入meme,畫meme,當然少不了我寫的meme包,這包收錄在CRAN中,點擊下面鏈接了解一下:
 
 然而meme包主要針對的是最常見的meme形式,也就是上下加caption這種,對于現(xiàn)在我們要實現(xiàn)的這種對話形式的,可以說不是meme包單獨所支持的,當然要支持也很容易,但我覺得沒必要,因為可以用下面我要介紹的方式,這種方式可以說本身也是通用的meme生成方式,反正你可以任意位置加文字嘛,而且是用你熟悉的ggplot2語法,真的有這么神奇。有圖有真相: 
 library(magick)library(ggplot2)
 library(shadowtext)
 library(ggplotify)
 
 x = image_read('meme-bg1.jpg')
 p = as.ggplot(x)
 p + geom_shadowtext(x=.25, y=.1, size=10, label='GITLAB', family='Impact') +
 geom_shadowtext(x=.62, y=.5, size=6, label='EVERY GITHUB\nREPO RIGHT NOW', family='Impact') +
 geom_shadowtext(x=.89, y=.25, size=7, label='MICROSOFT', family='Impact')
 
 這段代碼相當簡單,你用magick讀圖,然后用ggplotify包把圖轉化成ggplot對象,然后我們就可以用ggplot2各種加圖層了,就是這么簡單!一般畫meme用的是Impact字體,這里我也是用這個字體,當然專業(yè)畫meme的話,可不是隨便加個字就算了,需要文字的背景有陰影效果,這個呢,有shadowtext包可實現(xiàn),詳情可見《帶你裝逼帶你飛,畫圖的文本打出陰影立體效果 》。 這里之所以能夠這么爽,隨隨便便就畫出專業(yè)級別的meme,就在于ggplotify和shadowtext這兩個包,而這兩個包的作者,就是Y叔本人啦(此處應該有掌聲)。這兩個包只是隨手一組合,就可以當meme專業(yè)工具而已,當然它不是專門為meme制作而寫的,所以一般畫meme的話,還是我的meme包好用,因為有各種針對畫meme的細節(jié)上的考量,比如有meme_save可以按照圖片的長寬比輸出文件,內置支持導入外部字體等,那么隨意在各種位置上加字體的功能,我為什么不需要在meme包中加入呢?因為meme包生成的meme對象,你也可以用ggplotify轉成ggplot對象,然后參照上面示例的代碼,用shadowtext包,自己隨意加圖層,可以說這個功能本身也是有的,只不過不單獨存在于meme中而已,所以我不用去實現(xiàn)它,銜接meme、ggplotify、shadowtext三個包,就完全可以勝任。  這兩周又日更了一波,效果如同我在街上抓拍的這個車牌一樣,根本不漲粉,下周又改回一周更兩三篇的節(jié)奏吧。漲粉是原創(chuàng)者的避難所!
 這里還有一個bonus哦,假設你有實驗的圖片,發(fā)表文章要拼圖,你也能夠用cowplot拼哦,上面的例子就是了,你用magick讀圖,用ggplotify轉成ggplot對象,這不就可以拼了么!你還能做注釋呢(meme臺詞就是注釋)。所以這篇文章,也可以從這個方向解讀,好玩的東西和搞科研發(fā)論文并不沖突!(然而我不明說,大家還是看不出來,我很多好文章就這樣被無視了!多點點文后的傳送門,溫故而知新,可能會有意外收獲呢)
 |