利用Pajek软件批量处理excel数据,批量生成网络关系图

Pajek软件大家想必都不陌生,但是我很陌生,因为我用它不是进行网络分析,而是用它来画关系图(类似网络图)。但是Pajek软件手工操作时一次只能导入一个数据文件(如:.net文件)生成相应的1张关系图,而我需要生成450张关系图,逐个数据文件手工操作是不现实的。查阅资料显示R语言或Python与Pajek混合编程可能实现这种功能,但是笔者不会R语言也不会Python语言,只会c++和java语言,而任务又赶的紧,来不及去get R语言调用方式(主要还是相关资料太少)。笔者下面描述下我的实现方式:

第一步:数据转换,即由Excel数据转为.net数据。(.net是Pajek支持的数据格式之一,这一步任何语言都可实现,笔者利用的是java语言的POI的jar包实现的)

下图是其中一个excel文件里的数据,值为0表示无关,值大于0表示相关(对角线的数据是笔者的其它用途,读者可忽略)。

下图①是生成的.net数据,图②是数据格式的简单说明(不懂的可以去查),这种数据可以直接利用Pajek生成图并保存(步骤可以到网上查找)。

Java代码如下:这一步只是文件的读写操作,很简单,不赘述,如下图。

第二步:生成并修改.log文件。下图是Pajek的安装目录,细心的读者会发现,安装目录里有许多的.log文件,这些文件是每次运行Pajek软件留下的,接下来我们就可以在.log文件上做文章。这个过程中,我们不必明白Pajek过多细节的操作,.log会指导我们如何来用。Pajek软件启动时会检查是否存在Pajek.log文件,如果存在便执行.log里面的操作(默认安装目录里是没有Pajek.log文件的,笔者是做过文章的)。

⑴        运行Pajek软件,按下图步骤打开.net文件并保存图片。(可设Layout->Energy->Kamada-Kawai->Free后面保存)


⑵        关闭Pajek软件,打开最新生成的.log文件,如下图:


下图是针对log文件的说明,我们只需要明白“源文件的绝对路径”和“目标文件的绝对路径”。


⑶        把上述文件的“源文件的绝对路径”的“目标文件的绝对路径”分别更改为我们的第二个.net文件和第二个.jpg文件的路径,并在最后添加一行为“EXIT”(如下图)。并更改此.log文件的名字为Pajek.log,保存。

⑷        运行Pajek,发现软件一闪而过(上面添加的”EXIT”,使软件运行完便退出,以后若想正常运行Pajek软件需要把Pajek删除或者改名),在目标路径生成了新的图。

 

第三步:把第二步的(3)(4)用C++程序循环执行。其实对于(3)用什么语言是无所谓的,但是(4)需要用批处理文件来执行,java似乎不可以执行批处理文件。

⑴   创建批处理文件“runPajek.bat”,内容如下图:


⑵   编写C++程序,循环控制重新生成.log文件并执行runPajek.bat。内容如下图:

完结。450多张图几分钟后便可全部生成。

结语:这是笔者发的第一个博客,漏洞很多,望需要者找到自己需要get的点,并希望大家批评指正笔者小新。

利用Pajek软件批量处理excel数据,批量生成网络关系图相关推荐

  1. 数据可视化—复杂网络关系图的绘制

    数据可视化的含义 将抽象概念进行形象性表达,将抽象语言进行具象图形可视的过程. 以数据为工具,以可视化为手段,去达到描述真实,探索世界的目的. 以数据的视角,去看待世界. 数据可视化其实是一个处于不断 ...

  2. 用什么软件能从excel数据自动生成word版的环境实验室检测报告

    您可以使用Microsoft Word的邮件合并功能来自动生成基于Excel数据的环境实验室检测报告.具体步骤如下: 在Excel中准备好您的数据,确保每一列都有一个相应的列标题. 在Word中,创建 ...

  3. 如何通过Excel数据批量生成DM码

    DM码指的就是最常用的Data Matrix 二维码,Data Matrix二维码原名Data code,是由美国国际资料公司于1989年发明.DM码需要选择编码容量大的二维码,而Data Matri ...

  4. python处理大量excel数据-python如何批量处理excel数据?

    python如何批量处理excel数据? python批量处理excel数据的方法: excel的内容需要有规律,python才能按顺序读取出来. 比如按行按列读取. 一.安装xlrd模块 到pyth ...

  5. python怎么批量处理数据_python如何批量处理excel数据?_后端开发

    php赋值运算符有哪些_后端开发 php赋值运算符有:1.[=]赋值运算符:2.[+=]加运算符:3.[-=]减运算符:4.[*=]乘运算符:5.[/=]除运算符:6.[.=]连接字符运算符:7.[% ...

  6. POI和EasyExcel实现Excel数据批量读取到数据库

    POI和easyExcel讲解 目的:这一部分我主要是为了实现excel数据批量插入到数据库. 参考:狂神说java的上课笔记 视屏教学网址 常用信息 1,将用户信息导出为excel表格 2,讲Exc ...

  7. java excel批量导入数据库数据_Java实现Excel数据批量导入数据库

    Java实现Excel数据批量导入数据库 概述: 这个小工具类是工作中的一个小插曲哦,因为提数的时候需要跨数据库导数... 有的是需要从oracle导入mysql ,有的是从mysql导入oracle ...

  8. python批量读取excel表格数据_Python读取Excel数据并生成图表过程解析

    一.需求背景 自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表.以前一直是用Excel实现的.但数据行多后,图表大小调整总是不太方便,一般只能通过缩放比例解决. 二.需求实现目标 通过 ...

  9. 如何更好利用恢复软件恢复清除的数据

    如何更好利用恢复软件恢复清除的数据 你打开百度,在里面搜索回收站数据恢复,你会看到很多的恢复办法,比如令修改注册表,利用软件等等.对于很多对电脑并不精通的人来说.修改注册表似乎并不是一个好选择.那么, ...

最新文章

  1. 【剑指offer-Java版】24二叉搜索树后序遍历序列
  2. UVALive 3026 Period (KMP算法简介)
  3. python 面向对象的篮球技巧训练实现
  4. neo4j 4.1.8版本安装图算法包
  5. 《源码分析转载收藏向—数据库内核月报》
  6. JAVA判断输入日期是否合法
  7. activity finish后没有destroy_Activity 基础知识点
  8. 【OOM】GC overhead limit exceeded
  9. 1036: 谭浩强C语言(第三版)习题1.6
  10. 解决cuda官网安装包下载速度慢的问题
  11. 鱼雷武器控制系统半实物仿真系统ETest设计与实现
  12. WEB前端设计师常用工具集锦
  13. 用 Python 给微信头像加个圣诞老人(平安果)小图标
  14. guid分区怎么装win7_gpt分区无法安装win7原因分析及解决方法(完美解决)
  15. 绩效考核管理中的模型分析与功能设计
  16. 加强版CycleGAN!贾佳亚等提出卡通图与真实人脸转换模型,看女神突破次元壁长啥样...
  17. 苹果发布iOS10.2.1 ,别升级!别问为什么
  18. 计算机的常用外部设备作用,八计算机常用外部设备.ppt
  19. java银行账户类_用java编写银行账户的存款方法
  20. c语言 运算符op,1 简单计算器。请编写一个程序计算表达式:datal op data2的值。其中op为运算符+、—、*、/。...

热门文章

  1. 2017北京国际面料、辅料及纱线(春夏)展览会 2017北京国际服装贴牌加工(OEM/ODM)展览会会刊(参展商名录)
  2. Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript来打造属于自己的个性化社交分享系统
  3. 2019年一级消防工程师备考教材梳理指南
  4. MATLAB—repmat函数
  5. 银河麒麟桌面V10挂载外接光驱光盘
  6. 玩转算法面试:(四)LeetCode查找类问题
  7. 避免在子查询中使用有歧义的列名
  8. Spring Web Flow 2.0 入门
  9. webRTC混音流程
  10. matlab 2fsk系统仿真,基于MATLAB的2FSK数字通信系统仿真