前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现Lasagna绘制

R语言实现Lasagna绘制

作者头像
一粒沙
修改2020-04-28 19:35:49
5510
修改2020-04-28 19:35:49
举报
文章被收录于专栏:R语言交流中心R语言交流中心

对于时间序列的数据我们通常用Spaghetti Plots进行展示,但是由于大量的纵向数据的重叠性,我们引入了Lasagna Plots来展示数据的层次性。今天就为大家介绍下LasagnaPlots的实现,我们需要用到包lasagnar,接下来我们看下包的安装:

代码语言:javascript
复制

library(devtools)                                                                                                                               
install_github("swihart/lasagnar")                                                                                                                   install_github("swihart/lasagnar")

此处需要注意的是R版本必须是3.6.2以上的版本才能正常安装此包。否则会出无法安装此包。当然,因为github的开源性,我们可以直接下载后在Rstudio中导入这个包也可以直接使用。当然还需要另外的一些包来辅助:

代码语言:javascript
复制
library(fields)
library(lasagnar)  
library(ggplot2)
library(reshape2)
library(RColorBrewer)
library(colorspace)

接下来我们看下其中主要的功能:

1. Lasagna 主要实现图的绘制。

其中的参数我们就不做详细介绍了,毕竟都是基础的绘图参数,需要注意的就是要注意X的矩阵的格式,我们看下实例:

代码语言:javascript
复制
mat <- matrix(1:100, nrow=10, ncol=10,byrow=TRUE)[sample(1:10),]
rownames(mat) <- letters[1:nrow(mat)]
 
lasagna(mat)

2. gglasagna 基于ggplot2的绘图。

其参数和lasagna基本一致。我们直接看实例:

代码语言:javascript
复制

## the matrix containing data for Figure02a
H.mat <- matrix(NA, nrow=4, ncol=6)
H.mat[1, 1:6] = 100*c(2, 1, 1, 1, 1, 2)
H.mat[2, 1:6] = 100*c(2, 2, 2, 3, 2, 1)
H.mat[3, 1:6] = 100*c(2, 2, 1, 1, 1, 3)
H.mat[4, 1:6] = 100*c(3, 3, 2, 1, 2, 3)
## set rownames with ids
rownames(H.mat)<-c("P1","T1","P2","T2")
## set colnames with time / location /column index:
colnames(H.mat)<-seq(ncol(H.mat))
## name your dimensions
names(dimnames(H.mat))<-c('Subject','Time')
 
par(mai = c(.34,.39,.34,.09))
 
## base:
lasagna(H.mat)
代码语言:javascript
复制
gglasagna(H.mat, legend=T,axes=T)

以上就是基础的lasagna的绘制,此包还提供了几个排序函数:

  1. wr()对行内的值进行排序:如果显示的值是离散的,那么使用wr.disc();连续使用wr.cont ()。我们直接看实例:

    lasagna(wr.disc(H.mat))

  1. er()对整个行进行排序,保留时态(列)信息。默认情况下是根据最低值出现的百分比进行排序,然后百分比最高的主题是最后一行;最低的就是最高的。实例:

    lasagna(er(H.mat))

  1. wc()在列中进行排序,打乱了行特定于列的性质,但揭示了组级的时间模式。与wr()一样,有一个离散的和连续的wc.disc()和wc.cont()实现。实例:

    lasagna(wc.disc(H.mat))

其它的颜色设置以及更加细节的操作我们就不赘述了,希望用户自由发挥,绘制自己的美图。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档