科研绘图神器之Plotluck(如何节省时间)

介绍

通常,在统计绘图软件中,我们先确定图片类型(点,线)和所需绘图数据绘制某些类型的图表。R语言中,许多开发者已经在基础图形之上开发了许多软件包,例如网ggplot2软件包。目前许多的可视化的软件包建立在ggplot2之上。Plotluck的目标是将可视化简单化处理,用户仅指定“(数据和变量关系),然后其他需求(例如,图的类型的选择)软件会自动决定。

ggplot2

我们以众所周知的iris数据集为例。假设我们对不同物种的花瓣长度和花瓣宽度的关系感兴趣。这两个变量都是数字变量,因此散点图是一个很好的选择。数据集中只有三种不同的物种,因此我们不会使用不同的颜色来定义物种类型。ggplot2代码如下:

 
 
library(ggplot2)	
data(iris)	
ggplot(iris, aes(x=Petal.Length,	
 y=Petal.Width, color=Species)) +	
 geom_point() + geom_smooth()	
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'

640?wx_fmt=jpeg


正如我们所见,ggplot2使得创建绘图变得非常容易。但是,我们仍然需要考虑表示,使用哪种类型的绘图,以及通过它来表达变量的美学。如果我们可以专注于我们想要想象的关系怎么办?以下是plotluck中的等价物:

 
 
library(plotluck)	
plotluck(iris, Petal.Width~Petal.Length|Species)	
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'


640?wx_fmt=jpeg


正如我们所见,ggplot2绘图非常容易。但是,我们仍然需要考虑图片类型,比如说使用哪种类型的绘图,以及通过哪种函数来绘制。

plotluck

以下是plotluck中同等作图的代码:

 
 
library(plotluck)	
plotluck(iris, Petal.Width~Petal.Length|Species)	
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'


640?wx_fmt=jpeg


不可否认的是,在这个简单的例子中,代码并没有太大的减少;然而,在现实世界中,作者通常需要花费时间来更多的思考和预处理。对于包括各种类型数据的混合数据,确定其绘图类型并不简单。作者可能还希望在不知道其数据类型的情况下快速可视化两个变量 :尤其是如果数据包含大量变量或者您创建所有变量的格子图。

快速查看数据类型

 
 
library(gapminder)	
plotluck(gapminder, .~1)	
#> Factor variable country has too many levels (142), truncating to 30	
> gapminder	
# A tibble: 1,704 x 6	
country     continent  year lifeExp      pop gdpPercap	
<fct>       <fct>     <int>   <dbl>    <int>     <dbl>	
1 Afghanistan Asia       1952    28.8  8425333      779.	
2 Afghanistan Asia       1957    30.3  9240934      821.	
3 Afghanistan Asia       1962    32.0 10267083      853.	
4 Afghanistan Asia       1967    34.0 11537966      836.	
5 Afghanistan Asia       1972    36.1 13079460      740.	
6 Afghanistan Asia       1977    38.4 14880372      786.	
7 Afghanistan Asia       1982    39.9 12881816      978.	
8 Afghanistan Asia       1987    40.8 13867957      852.	
9 Afghanistan Asia       1992    41.7 16317921      649.	
10 Afghanistan Asia       1997    41.8 22227415      635.	
# ... with 1,694 more rows
640?wx_fmt=jpeg



在上面这个网格视图中,每列都用缩略图来表示。 但是我们大体知道了数据的分布:有2个分类变量和4个连续变量; pop和gdpPercap偏态分布,因此需要对其应用对数变换。

变量相关性

假设我们现在对目标lifeExp与其他变量关系感兴趣。

 
 
opts <- plotluck.options(verbose=TRUE)	
plotluck(gapminder, lifeExp~.,  opts=opts)
640?wx_fmt=jpeg


图片的排序有一定含义。我们看到lifeExp与gdpPercap,year和continent的明确关联。

 
 
plotluck(gapminder, lifeExp~continent, weights=pop, opts=opts)	
#> Ordering continent levels by lifeExp	
#> Not applying logarithmic axis scaling for lifeExp; expansion ratio is 0.801001, trans.log.thresh = 2.000000	
#> Choosing geom='violin' out of possible options: 'violin, box, scatter'
640?wx_fmt=jpeg


Plotluck为通用的绘图而设计,以支持探索性数据分析。虽然其设计目标是要求尽可能少的代码和时间然而,plotluck不适合产生在某些应用领域中出现的特殊类型的图(例如,关联,茎叶,星图,地理图等)。它最多限制在三个变量中。不支持在不同尺度上具有变量的并行图(例如多个相关信号的时间序列)。

 
 

—————————————

往期精彩:

640?wx_fmt=png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值