ggradar加强版绘制雷达图

前言

  Radar(雷达图,又名蜘蛛网图),这种图其实应该属于分类折线图的一个变种,只不过将折线图的x轴变成极坐标就形成了一个雷达图。两种图包含的信息量基本无差,但视觉上的冲击却截然不同,折线图还是那么朴实无华,而雷达图就不同了,看上去本身就好像自带一种高大上的感觉,能莫名地给人一种不觉明历的错觉感(好吧,说的有些夸张了)。为什么会突然要画雷达图呢?因为前面做染色体径向分布分析时,看到文献中的雷达图,展示了两个样本中各个染色体的相对径向距离,如下图所示。

  从上面的图中,我们可以清晰的识别到每个染色体在两个样本的差异,前面说过,雷达图的信息也可以用折线图来表示,但是两种图的视觉感却是不大一样,到底有多不同呢?下面我们一起来看看:

  • 折线图:
  • 雷达图:

  看完上面两种图之后,有没有莫名被雷达图的视觉效果冲击到。这有时候可能会达到一种内容不够,视觉来凑的效果。整体来说,雷达图的颜值还是挺高的!

绘制雷达图

  这么美的图,当然要把它收归己有了。下面我们就来说说如何绘制雷达图。一开始,小编以为用ggplot2的coord_polar将折线图的X轴极化就可以实现,事实证明是在下想的太简单了。虽然使用coord_polar函数可以将图变成饼图,但是随之而来的是折线也变成曲线了。所以,坐标轴极化后,还要保持线条在两点之间是直的,这个就涉及到角度转换的问题了,可不是随随便便可以完成的。当然了,这个痛点已经有人帮我们实现了,我们可以直接使用ggradar包来轻轻松松绘制好雷达图,并且这个包最大的特点是基于ggplot2来绘图。有没有想要试一试的冲动?这么好用的包,却不能直接到达我的要求,先看一下这个包画的图长什么样:

  颜值当然没得说,只是背景的圆圈线条数不能增加,只能有三个值minmidmax。其实本质上来说这都不是什么问题了,因为画的图可以后期通过AIPS等软件调整,一样可以到达想要的效果。但是为了达到更方便快捷地接近文献中的图,小编用自己浅显的R语言基础给ggradar包做了修改,在原有的基础上增加了一个函数ggradar2,该函数既保留了原始函数功能,又可以手动增加圆圈线条的数量。前面说了那么多有的没的,下面就进入最重要的环节,我们一起来看看如何绘制雷达图:

#安装ggradar
devtools::install_github("1156054203/ggradar", dependencies = TRUE)

# 使用
library(ggradar)
library(dplyr)
library(scales)
library(tibble)

set.seed(21)
sampleA <- sample(seq(1,23),size=23)
sampleB <- sample(seq(1,23),size=23)
data <- data.frame(group=c('sampleA','sampleB'), t(data.frame(sampleA=sampleA,sampleB=sampleB)))
chroms <- paste0('chr',c(seq(1:22),'X'))
colnames(data)[-1] <- chroms
data[,1:10]
#group    chr1 chr2 chr3 chr4 chr5 chr6 chr7 chr8 chr9
#sampleA   19    6   15    4   23   17    2    3   21
#sampleB   22    7   17   12   15   13   20   19    8

ggradar2(data,all.radar=seq(1:23),axis.label.size=3.5,grid.label.size=4,
         group.point.size=1,group.line.width=0.6, legend.position='right')

结果如下:

  整个绘制过程还是挺简单的,准备好需要的输入格式,往ggradar2函数一放,然后再设置一下相应的参数即可。这里说明一下,小编改写的ggradar包用法与原始包基本保持一致,只是在原函数ggradar的基础改写成ggradar2,从而实现增加圆圈线条的目的。需要注意的是,该函数多了两个参数all.radarall.labelall.radar指定画圆圈的数值向量,all.label指定每个圆圈标签的向量(默认使用all.radar作为标签)。如果想要修改线条的类型和颜色可以使用gridline.min.linetypegridline.min.colour。如果想要最原始的三个圆圈线的图,只需忽略all.radarall.label参数就行(默认也是绘制原始的图)。

结束语

  绘制雷达图的R包还有fmsbplotlyfmsb画的图不是圆形而是正多边形,plotly画的图和ggradar类似。而选择ggradar最重要的原因是该包是唯一基于ggplot2语法的包。小编改写的包,虽然本人使用没有遇到问题,但不免里面还是会隐藏什么BUG,如果遇到了可以反馈给我一下。。。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容