首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >科研绘图神器之Plotluck(如何节省时间)

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

作者头像
用户1359560
发布2019-07-22 11:11:57
6530
发布2019-07-22 11:11:57
举报
文章被收录于专栏:生信小驿站生信小驿站

介绍

通常,在统计绘图软件中,我们先确定图片类型(点,线)和所需绘图数据绘制某些类型的图表。在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不适合产生在某些应用领域中出现的特殊类型的图(例如,关联,茎叶,星图,地理图等)。 它最多限制在三个变量中。 不支持在不同尺度上具有变量的并行图(例如多个相关信号的时间序列)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.07.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • ggplot2
  • plotluck
    • 快速查看数据类型
      • 变量相关性
      相关产品与服务
      图数据库 KonisGraph
      图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档