Tableau教我们画合适的图

最近发现一个宝藏app,Tableau,都叫它数据分析的神器,编程小白做数据分析的福音,大学甚至有相关课程。这篇文章并不想吹捧它,也不想拿它和其它(比如R语言)做比较,各有优缺点。这些方法有各自的特点和面向人群,软件的使用和语言编程就好像数据分析这门武功的外功,初学者最应该学会的其实是数据整理和可视化这两项内功。所以我称Tableau是宝藏app,它很多教学资料,在叫如何使用软件的时候其实也在教数据分析这些核心的内容。今天我就通过它的帮助文档学习两个重要的议题:

  • 了解数据的属性来选择合适的图来可视化

  • 了解数据的类型来选择最佳的叙事方式

本文涉及内容为议题一,具体实施方案对照R语言进行。原文请见选择适用于您的数据的正确图表类型

随时间变化的对象

这里时间一般是x变量,可以是离散型的,也可以是连续型的。观察的对象可以是价格,体重,瘤子大小等数值型变量,当然因子型的等级变量应该也可以。对应使用的图标一般是折线图。这种图表可以回答这样几种问题:

  1. 变量在过去一段时间有何变化?

  2. 变量在何时(处)发生变化?

  3. 变量变化的速度有多快?(斜率)

折线图.png

还有两种更高级的对时间变化的图,观察的不再是个体的变化,而是群体内部的变化。一个是桑基图sankey,一个是大鱼图fish。这两个图如果以时间为x轴,则可以反映群体内个体的分组的流动性,克隆进化等。当然这两种类型的图不局限于这种使用方式。

桑基图sankey.jpg
fish.png

描述变量之间的关联

最常用的是散点图,然后再拟合一条趋势线。请注意,相关并不等于因果关系!这类图表一般回答以下几个问题:1. 两个变量是否相关?2. 相关性(程度)如何?3.正相关还是负相关?4. 不同变量之间相关程度的比较。

散点图.png

变量之间做比较——量级

量级显示两个或更多离散项的相对大小或值。比如,基因在不同组之间的表达水平。Tableau推荐的是条形图气泡图,和折线图

Rplot02.jpeg
library(ggplot2)
library(gcookbook)
library(patchwork)
p1 <- ggplot(mtcars,aes(x=cyl))+geom_bar()
p2 <- ggplot(mtcars,aes(wt,mpg)) + geom_point(aes(size=disp,color=hp)) + scale_fill_manual(values = colors)
p3 = ggplot(tg, aes(x = dose, y = length, colour = supp)) + geom_line()
p4 = ggplot(uspopage, aes(x=Year, y=Thousands, fill=AgeGroup)) + geom_area() + scale_fill_brewer()

((p1+p2)/(p3+p4))+plot_annotation(tag_levels = 'I')

实际上,科研数据中更常用到能显示中位数和标准差的箱线图,以及更加美观的小提琴图(violin plot)。最近学了分组一种分组变量小提琴图,像船帆一样,很美。此外,ELISA的结果也常见直接用堆积散点图(geom_jitter),或者把散点叠加到箱线图上。在绘制条形图的时候,如果把数值映射到颜色的深浅上,会更加美观。事实上,x和y轴贡献了数据的两个维度,那么想要增加描述的维度,就可以从大小和颜色来增加。

boxplot.jpeg
box1 <- ggplot(ToothGrowth, aes(x=dose, y=len,group=dose)) + 
  geom_boxplot()
box2 <- ggplot(ToothGrowth, aes(x=dose, y=len,group=dose))+geom_boxplot(notch=TRUE)
box3=box1+geom_dotplot(binaxis='y', stackdir='center', dotsize=0.5)
box4=box1+geom_jitter(shape=16, position=position_jitter(0.3))
((box1+box2)/(box3+box4))+plot_annotation(tag_levels = 'I')
分组箱线图-帆船图.jpg

偏差

偏差图表显示某个值与某个基准(例如平均值或中值)相差多远。如果想要了解哪些项具有异常高或异常低的利润率,您将使用偏差图表。实际上,这是条形图的双轴变形。其实除了实际数值的正负,还可以将二分组的变量分别转成“正”和“负”两个方向。此外,还可以尝试画成极坐标。

偏差.png

分布

Tableau的解释是当您尝试查找某个群体内事件的频率时,您将查看分布。如果要按年龄显示某项调查的受访者数量,或者要按天显示来电频率,则分布图表可能是最佳选择。所以重点应该是探索数据中哪个变量作为x轴,按照什么因素来排序。

Tableau推荐的图表包括直方图人口金字塔图帕累托图盒形图

直方图

直方图.png

人口金字塔图

人口金字塔图.png

又是一个被名字忽悠的图,其实就是我在“偏差”里面举例的那个样子。初听名字还以为是“膳食金字塔”那个样子呢。

帕累托图

帕累托图是一种包含条形图和折线图的图表,其中各个值均以条形降序形式表示,上升的累计总计由线条来表示。

名词听起来很高大上,实际上就是条形图和折线图的叠加呈现。

帕累托图.png

盒形图

其实这里的盒形图就是我们说的箱线图,翻译不一样而已。吐个槽:好像Tableau的翻译比较“台湾腔”。最近发现唯有计算机类的文章不能看繁体字的,用词和简体字差好多,很容易绕晕小白

排名

这也是个略“水”的类别。其实就是对数据排序/选取子集来呈现,举的例子还是直方图+排序+颜色映射。

部分与整体关系

“部分与整体关系”图表显示单个部分占整体的比例,推荐的图表有饼图区域图堆叠条形图树状图

饼图的变种很多,空心环状的(width<1),堆叠的(geom_col(position="dodge")),都很好看,通过修改一些细节的参数就可以做出来。此外在其基础上还可以延伸出旭日图,在原有的一级分类的基础上,对各类内部进行二级分类,多层嵌套。看起来也挺酷炫的。

旭日图.jpeg

这里“堆叠条形图”也可以有两种形式,一是在柱形图的基础上,利用颜色按照内部各组分的比例进行分割,而是做成面积堆叠的折线图,其实在前面“量级”里已经画出来了。

空间(地理图)

这是很特殊的一类空间图表,这里的“空间”不是3D的意义,而是“地理模式”,位置信息。比如热点此时此刻的焦点,各省新冠确诊人数等。根据数据映射的方式,空间地图可以折腾成填充地图、点分布图、符号地图和密度地图。其实就是地图坐标对应数值的呈现方式不同而已。

空间.png

看上去我们不会经常接触,事实上将底层模版换成人体,动物或者拟南芥的解剖图,就能应用到科研作图中了。以下的body map看起来眼熟不?来自鼎鼎大名的GEPIA。(如果你还不知道GEPIA,可以看看我写的version1和test version2的教程。version2最近正式上线了,应该也有很多针对新版的最新教程,可以去搜索。)图中显示了ERBB2基因在人体各器官中的表达水平分布。这样的图,tableau可能没法提供五花八门个性化的地图组件吧?就需要用别的方法了。

bogy map.png

流程

tableau里面的解释:

流程图可以是表示随时间推移的运动的地图,例如桑基图。流程地图包括随时间变化的路径以及起源图表与目标图表之间的路径。

流程.png

桑基图啊……,上面也举过例了。桑基图是以时间为x轴的,二维的线性的。而如同示例里,将坐标映射到地图上,则可以显示路径图。要是做成动态的,更拉风吧!想起来以前看过的滴滴出行大数据展示。

以上。议题二请移步《Tableau教我们讲故事(做PPT)》。不过似乎有点烂尾。

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

推荐阅读更多精彩内容