Pajek的.net文件的数据输入格式及给节点和边着色

时间:2024-03-27 10:23:00

一、问题描述:

需要用Pajek软件画网络节点图,节点和边需要根据不同要求显示不同的颜色,并且,节点用自定义的标签标注,边用边的权值或者边的标签标注。

二、Pajek软件的.net文件的数据输入格式:

*Vertices空格节点个数
节点编号(从1开始)空格节点标签(需写在“”中)空格ic空格节点要显示的颜色(注意:颜色单词的首字母要大写,否则无效)
节点编号(2)空格节点标签(需写在“”中)空格ic空格节点要显示的颜色(注意:颜色单词的首字母要大写,否则无效)
...
...
...
节点编号(节点个数n)空格节点标签(需写在“”中)空格ic空格节点要显示的颜色(注意:颜色单词的首字母要大写,否则无效)
*Edges(这是对于无向图的边)
这条边的一个顶点(必须是节点编号)空格这条边的另一个顶点(必须是编号)空格这条边的权值空格c空格这条边要显示的颜色(颜色单词的首字母必须大写,否则无效)
这条边的一个顶点(必须是节点编号)空格这条边的另一个顶点(必须是编号)空格这条边的权值空格c空格这条边要显示的颜色(颜色单词的首字母必须大写,否则无效)
...
...
...
这条边的一个顶点(必须是节点编号)空格这条边的另一个顶点(必须是编号)空格这条边的权值空格c空格这条边要显示的颜色(颜色单词的首字母必须大写,否则无效)

三、注意:

(1)如果对一个节点设置了要显示颜色,则,这个节点下面的所有节点如果没有设置要显示的颜色(即:这个节点下面的所有节点的后面都没写ic空格要显示的颜色),那么,都会显示这个节点设置的颜色。
eg:
输入数据格式如下
*Vertices 18
1 "E"
2 "N1"
3 "N10"
4 "N11"
5 "N12" ic Green
6 "N13"
7 "N14"
8 "N15"
9 "N16"
10 "N2"
11 "N3"
12 "N4"
13 "N5"
14 "N6"
15 "N7" ic Black
16 "N8"
17 "N9"
18 "S" ic Yellow
*Edges
18 2 3
18 10 1
18 11 1
2 18 3
2 17 4
2 12 1
2 10 1
10 18 1
10 2 1
10 13 1
10 11 1
10 12 2
11 18 1
11 10 1
11 13 2
11 14 2
11 15 1
12 2 1
12 10 2
12 13 1
12 17 1
13 12 1
13 10 1
13 11 2
13 14 1
13 5 3
13 3 1
13 17 3
14 11 2
14 13 1
14 5 2
14 6 4
14 7 3
14 16 2
14 15 1
15 11 1
15 14 1
15 16 1
16 15 1
16 14 2
16 7 1
16 8 3
17 2 4
17 12 1
17 13 3
17 3 1
17 4 1
3 13 1
3 17 1
3 4 1
3 5 2
4 17 1
4 3 1
4 5 1
4 9 1
5 13 3
5 14 2
5 6 2
5 9 1
5 4 1
5 3 2
6 14 4
6 5 2
6 9 2
6 1 1
6 7 1
6 8 2
7 14 3
7 16 1
7 8 1
7 6 1
8 16 3
8 7 1
8 6 2
8 1 4
9 4 1
9 5 1
9 6 2
9 1 1
1 9 1
1 6 1
1 8 4

Pajek的.net文件的数据输入格式及给节点和边着色
显示的效果如下
Pajek的.net文件的数据输入格式及给节点和边着色
(2)但是,对于边而言,如果要让一条边显示颜色,则,无向图需要把表示这条边的两条正反方向的边都设置颜色,eg:
输入数据格式为
*Vertices 18
1 "E"
2 "N1"
3 "N10"
4 "N11"
5 "N12" ic Green
6 "N13"
7 "N14"
8 "N15"
9 "N16"
10 "N2"
11 "N3"
12 "N4"
13 "N5"
14 "N6"
15 "N7" ic Black
16 "N8"
17 "N9"
18 "S" ic Yellow
*Edges
18 2 3 c Black
18 10 1
18 11 1 c Red
2 18 3
2 17 4
2 12 1
2 10 1
10 18 1
10 2 1
10 13 1
10 11 1
10 12 2
11 18 1 c Red
11 10 1
11 13 2
11 14 2
11 15 1
12 2 1
12 10 2
12 13 1
12 17 1
13 12 1
13 10 1
13 11 2
13 14 1
13 5 3
13 3 1
13 17 3
14 11 2
14 13 1
14 5 2
14 6 4
14 7 3
14 16 2
14 15 1
15 11 1
15 14 1
15 16 1
16 15 1
16 14 2
16 7 1
16 8 3
17 2 4
17 12 1
17 13 3
17 3 1
17 4 1
3 13 1
3 17 1
3 4 1
3 5 2
4 17 1
4 3 1
4 5 1
4 9 1
5 13 3
5 14 2
5 6 2
5 9 1
5 4 1
5 3 2
6 14 4
6 5 2
6 9 2
6 1 1
6 7 1
6 8 2
7 14 3
7 16 1
7 8 1
7 6 1
8 16 3
8 7 1
8 6 2
8 1 4
9 4 1
9 5 1
9 6 2
9 1 1
1 9 1
1 6 1
1 8 4


Pajek的.net文件的数据输入格式及给节点和边着色

显示的效果如下

Pajek的.net文件的数据输入格式及给节点和边着色
(3)从Excel中把数据导出成.txt时,是以Unicode编码存储的,需要改成UTF-8编码,才能被Pajek软件识别。

四、给一个完整的例子

输入数据:
*Vertices 18
1 "E" ic Yellow
2 "N1" ic CornflowerBlue
3 "N10" ic CornflowerBlue
4 "N11" ic CornflowerBlue
5 "N12" ic Green
6 "N13" ic Black
7 "N14" ic Black
8 "N15" ic CornflowerBlue
9 "N16" ic CornflowerBlue
10 "N2" ic Black
11 "N3" ic CornflowerBlue
12 "N4" ic Black
13 "N5" ic Black
14 "N6" ic Black
15 "N7" ic Green
16 "N8" ic Black
17 "N9" ic CornflowerBlue
18 "S" ic Yellow
*Edges
18 2 3
18 10 1 c Black
18 11 1
2 18 3
2 17 4
2 12 1
2 10 1
10 18 1 c Black
10 2 1
10 13 1
10 11 1
10 12 2 c Green
11 18 1
11 10 1
11 13 2
11 14 2
11 15 1
12 2 1
12 10 2 c Green
12 13 1 c Black
12 17 1
13 12 1 c Black
13 10 1
13 11 2
13 14 1
13 5 3 c Black
13 3 1
13 17 3
14 11 2
14 13 1
14 5 2 c Black
14 6 4
14 7 3
14 16 2
14 15 1 c Black
15 11 1
15 14 1 c Black
15 16 1 c Black
16 15 1 c Black
16 14 2
16 7 1 c Black
16 8 3
17 2 4
17 12 1
17 13 3
17 3 1
17 4 1
3 13 1
3 17 1
3 4 1
3 5 2
4 17 1
4 3 1
4 5 1 c Red
4 9 1
5 13 3 c Black
5 14 2 c Black
5 6 2
5 9 1
5 4 1 c Red
5 3 2
6 14 4
6 5 2
6 9 2
6 1 1 c Black
6 7 1 c Green
6 8 2
7 14 3
7 16 1 c Black
7 8 1
7 6 1 c Green
8 16 3
8 7 1
8 6 2
8 1 4
9 4 1
9 5 1
9 6 2
9 1 1
1 9 1
1 6 1 c Black
1 8 4
输出的图像:
Pajek的.net文件的数据输入格式及给节点和边着色