介绍

通常,在统计绘图软件中,我们先确定图片类型(点,线)和所需绘图数据绘制某些类型的图表。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'

正如我们所见,ggplot2使得创建绘图变得非常容易。但是,我们仍然需要考虑表示,使用哪种类型的绘图,以及通过它来表达变量的美学。如果我们可以专注于我们想要想象的关系怎么办?以下是plotluck中的等价物:
library(plotluck)plotluck(iris, Petal.Width~Petal.Length|Species)#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
正如我们所见,ggplot2绘图非常容易。但是,我们仍然需要考虑图片类型,比如说使用哪种类型的绘图,以及通过哪种函数来绘制。

plotluck

以下是plotluck中同等作图的代码:
library(plotluck)plotluck(iris, Petal.Width~Petal.Length|Species)#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
不可否认的是,在这个简单的例子中,代码并没有太大的减少;然而,在现实世界中,作者通常需要花费时间来更多的思考和预处理。对于包括各种类型数据的混合数据,确定其绘图类型并不简单。作者可能还希望在不知道其数据类型的情况下快速可视化两个变量 :尤其是如果数据包含大量变量或者您创建所有变量的格子图。

快速查看数据类型

library(gapminder)plotluck(gapminder,.~1)#> Factor variable country has too many levels (142), truncating to 30>gapminder# A tibble: 1,704 x 6countrycontinent year lifeExp pop gdpPercap<fct><fct> <int> <dbl> <int> <dbl>1Afghanistan Asia 1952 28.8 8425333 779.2Afghanistan Asia 1957 30.3 9240934 821.3Afghanistan Asia 1962 32.0 10267083 853.4Afghanistan Asia 1967 34.0 11537966 836.5Afghanistan Asia 1972 36.1 13079460 740.6Afghanistan Asia 1977 38.4 14880372 786.7Afghanistan Asia 1982 39.9 12881816 978.8Afghanistan Asia 1987 40.8 13867957 852.9Afghanistan Asia 1992 41.7 16317921 649.10Afghanistan Asia 1997 41.8 22227415 635.# ... with 1,694 more rows
在上面这个网格视图中,每列都用缩略图来表示。 但是我们大体知道了数据的分布:有2个分类变量和4个连续变量; pop和gdpPercap偏态分布,因此需要对其应用对数变换。

变量相关性

假设我们现在对目标lifeExp与其他变量关系感兴趣。
opts <- plotluck.options(verbose=TRUE)plotluck(gapminder, lifeExp~., opts=opts)
图片的排序有一定含义。我们看到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'
Plotluck为通用的绘图而设计,以支持探索性数据分析。虽然其设计目标是要求尽可能少的代码和时间然而,plotluck不适合产生在某些应用领域中出现的特殊类型的图(例如,关联,茎叶,星图,地理图等)。它最多限制在三个变量中。不支持在不同尺度上具有变量的并行图(例如多个相关信号的时间序列)。
继续阅读
阅读原文