介绍通常,在统计绘图软件中,我们先确定图片类型(点,线)和所需绘图数据绘制某些类型的图表。在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' image.png 正如我们所见,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 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 在上面这个网格视图中,每列都用缩略图来表示。 但是我们大体知道了数据的分布:有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不适合产生在某些应用领域中出现的特殊类型的图(例如,关联,茎叶,星图,地理图等)。 它最多限制在三个变量中。 不支持在不同尺度上具有变量的并行图(例如多个相关信号的时间序列)。 |
|