• 阅读: 660 回复: 0
    可以叫我才哥

    怎么用Python绘制弦图?

    楼主 发表于 2021-09-08 15:58:34

    大家好,我是才哥。

    最近看到一张图,感觉很酷炫,搜索得知是叫做弦图。看到很多用R语言绘制的案例,以及有Excel大佬用VBA也绘制了一个,简直不要太强。

    那么,Python可以绘制吗?找了一圈发现有一个付费的第三方包可以实现,因为需要付费,这里就不介绍了。最终,可算让我找到了Python绘制的免费方案,今天我们就一起来看看吧!

    1. 什么是弦图

    下面这张图就是弦图,主要用于展示多个对象之间的关系,连接在圆上任意两点之间的线段叫做弦。

    来源:网络

    对于弦图,有以下特点:

    • 用不同颜色区分不同的对象(点)

    • 圆上的两点之间的弦表示之间存在关系

    • 弦的宽度表示关系程度,关系越明显则弦宽越宽

    • 因为不同对象颜色不同,可以通过两点之间弦的颜色区分是对象->对象的方向

    一般来说,弦图可以用于以下几种场景:

    • 人口迁徙(不同城市之间迁入迁出)

    • 电竞战队或球队之间选手交易

    • 具有重叠成分的不同成品与各成分关系

    • 类似以上几类场景的情况等等

    今天,我们绘制弦图要用到的可视化库是holoviews

     

    2. 弦图绘制

    HoloViews是一个开源的Python库,可以用非常少的代码行中完成数据分析和可视化,除了默认的matplotlib后端外,还添加了一个Bokeh后端。Bokeh提供了一个强大的平台,通过结合Bokeh提供的交互式小部件,可以使用HTML5 canvas和WebGL快速生成交互性和高维可视化,非常适合于数据的交互式探索。官网:http://holoviews.org/

    首先,我们需要安装第三方库holoviews

    我们拿玩家在不同游戏中的付费金额来绘制弦图,演示每一个步骤
    

    2.1 数据准备

    用以下数据进行案例演示

    
    

    我们需要将宽表变为窄表(如果你就是窄表,则不需要这么操作)

    用于绘制弦的数据已经有了:

    • 弦的方向就是姓名->variable

    • 弦的宽度就是value

    接下来,我们搞定 圆上的对象(点)

    最终,对象节点数据如下:

    
    

    弦图案例

    这个弦图是可以交互的,可以save本地html文件

    保存本地

    其实,弦图绘制还有很多参数,大家可以自己help试试(比如背景颜色、字体大小、弦的颜色cmap等等)

    以上就是本次全部内容,相信大家也可以做出酷炫的弦图了!

     

    加油~

    本文内容转载自“可以叫我才哥”(ID:data955),作者道才。

热门文章

数据可视化的意义与案例分享

「数据治理那点事」系列之三:不忘初心方得始终,数据质量治理?

「数据治理那点事」系列之一:那些年我们一起踩过的坑

「数据治理那点事」系列之二:手握数据「户口本」,数据治理肯定稳!

最新文章

我常用的两个可视化工具,Echarts和Tableau

是分是合,影响研发组织设计的主要因素

《深度剖析原型设计:认知、设计和规范最佳实践!》

详解数据可视化的4种类型:手把手教你正确选择图表

  • 未登录

    回复楼主

    登录后可回复
    /1000