分享

美化base plot

 萌小芊 2018-02-24


这个问题,让我想起来了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命令就能出图,还是比较友好的。

电梯

给赞 点赞达人你好! 小程序

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多