主页 > 常见问题 >

手把手教你如何制作专利申请量二维流向的桑基图?

 

 
 
对外专利申请量是我号最喜欢玩耍的数据之一,在之前的文章中,我们曾用迁徙地图玩耍:数据趣展示 | 烟火璀璨的“走出去”专利
 
 
也曾用气泡图玩耍:数据趣展示 | 中国专利走出去
 
 
然而上面的流向图只能展示一个维度的流向,试想如果我们需要跨两个维度的流向,例如首先想看到中国的专利申请去了哪些国家,其次想看到这些专利申请分布在哪些领域。此时上面两个图就无能为力了,今天为大家带来另一种能够实现这种跨二维流向的图表:桑基图
 
 
 
图表介绍
 
桑基图是一种流图,用来实现一组数据跨多个维度向另一组数据的流向,即源头数据—(按维度1)—中间数据—(按维度2)—目的数据,源头数据的总和与目的数据的总和相等,数据流的宽度与流量成比例。桑基图经常被用来表示金融预算、能源分类、材料成分等数据:
 
 
 
1869年,查尔斯米纳德(Charles Minard)绘制的1812年拿破仑征俄图
 
 
 
知名可视化库D3的主要作者Mike Bostock绘制的“2050年英国能源产生和消耗流向图”
 
 
桑基图可利用多种图表工具生成,包括Echarts和Google Charts等
 
 
 
然而这些图仍然需要一些代码编写能力,今天带来的是一个相对傻瓜的画法,利用在线网站:http://sankeymatic.com/build/(感谢阿科挖掘这个网站)
 
作图步骤
 
Step1:桑基图制图网站基本界面

 
打开sankeymatic网站,显示如下界面,左边是代码输入和参数设置区,右边是图表的实时展示区。
 
 
桑基图中表示源头数据向中间数据流动的代码相对比较简单,即:源头数据+空格+[流动数据量]+空格+中间数据,例如:
 
“Wages [2000] Budget”表示Wages到Budget的流动数据为2000
 
 
Step2:原始专利数据
 
为了绘制桑基图,小编臆想了这样的跨维度数据分析需求:
 
第一个维度:首先表示中国向美欧日韩的申请量,对应数据如下(来自WIPO)并处理成该网站所需代码
 
 
 
第二个维度:其次表现中国向美欧日韩的申请量细分到11个领域的情况,对应数据如下(小编杜撰),可同样处理成所需代码
 
 
 
需要注意的是,第二个节点向第三个节点分出的数据之和应当等于第二个节点的数据,例如,中国向美国的申请量为18040件,这些申请量分成11个领域后,其申请量之和也应当等于18040件。
 
Step3:制图及参数设置
 
3.1 制图
 
上述数据转换成的最终代码如下:
 
中国 [18040] 美国
 
中国 [4657] 欧洲
 
中国 [2531] 日本
 
中国 [1572] 韩国
 
美国 [2450] 领域1
 
美国 [1345] 领域2
 
美国 [1356] 领域3
 
美国 [989] 领域4
 
美国 [1232] 领域5
 
美国 [1492] 领域6
 
美国 [680] 领域7
 
美国 [1983] 领域8
 
美国 [2426] 领域9
 
美国 [1884] 领域10
 
美国 [2203] 领域11
 
欧洲 [431] 领域1
 
欧洲 [200] 领域2
 
欧洲 [1000] 领域3
 
欧洲 [790] 领域4
 
欧洲 [230] 领域5
 
欧洲 [109] 领域6
 
欧洲 [456] 领域7
 
欧洲 [456] 领域8
 
欧洲 [560] 领域9
 
欧洲 [234] 领域10
 
欧洲 [191] 领域11
 
日本 [134] 领域1
 
日本 [452] 领域2
 
日本 [294] 领域3
 
日本 [570] 领域4
 
日本 [238] 领域5
 
日本 [105] 领域6
 
日本 [98] 领域7
 
日本 [269] 领域8
 
日本 [202] 领域9
 
日本 [125] 领域10
 
日本 [44] 领域11
 
韩国 [110] 领域1
 
韩国 [41] 领域2
 
韩国 [175] 领域3
 
韩国 [197] 领域4
 
韩国 [233] 领域5
 
韩国 [56] 领域6
 
韩国 [144] 领域7
 
韩国 [65] 领域8
 
韩国 [155] 领域9
 
韩国 [159] 领域10
 
韩国 [237] 领域11
 
将上述代码拷贝在图表代码区里,点击“Preview”,即可生成如下图表:

专利申请量二维流向的桑基图表展示
 
 
3.2 参数设置
 
sankeymatic网站提供了相对丰富的参数设置,其中:
 
 
 
在尺寸、间隔和形状(Size Spacing & Shape)参数设置区:
 
Diagram Width:图表区域宽度,Height:图表区域高度
 
Space Between Nodes:节点之间距离,例如表示美国与表示日本的短线段之间的距离、表示领域1与表示领域6的短线段之间的距离等。
 
Node width:表示节点的短线段的宽度,Cuiviness:从一个节点向另一个节点的数据流线段的弯曲度
 
在颜色(Colors)参数设置区:
 
Background Color:背景底色
 
Node Colors: 节点颜色,可选择使用主题(Use theme),从A B C三个主题中选择一个,也可选择使用单一颜色(Use a single color),从色板中选择颜色 
 
Flow Colors:数据流线段的颜色,提供了三个选择:使用来源节点颜色(Use the Source Node's color)、使用目标节点颜色( Use the Target Node's color)、使用单一颜色( Use a single color)
 
如果你对自动配色都不满意的话,可以自主设置节点和数据流的颜色,其中:
 
 
设置节点的代码为:“:节点 #CC0000”,即“冒号+节点+空格+颜色的二进制代码”,例如对于本实例,可使用“:美国 #F74461”
 
设置数据流的代码为:“A [8] C #00CC00”,即“节点1+空格+数据流量+空格+节点2+空格+颜色的二进制代码”
 
除了尺寸和配色以外,还可设置文本标签是否显示,标签字体大小等,大家可以去试试,小编就不多啰嗦了。
 
3.3 输出图片
 
参数设置好后,可点击最下方的“Export”,选择所需尺寸为“基本级”、“视网膜级”或者“印刷级”,输出所需尺寸大小的图片即可,完工图片如下:


专利申请量二维流向的桑基图