【数据可视化】使用Python + Gephi,构建中医方剂关系网络图! | 您所在的位置:网站首页 › 中医方剂学软件 › 【数据可视化】使用Python + Gephi,构建中医方剂关系网络图! |
代码和示例数据下载 前言在这篇文章中,我们将会可视化 《七版方剂学》 的药材的关系,我们将使用Python制作节点和边的数据,然后在Gephi中绘制出方剂的网络图。 Gephi是一个专门用于构建网络图的工具,只要你能提供节点和边的数据,你就可以绘制一个漂亮的网络图。 本文用Python实现了一个可复用的函数,用于输出节点和边的数据。 结果预览每个药材对应一个节点。 将各个药材的关系展现出来,我们可以很直观的看到那些药材可能会被用在一起。 边越粗,代表被用在一起的频次越高。 在我们的用处方和药物信息_构建节点和边.py这个代码文件中,实现了一个函数叫generate_graph,本文将使用这个函数可视化 《七版方剂学》 的方剂。 有了这个函数,读者也可以很方便地针对特定的疾病的方剂数据进行可视化。 你只需要传入两个参数: 处方数据路径药名药味药性数据路径即可输出用于构建网络图的节点和边的文件。 下面是调用本人实现的函数的演示程序的代码,请在上文下载本文的附带的数据和代码来运行。 分别代表边和节点。 你会看到如下图 点击“打开图文件”,选择红色方框中的edge.csv为后缀的数据。
打开“边”文件后,你会看到乱码,不必惊慌。 点开字符集,寻找GBK,在博主的版本中,GBK位于UTF-8的上方。(国内常用两种编码:UTF-8和GBK) 设置完成!,字符串都正常显示了,可直接点击“下一步”,还有“完成”。 选择红色方框中的,添加到现在的工作区。 然后,我们的“边”数据就导入完成了。 步骤3. 打开“节点”文件接下来,让我们导入节点文件。 点开后缀为node.csv的文件 像刚才打开边的文件一样,我们要选择GBK编码,然后仍然是直接点“下一步”,还有“完成”,“添加到工作区”。 经过导入数据,我们得到了原始的网络图(如下所示)。 且看左上角,让我们来按照药性,在本文的节点数据中为yaoxing这一列,指定节点的颜色。 点击应用当前设置的颜色后,我们可以看到下图中网络图发生的变化。 我们这个演示中,使用Force Atlas。
运行布局后,网络图变成了动态的版本。
因为默认的字体不支持中文,所以,我们会看到如下场面。 跟随红色方框,点击Arial Bold,再设置图中的字体。 成功显示各个节点对应的药名 但是没有颜色。 跟随红色方框,设置标签的颜色 设置成功 现在我们的标签有了颜色。但是你觉得太紧凑了?请看下文。 为了避免标签颜色和边的颜色重叠,你可以取消掉下图的红色方框中的内容。 看图中左侧,本文直接将斥力强度设置到了10000。可以发现网络图不再紧凑到一团。 现在我们有了一个漂亮的,动态的网络图。我们可以很直观的看到方剂之间的关系,以及它们的药性。 我们可以使用ctrl + f,快速搜索对应的药材名称,下面以麻黄为例。 让我们把鼠标挪到麻黄上面,我们就能发现处方中和麻黄相关的药物。(小技巧:ctrl + 鼠标滚轮,可以调整鼠标指针的判定点大小) 我们的处方数据中包含麻黄汤,自然,我们可以在下图中看到麻黄 桂枝 杏仁 炙甘草, 边越粗,代表一同出现的频次越高。 |
CopyRight 2018-2019 实验室设备网 版权所有 |