当前位置: 首页 > news >正文

【数据可视化】使用Python + Gephi,构建中医方剂关系网络图!

代码和示例数据下载

前言

在这篇文章中,我们将会可视化 《七版方剂学》 的药材的关系,我们将使用Python制作节点和边的数据,然后在Gephi中绘制出方剂的网络图。

Gephi是一个专门用于构建网络图的工具,只要你能提供节点和边的数据,你就可以绘制一个漂亮的网络图。

本文用Python实现了一个可复用的函数,用于输出节点和边的数据。

结果预览

每个药材对应一个节点。

将各个药材的关系展现出来,我们可以很直观的看到那些药材可能会被用在一起。

边越粗,代表被用在一起的频次越高。

在这里插入图片描述

利用Python制作“节点”和“边”的数据

在我们的用处方和药物信息_构建节点和边.py这个代码文件中,实现了一个函数叫generate_graph,本文将使用这个函数可视化 《七版方剂学》 的方剂。

有了这个函数,读者也可以很方便地针对特定的疾病的方剂数据进行可视化。

你只需要传入两个参数:

  1. 处方数据路径
  2. 药名药味药性数据路径

即可输出用于构建网络图的节点的文件。

下面是调用本人实现的函数的演示程序的代码,请在上文下载本文的附带的数据和代码来运行。
在这里插入图片描述
运行完毕,我们将会得到如下两个文件:

  • 示例处方数据_edge.csv
  • 示例处方数据_node.csv

分别代表边和节点。
在这里插入图片描述

利用Gephi构建网络图

步骤1. 打开Gephi


你会看到如下图

在这里插入图片描述

步骤2. 打开 “边” 文件

点击“打开图文件”,选择红色方框中的edge.csv为后缀的数据。

在这里插入图片描述



打开“边”文件后,你会看到乱码,不必惊慌。
在这里插入图片描述



点开字符集,寻找GBK,在博主的版本中,GBK位于UTF-8的上方。(国内常用两种编码:UTF-8和GBK)
在这里插入图片描述



设置完成!,字符串都正常显示了,可直接点击“下一步”,还有“完成”。在这里插入图片描述



选择红色方框中的,添加到现在的工作区
在这里插入图片描述

然后,我们的“边”数据就导入完成了。

步骤3. 打开“节点”文件

接下来,让我们导入节点文件。
在这里插入图片描述



点开后缀为node.csv的文件
在这里插入图片描述



像刚才打开边的文件一样,我们要选择GBK编码,然后仍然是直接点“下一步”,还有“完成”,“添加到工作区”。

在这里插入图片描述



步骤4. 得到原始网络图

经过导入数据,我们得到了原始的网络图(如下所示)。
在这里插入图片描述



步骤5. 指定节点颜色

且看左上角,让我们来按照药性,在本文的节点数据中为yaoxing这一列,指定节点的颜色。
在这里插入图片描述



点击应用当前设置的颜色后,我们可以看到下图中网络图发生的变化。
在这里插入图片描述



步骤6. 指定布局

我们这个演示中,使用Force Atlas

在这里插入图片描述
在这里插入图片描述



运行布局后,网络图变成了动态的版本。
在这里插入图片描述

步骤7. 显示节点标签(药名)

在这里插入图片描述



因为默认的字体不支持中文,所以,我们会看到如下场面。
在这里插入图片描述



跟随红色方框,点击Arial Bold,再设置图中的字体。
在这里插入图片描述



成功显示各个节点对应的药名
但是没有颜色。
在这里插入图片描述



跟随红色方框,设置标签的颜色
在这里插入图片描述



设置成功
现在我们的标签有了颜色。但是你觉得太紧凑了?请看下文。

在这里插入图片描述

为了避免标签颜色和边的颜色重叠,你可以取消掉下图的红色方框中的内容。

在这里插入图片描述

步骤8. 设置斥力强度(增加节点间的间隔)

看图中左侧,本文直接将斥力强度设置到了10000。可以发现网络图不再紧凑到一团。

在这里插入图片描述

大功告成!

现在我们有了一个漂亮的,动态的网络图。我们可以很直观的看到方剂之间的关系,以及它们的药性。

在这里插入图片描述

使用网络图

我们可以使用ctrl + f,快速搜索对应的药材名称,下面以麻黄为例。
在这里插入图片描述

让我们把鼠标挪到麻黄上面,我们就能发现处方中和麻黄相关的药物。(小技巧:ctrl + 鼠标滚轮,可以调整鼠标指针的判定点大小)

我们的处方数据中包含麻黄汤,自然,我们可以在下图中看到麻黄 桂枝 杏仁 炙甘草

边越粗,代表一同出现的频次越高。

在这里插入图片描述

相关文章:

【数据可视化】使用Python + Gephi,构建中医方剂关系网络图!

代码和示例数据下载 前言 在这篇文章中,我们将会可视化 《七版方剂学》 的药材的关系,我们将使用Python制作节点和边的数据,然后在Gephi中绘制出方剂的网络图。 Gephi是一个专门用于构建网络图的工具,只要你能提供节点和边的数…...

部署prometheus+Grafana可视化仪表盘监控服务

一、部署prometheus及监控仪表盘 简介 Prometheus是开源监控报警系统和时序列数据库(TSDB)。 Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控,输出被监控组件信息的HTTP接口被叫做expo…...

python中的类与对象

前言 在Python中,类是一种用于创建新类型对象的结构,它允许我们将数据和功能(属性和方法)封装到一个单独的逻辑单元中。类可以被看作是创建对象(实例)的蓝图或模板。类(Class)和对象…...

sentry-cli - error: Failed to load .sentryclirc file from project path

Xcode 15.2 warning sentry-cli - error: Failed to load .sentryclirc file from project path (/Users/zhuhongwei/Desktop/pandabill/.sentryclirc)推荐一下刚上线的 App 熊猫小账本,里面有用到这篇博客讲的内容 熊猫小账本 一个简洁的记账 App,用于…...

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测(完整源码和数据) …...

如何添加 Android Native 系统服务

如何添加 Android Native 系统服务 工作学习过程中,我们可能需要去阅读不同类型的 Native 系统服务,也有可能会自己去完成一个 Native 系统服务。无论哪种情况都需要我们了解基本的 Native 如何去添加。就像我们写 Android App 得先了解一下四大组件才行…...

【力扣】189.轮转数组

题目描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6…...

C语言字符函数和字符串函数详解

Hello, 大家好,我是一代,今天给大家带来有关字符函数和字符串函数的有关知识 所属专栏:C语言 创作不易,望得到各位佬们的互三呦 一.字符函数 在C语言中有一些函数是专门为字符设计的,这些函数的使用都需要包含一个头文…...

【CKA模拟题】查询消耗CPU最多的Pod

题干 For this question, please set this context (In exam, diff cluster name) 对于此问题,请设置此上下文(在考试中,diff 集群名称) kubectl config use-context kubernetes-adminkubernetesFind the pod that consumes the …...

网络简略总结

目录 一、三次握手 四次挥手 1、三次握手:为了建立长链接进行交互即建立一个会话,使用http/https协议 2、四次挥手是一个断开连接释放服务器资源的过程 3、如果已经建立了连接,但是客户端突然出现故障了怎么办? 4、谁可以中断连接?客户端还是服务端还是都可以? 5、…...

如何处理错误情况

处理错误情况是确保自动窗帘系统稳定运行的重要一环。在编写代码时,你需要考虑可能发生的各种错误情况,并编写相应的错误处理代码。下面是一些处理错误情况的常见方法: (1)错误检测: 首先,你需要能够检测到错误的发生。…...

【Greenhills】MULTI IDE-GHS最新版本Compiler 23.5.4的兼容性问题

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 关于GHS推出的最新编译器版本 Compiler 2023.5.4在GHS以前版本的MULTI IDE上面能否使用的问题 2、 问题场景 针对于,客户使用MULTI IDE 8.1.4以前的IDE版本,想要搭载使用最新版本的编译器…...

用连续自然数之和来表达整数 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式。 输入描述 一个目标整数T (1 <=T<= 1000) 输出描述 该整数的所有表达式…...

SQLiteC/C++接口详细介绍之sqlite3类(十二)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十一&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十三&#xff09; ​37.sqlite3_load_extension 用于在SQLit…...

linux系统--------------mysql数据库管理

目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息 1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构&#xff08;字段&#xff09; 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL&#xff1a;数据定义语言&am…...

网络——入门基础

目录 协议 网络协议 OSI七层模型 网络传输基本流程 网络传输流程图 局域网通信 数据包的封装和解包 广域网通信 网络地址管理 IP地址 MAC地址 协议 关于什么是局域网&#xff0c;什么是广域网&#xff0c;我这里就不过多赘述了&#xff0c;我们直接来谈一下什么…...

二、yocto 集成ros2(基于raspberrypi 4B)

yocto 集成ros2 yocto 集成ros21. 下载ros layer2. 编译集成ros3. 功能验证 yocto 集成ros2 本篇文章为基于raspberrypi 4B单板的yocto实战系列的第二篇文章。 一、yocto 编译raspberrypi 4B并启动 本节我们将ros2机器人操作系统移植到我们的yocto系统里面。 1. 下载ros laye…...

html--bug

文章目录 html html <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>老师</title><style>body {background-color: #008000;margin: 0px;cursor: none;overflow: hidden;}</style></head><bod…...

Java基础学习笔记三

环境变量CLASSPATH classpath环境变量是隶属于java语言的&#xff0c;不是windows操作系统的&#xff0c;和PATH环境变量完全不同classpath环境变量是给classloader&#xff08;类加载器&#xff09;指路的java A 。执行后&#xff0c;先启动JVM&#xff0c; JVM启动classload…...

Linux快速入门,上手开发 01.学习路线

少时曾许凌云志&#xff0c;当取世间第一流 再见少年拉满弓&#xff0c;不惧岁月不飓风 —— 24.3.20 1.Linux的发展历史 2.VM虚拟机的Linux初体验 3.图形化页面设置系统——快速上手 4.命令行操作——向专业前进 5.核心操作命令——必知必会&#xff08;管理企业级权限/定位b…...

Windows平台Android应用安装神器:APK-Installer全面解析与实战指南

Windows平台Android应用安装神器&#xff1a;APK-Installer全面解析与实战指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的困扰&#xff1a…...

告别点击跳转烦恼:给Zotero+Word/WPS添加文献引用超链接的两种方法

科研写作效率革命&#xff1a;Zotero文献引用超链接的终极解决方案 每次修改论文时&#xff0c;最让人抓狂的莫过于在几十页的文档中来回翻找参考文献。明明Zotero已经帮我们自动生成了完美的引用格式&#xff0c;却还要手动在正文和参考文献列表之间来回切换——这种低效的操作…...

3大架构革新:重新定义阴阳师自动化边界

3大架构革新&#xff1a;重新定义阴阳师自动化边界 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 阴阳师自动化脚本&#xff08;OnmyojiAutoScript&#xff09;作为一款开源游戏…...

5步掌握BepInEx框架:从零到精通的完整指南

5步掌握BepInEx框架&#xff1a;从零到精通的完整指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是一个功能强大的Unity游戏插件框架&#xff0c;专门为游戏模组开发者…...

AGI自主迭代证据链首次闭环:2026奇点大会披露的172小时连续训练日志,揭示自我优化新范式

第一章&#xff1a;2026奇点智能技术大会&#xff1a;通用人工智能最新进展 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次披露了多项突破性成果&#xff0c;其中最引人注目的是OpenCog Foundation联合MIT AGI Lab发布的Neuro-Symbolic Fusion Engine v3.2&…...

**发散创新:基于Solidity的DAO组织智能合约设计与实战部署**在We

发散创新&#xff1a;基于Solidity的DAO组织智能合约设计与实战部署 在Web3时代&#xff0c;去中心化自治组织&#xff08;DAO&#xff09;已成为区块链应用的核心形态之一。它通过代码规则替代传统公司治理结构&#xff0c;实现社区驱动、透明可验证的决策机制。本文将深入探讨…...

PPTAgent深度解析:如何让AI真正理解你的演示需求

PPTAgent深度解析&#xff1a;如何让AI真正理解你的演示需求 【免费下载链接】PPTAgent An Agentic Framework for Reflective PowerPoint Generation 项目地址: https://gitcode.com/gh_mirrors/pp/PPTAgent 你是否曾经对着空白的幻灯片页面发呆&#xff0c;不知从何开…...

Lychee Rerank MM开箱即用:内置指令模板与评分逻辑说明的友好型镜像

Lychee Rerank MM开箱即用&#xff1a;内置指令模板与评分逻辑说明的友好型镜像 1. 快速了解Lychee Rerank MM Lychee Rerank MM是一个让你轻松处理多模态检索任务的智能工具。想象一下&#xff0c;你有一堆文字和图片&#xff0c;需要快速找到最相关的内容——这个系统就是帮…...

BEYOND REALITY Z-Image效果实测:对比通用负面词,专用词让人脸合格率翻倍

BEYOND REALITY Z-Image效果实测&#xff1a;对比通用负面词&#xff0c;专用词让人脸合格率翻倍 1. 测试背景与目标 在AI图像生成领域&#xff0c;负面提示词(Negative Prompt)的质量往往决定了生成结果的可用性。BEYOND REALITY Z-Image作为一款专注于写实人像生成的模型&a…...

3个AMD Ryzen硬件调试技巧:开源SMU工具实战指南

3个AMD Ryzen硬件调试技巧&#xff1a;开源SMU工具实战指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.…...