美化base plot
這個問題,讓我想起來了prettyB包,它給我們一鍵美化的功能,也展示了美化base plot的可能性。base plot還有一個好處,你的代碼起碼可以保障5年10年都可以用,但ggplot2就可能不太行了,不信你拿兩年前的代碼出來跑一下:)
雖然我是ggplot2愛好者,但有些ggplot2版本的畫圖函數實在是不敢恭維,除了可以用themes來改一些細節之外,缺少太多ggplot2的特性,我認為是不能稱之為grammar of graphics的。基本上有很多實現還不如原先base plot,而且base plot有大量現成的各種畫圖函數,涵蓋面要比ggplot2多。但是由於base plot的設計比較久遠,畫出來的圖基本上看著像是20年前,不夠漂亮,缺少現代化元素。
這裡要推薦的是base plot的主題包,prettyB (https://github.com/jumpingrivers/prettyB),雖然目前只有兩個主題minimal和expand,但這是一個非常好的嘗試,可以讓大量現有的畫圖函數出圖效果更加現代化,減少illustrator修圖的麻煩。
library(prettyB)
op=par(mfrow=c(1,2))
graphics::plot.default(iris$Sepal.Length,
iris$Sepal.Width)plot(iris$Sepal.Length,iris$Sepal.Width)
載入包之後,默認的行為只會被改變,你用plot的時候,已經是使用主題的了。
效果是明顯的,然後可以設置主題:
theme_set("minimal")
graphics::plot.default(iris$Sepal.Length,iris$Sepal.Width,
main="Classic Iris Dataset",xlab="Length",ylab="Width")
plot(iris$Sepal.Length,iris$Sepal.Width,
main="Classic Iris Dataset",xlab="Length",ylab="Width")
結果再畫就是這樣:
以下是barplot的一個例子。
我認為這是非常好的開端,隨著不同主題的開發,base plot可以煥發青春,畢竟對於新手來手,只要知道plot命令就能出圖,還是比較友好的。
電梯
TAG:biobabble |