介绍
通常,在统计绘图软件中,我们先确定图片类型(点,线)和所需绘图数据绘制某些类型的图表。在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'
![](https://img.haomeiwen.com/i9218360/e8dab623795be085.png)
正如我们所见,ggplot2使得创建绘图变得非常容易。 但是,我们仍然需要考虑表示,使用哪种类型的绘图,以及通过它来表达变量的美学。 如果我们可以专注于我们想要想象的关系怎么办? 以下是plotluck中的等价物:
library(plotluck)
plotluck(iris, Petal.Width~Petal.Length|Species)
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
![](https://img.haomeiwen.com/i9218360/015e6f89214572b9.png)
正如我们所见,ggplot2绘图非常容易。 但是,我们仍然需要考虑图片类型,比如说使用哪种类型的绘图,以及通过哪种函数来绘制。
plotluck
以下是plotluck中同等作图的代码:
library(plotluck)
plotluck(iris, Petal.Width~Petal.Length|Species)
#> `geom_smooth()` using method = 'loess' and formula 'y ~ x'
![](https://img.haomeiwen.com/i9218360/d1bf9b4a0f5fb16e.png)
不可否认的是,在这个简单的例子中,代码并没有太大的减少;然而,在现实世界中,作者通常需要花费时间来更多的思考和预处理。对于包括各种类型数据的混合数据,确定其绘图类型并不简单。作者可能还希望在不知道其数据类型的情况下快速可视化两个变量 :尤其是如果数据包含大量变量或者您创建所有变量的格子图。
快速查看数据类型
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
![](https://img.haomeiwen.com/i9218360/15cdbfc98e9a43e0.png)
在上面这个网格视图中,每列都用缩略图来表示。 但是我们大体知道了数据的分布:有2个分类变量和4个连续变量; pop和gdpPercap偏态分布,因此需要对其应用对数变换。
变量相关性
假设我们现在对目标lifeExp与其他变量关系感兴趣。
opts <- plotluck.options(verbose=TRUE)
plotluck(gapminder, lifeExp~., opts=opts)
![](https://img.haomeiwen.com/i9218360/22b8091416fb7091.png)
图片的排序有一定含义。我们看到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'
![](https://img.haomeiwen.com/i9218360/bad9050e5d5233ee.png)
Plotluck为通用的绘图而设计,以支持探索性数据分析。 虽然其设计目标是要求尽可能少的代码和时间然而,plotluck不适合产生在某些应用领域中出现的特殊类型的图(例如,关联,茎叶,星图,地理图等)。 它最多限制在三个变量中。 不支持在不同尺度上具有变量的并行图(例如多个相关信号的时间序列)。
网友评论