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

Python绘制新冠疫情的知识图谱

from pyvis.network import Network
import networkx as nx
import pandas as pd
import os# 修复模板路径
from pyvis import network as net_moduleos.environ["PATH"] += os.pathsep + os.path.dirname(net_module.__file__)# 创建紧密连接图
g = nx.Graph()# ========== 关键修复:统一关系字段 ==========
connect_matrix = [("ACE2受体", "核酸检测", {"关系": "检测靶标", "发现时间": "2020-01"}),("飞沫传播", "口罩防护", {"关系": "防护方式", "效率": "N95 95%"}),("发热症状", "CT检查", {"关系": "诊断依据", "准确率": "88%"}),("灭活疫苗", "科兴生物", {"关系": "研发生产", "有效率": "51%"}),("Delta变异株", "R0值", {"关系": "传播能力", "数值": "5-8"}),("核酸检测", "健康码", {"关系": "数据来源", "数据源": "检测结果"}),("口罩防护", "公共卫生", {"关系": "政策要求", "政策": "强制佩戴"}),("CT检查", "方舱医院", {"关系": "设备需求", "设备需求": "移动CT车"}),("科兴生物", "WHO认证", {"关系": "国际认证", "时间": "2021-06"}),("R0值", "封城措施", {"关系": "决策依据", "关联性": "0.8"}),
]# 构建核心辐射层(保持不变)
g.add_node("SARS-CoV-2", size=50, color="#FF6F61", group="核心病毒")
core_df = pd.DataFrame({"核心节点": ["SARS-CoV-2"] * 6,"关联节点": ["ACE2受体", "飞沫传播", "发热症状", "核酸检测", "灭活疫苗", "Delta变异株"],"关系类型": ["病毒靶点", "传播途径", "临床表现", "诊断方法", "预防手段", "病毒演化"]
})for _, row in core_df.iterrows():g.add_node(row["关联节点"], group=row["关系类型"], size=30)g.add_edge("SARS-CoV-2", row["关联节点"], title=row["关系类型"], width=3)# ========== 修复后的连接代码 ==========
for src, tgt, rel in connect_matrix:# 确保所有节点都存在if not g.has_node(tgt):g.add_node(tgt, group="二级概念", size=25, color="#6B5B95")# 添加带关系的边g.add_edge(src,tgt,title=rel["关系"],  # 确保键存在**{k: v for k, v in rel.items() if k != "关系"}  # 其他属性)# 环形连接部分保持不变
ring_connections = [("健康码", "行程追踪", "基于"),("行程追踪", "流行病学", "支撑"),("流行病学", "R0值", "计算"),("R0值", "封城措施", "影响"),("封城措施", "方舱医院", "配套"),("方舱医院", "CT检查", "需要"),("CT检查", "发热症状", "诊断"),("发热症状", "ACE2受体", "病理机制")
]for i, (src, tgt, rel) in enumerate(ring_connections):g.add_edge(src, tgt, title=rel, color="#888" if i % 2 else "#444")# 可视化配置和生成代码保持不变
net = Network(height="800px", width="100%", notebook=True)
net.from_nx(g)net.set_options("""
{"physics": {"forceAtlas2Based": {"gravitationalConstant": -200,"centralGravity": 0.005,"springLength": 150,"avoidOverlap": 0.5},"minVelocity": 0.75,"solver": "forceAtlas2Based"},"nodes": {"scaling": {"min": 20,"max": 50}}
}
""")output_path = "COVID19_Dense_Graph_Fixed.html"
net.show(output_path)
os.startfile(os.path.abspath(output_path))

效果如下,可进行物理效果的拉伸、旋转等:

相关文章:

Python绘制新冠疫情的知识图谱

from pyvis.network import Network import networkx as nx import pandas as pd import os# 修复模板路径 from pyvis import network as net_moduleos.environ["PATH"] os.pathsep os.path.dirname(net_module.__file__)# 创建紧密连接图 g nx.Graph()# 关键修…...

canvas(三)-动画3d

在 <canvas> 中实现 3D 动画通常需要借助 WebGL 技术&#xff0c;因为原生的 2D 上下文&#xff08;CanvasRenderingContext2D&#xff09;无法直接支持 3D 渲染。WebGL 是基于 OpenGL ES 2.0 的 JavaScript API&#xff0c;可以直接在浏览器中实现高性能的 3D 图形渲染。…...

使用RUST在Arduino上进行编程(MacOS,mega板)

近年来&#xff0c;RUST成为了嵌入式编程的热门语言&#xff0c;本文通过实现&#xff08;1&#xff09;LED闪灯&#xff0c;以及&#xff08;2&#xff09;在console&#xff08;终端&#xff09;实现“Hello Rust World”两项功能来完成实操的入门。 深入学习可以参考RUST语言…...

MySQL迁移SSL报错

文章记录了之前tdsql迁移IDC过程中遇到的小问题 环境 xboss业务&#xff1a; tdsql未启用SSL&#xff0c; IDC-mysql启用了SSL: 原因分析 1&#xff0c; 迁移前&#xff1a; 因为tdsql未启用ssl&#xff0c; 且应用未显式配置ssl JDBC默认使用非SSL连接&#xff0c;因此可以正…...

大模型微调与高效训练

随着预训练大模型(如BERT、GPT、ViT、LLaMA、CLIP等)的崛起,人工智能进入了一个新的范式:预训练-微调(Pre-train, Fine-tune)。这些大模型在海量数据上学习到了通用的、强大的表示能力和世界知识。然而,要将这些通用模型应用于特定的下游任务或领域,通常还需要进行微调…...

LLM驱动的未来软件工程范式与架构策略

历史回顾与范式奠基 软件工程自其诞生以来,经历了数次里程碑式的范式变革。最初的汇编语言时代,程序员与机器指令直接对话,效率低下,代码难以复用。随后,高级语言(如Fortran、C)的出现,通过抽象层极大地提升了开发效率,并催生了面向过程的编程范式。进入20世纪末,面…...

OpenCv高阶(十六)——Fisherface人脸识别

文章目录 前言一、Fisherface人脸识别原理1. 核心思想&#xff1a;LDA与Fisher准则2. 实现步骤(1) 数据预处理(2) 计算类内散布矩阵 SW对每个类别&#xff08;每个人&#xff09;计算均值向量 μi&#xff1a;(3) 计算类间散布矩阵 SB(4) 求解投影矩阵 W(5) 降维与分类 3. Fish…...

Unity3D 异步加载材质显示问题排查

前言 在Unity3D中异步加载材质后未正确显示的问题&#xff0c;通常涉及资源加载流程、材质引用或Shader配置。以下是逐步排查和解决问题的方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下开发经验呀&#xff01; …...

【Django Serializer】一篇文章详解 Django 序列化器

第一章 Django 序列化器概述 1.1 序列化器的定义 1.1.1 序列化与反序列化的概念 1. 序列化 想象你有一个装满各种物品&#xff08;数据对象&#xff09;的大箱子&#xff08;数据库&#xff09;&#xff0c;但是你要把这些物品通过一个狭窄的管道&#xff08;网络&#xff…...

二分算法的补充说明

在上一节中我们简单介绍了二分算法&#xff0c;通过区分小于等于&#xff0c;大于或者小于&#xff0c;大于等于我们可以求出它们的边界值。 具体方法是先看一下要求哪里的边界值&#xff0c;分成两部分让如果求小于等于的右边界&#xff0c;我们根据条件让rightmid-1,leftmid…...

C++:array容器

array容器是序列容器&#xff0c;它的特点是&#xff1a;静态&#xff0c;固定数目。可以看作更安全的数组。 它还有一些成员函数&#xff0c;如begin&#xff08;&#xff09;&#xff1a;返回指向容器中第一个元素的随机访问迭代器。 #include<iostream>//数组容器 #…...

java每日精进 5.19【Excel 导入导出】

基于 EasyExcel 实现 Excel 的读写操作&#xff0c;可用于实现最常见的 Excel 导入导出等功能。 Excel 导入导出功能涉及前后端协作&#xff0c;后端处理数据查询、文件生成和解析&#xff0c;前端提供用户交互和文件下载/上传界面。以下是全流程解析&#xff0c;分为导出流程…...

java基础(api)

包&#xff1a; 导包&#xff0c;不同包的程序名相同。 但是要用两个的话可以这样子写&#xff1a; String String概述 String的常用方法 String使用时的注意事项 String的应用案例...

CentOS7/Ubuntu SSH配置允许ROOT密码登录

CentOS7 打开SSHD配置文件 vim /etc/ssh/sshd_config 找到注释行&#xff0c;如果没有就添加。 #PermitRootLogin yes 把注释取消掉。 执行下述命令&#xff0c;重启SSHD服务即可。 systemctl restart sshd.service Ubuntu 先安装SSH服务器&#xff0c;CentOS7默认就安…...

C++ HTTP框架推荐

1. Crow 特点&#xff1a;高性能异步框架&#xff0c;支持Linux、macOS和Windows 优势&#xff1a; 轻量级&#xff1a;整个框架只有一个头文件&#xff0c;易于集成到项目中 简单易用&#xff1a;API设计简洁直观&#xff0c;学习曲线平缓 高性能&#xff1a;基于Boost.Asi…...

算法打卡第二天

5.爬楼梯(动态规划) 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2…...

VSCode推出开源Github Copilot:AI编程新纪元

文章目录 开源决策的背后GitHub Copilot的演进历程Copilot Chat核心功能解析1. 聊天界面集成2. 代码理解与生成3. 多文件编辑能力4. 智能代理模式 开源后的影响与展望对开发者的影响对AI编程工具市场的影响未来发展方向 如何开始使用GitHub Copilot结语相关学习资源 在AI编程助…...

Mujoco 学习系列(四)官方模型仓库 mujoco_menagerie

mujoco 官方在 Github 上发布了一个他们自己整理的高质量的模型仓库&#xff0c;这个仓库是一个持续维护的项目&#xff0c;里面包含了目前市面上常见的人形机器人、机械臂、底盘等模型&#xff0c;对于初学者而言是一个非常好的学习资料&#xff0c;无论是想在仿真环境中尝试还…...

代码走读 Go 语言 Map 的实现

序言 在日常的开发当中&#xff0c;我们一定离不开一个数据结构字典。不仅可以存储关联数据对&#xff0c;还可以在 O(1) 的时间复杂度进行查找。很久之前在 一篇文章带你实现 哈希表 介绍了相关的原理以及简单的实现。所以这篇文章中我们就不多赘述哈希表的原理&#xff0c;而…...

PostgreSQL14 +patroni+etcd+haproxy+keepalived 集群部署指南

使用postgresql etcd patroni haproxy keepalived可以实现PG的高可用集群&#xff0c;其中&#xff0c;以postgresql做数据库&#xff0c;Patroni监控本地的PostgreSQL状态&#xff0c;并将本地PostgreSQL信息/状态写入etcd来存储集群状态&#xff0c;所以&#xff0c;patr…...

数据结构知识点汇总

1、在数据结构中&#xff0c;随机访问是指能够直接访问任一元素&#xff0c;而不需要从特定的起始位置开始&#xff0c;也不需要按顺序访问其他元素。这种访问方式通常不涉及遍历。例如&#xff0c;数组&#xff08;array&#xff09;支持随机访问&#xff0c;你可以直接通过索…...

雅思英语考试基本介绍

考试分类 雅思&#xff08;国际英语语言测试系统&#xff0c;International English Language Testing System 即IELTS&#xff09;主要分为两大类&#xff1a; 学术类&#xff08;A类&#xff09; 这是我可能会选择的一种&#xff08;✓&#xff09;&#xff0c;专为申请大学…...

基于YOLO11深度学习的变压器漏油检测系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】

文章目录 引言软件主界面源码目录文件说明一、环境安装(1)安装python(2)安装软件所需的依赖库 二、软件核心功能介绍及效果演示(1)软件核心功能(2)软件效果演示 三、模型的训练、评估与推理(1)数据集准备与训练(2)训练结果评估(3)使用训练好的模型识别 四、完整相关文件及源码下…...

线上 Linux 环境 MySQL 磁盘 IO 高负载深度排查与性能优化实战

目录 一、线上告警 二、问题诊断 1. 系统层面排查 2. 数据库层面分析 三、参数调优 1. sync_binlog 参数优化 2. innodb_flush_log_at_trx_commit 参数调整 四、其他优化建议 1. 日志文件位置调整 2. 生产环境核心参数配置模板 3. 突发 IO 高负载应急响应方案 五、…...

【洛谷 P9025】 [CCC2021 S3] Lunch Concert 题解

题目&#xff1a; 洛谷 P9025 分析&#xff1a; 为了解决这个问题&#xff0c;我们需要找到一个整数位置 c 来举办音乐会&#xff0c;使得所有人移动到能听到音乐会的位置的时间总和最小。每个人移动后的位置应该在其听力范围内&#xff0c;并且尽可能靠近自己的初始位置以减少…...

Python 包管理工具核心指令uvx解析

uvx 是 Python 包管理工具 uv 的重要组成部分&#xff0c;主要用于在隔离环境中快速运行 Python 命令行工具或脚本&#xff0c;无需永久安装工具包。以下是其核心功能和使用场景的详细解析&#xff1a; 一、uvx 的定位与核心功能 工具执行器的角色 uvx 是 uv tool run 的别名&a…...

苍穹外卖05 Redis常用命令在Java中操作Redis_Spring Data Redis使用方式店铺营业状态设置

2-8 Redis常用命令 02 02-Redis入门 ctrlc :快捷结束进程 配置密码&#xff1a; 以后再启动客户端的时候就需要进行密码的配置了。使用-a 在图形化界面中创建链接&#xff1a; 启动成功了。 03 03-Redis常用数据类型 04 04-Redis常用命令_字符串操作命令 05 05-Redis常用命令…...

AI工程师系列——面向copilot编程

前言 ​ 笔者已经使用copilot协助开发有一段时间了,但一直没有总结一个协助代码开发的案例,特别是怎么问copilot,按照什么顺序问,哪些方面可以高效的生成需要的代码,这一次,笔者以IP解析需求为例,沉淀一个实践案例,供大家参考 当然,其实也不局限于copilot本身,类似…...

【竖排繁体识别】如何将竖排繁体图片文字识别转横排繁体,转横排简体导出文本文档,基于WPF和腾讯OCR的实现方案

一、应用场景 在古籍数字化、繁体文档处理、两岸三地文化交流等场景中,经常需要将竖排繁体文字转换为横排文字。例如: 古籍研究人员需要将竖排繁体文献转换为现代横排简体格式以便编辑和研究出版行业需要将繁体竖排排版转换为简体横排格式两岸三地交流中需要将繁体竖排文档转…...

梳理Spring Boot中三种异常处理

在 Spring Boot 中处理异常确实有多个方式&#xff0c;比如使用 ControllerAdvice、 BasicErrorController、HandlerExceptionResolver等。不同方式适合不同的场景&#xff0c;下面是对这些方式的分析以及如何选择的建议&#xff1a; &#x1f9e9; 1. ControllerAdvice Exce…...