graphiz应用一例:欧洲上古和中世纪民族变迁

Graphiz是绘图软件,具有很多优秀的特点,比如自动计算节点的位置。


1.原始的手稿



2.最终的結果:



3. 代码

digraph european
{
//定义样式
graph [label="Created by Young\n参考文献:钱乘旦主编,欧洲文明:民族的融合与冲突,贵州人民出版社,1999年4月\n感谢周巩固教授,感谢高哥."];
rankdir=LR;
//重要源头
node [shape=doublecircle, style = filled, color=cornflowerblue];
日尔曼 罗马 希腊 斯拉夫人 北欧海盗;
//现代国家
node [shape=box, style = filled, color=gray95];
德国 法国 英国和爱尔兰 意大利 苏联 俄罗斯 罗马尼亚;
//亚洲民族
node [style = solid, color=red];
"hun" [label="<h>匈奴|<a>阿兰人" shape = "record"];
"蒙古" [label="蒙古:|<t>帖木儿,突厥化|<b>拔都" shape = "record"];
"中国" [label="中国:|<h>汉|<t>唐" shape = "record"]
突厥;
//其他民族
node [shape=box, style=solid, color=black]; //, style = "filled,rounded", color=lightgrey
"德意志(条顿?)";
"m" [label="<m>马扎儿|<h>匈奴后代" shape = "record"];
"神圣罗马帝国" [label="神圣罗马帝国(奥托,腓特烈)"];
"东罗马" [label="东罗马(拜占庭)"];
"克尔特" [label="克尔特(凯尔特)"];
"不列颠" [label="<e>英格兰|<s>苏格兰|<w>威尔士|<i>爱尔兰" shape = "record"];
"南斯拉夫" [label="南斯拉夫人:|保加利亚|塞尔维亚|斯洛文尼亚|克罗地亚|黑山|马其顿" shape = "record"];
"东斯拉夫" [label="东斯拉夫人:|<r>俄罗斯|白俄罗斯|乌克兰|(第聂伯河,顿河,伏尔加河,黑海北岸)" shape = "record"];
"西斯拉夫" [label="西斯拉夫人:|<r>波兰|捷克人|斯洛伐克人|(维斯瓦河,奥德河,易北河)" shape = "record"];
//攻击
edge [arrowhead=onormal color=red fontcolor=red];
"德意志(条顿?)" -> m:m [label="灭"];
"中国":h -> hun:h;
"中国":t -> 突厥;
hun:h -> 法兰克人;
法兰克人-> "克尔特" [label="高卢"];
hun:h -> 哥特人 [arrowhead=onormal];
hun:h -> 斯拉夫人 [label="西征" labeldistance=0.5];
"神圣罗马帝国" -> 立陶宛 [label="东进运动"];
"神圣罗马帝国" -> 波兰 [label="东进运动"];
东罗马 -> 东哥特人 [label="灭"];
哥特人->斯拉夫人;
西哥特人->西罗马 [label="灭"];
罗马 -> 希腊化国家 [label="灭"];
奥斯曼土尔其 -> 十字军;
奥斯曼土尔其 -> 东罗马 [label="灭"];
"蒙古":t -> 奥斯曼土尔其;
"蒙古":b->东斯拉夫:r;
丹麦人->"不列颠":e [label="几进几出"];
挪威人->"不列颠":i;
诺曼人->"不列颠":e [label="诺曼征服"];
瑞典人->芬兰人;
// ------------------------------
//形成
edge [label="" arrowhead=vee color=black fontcolor=black];
日尔曼->哥特
日尔曼->哥特人->西哥特人;
哥特人->东哥特人;
日尔曼->法兰克
日尔曼 ->  法兰克人 ;
日尔曼->德意志
日尔曼 -> "德意志(条顿?)" -> "神圣罗马帝国" ->  奥地利;
"神圣罗马帝国" ->  瑞士;
"芬兰-乌果尔人(乌拉尔山,卡马河,伏尔加河)" -> "m":m;
m -> 匈牙利;
波罗的人 -> 立陶宛;
日尔曼->汪达尔
日尔曼->汪达尔人->去伊比利亚->去北非;
日尔曼->盎格鲁-撒克逊; 不列颠
日尔曼->"盎格鲁-撒克逊"->不列颠:e;
"盎格鲁-撒克逊"->不列颠:s;
克尔特->不列颠:w;
克尔特->不列颠:i;
//希腊,罗马
罗马 -> 东罗马;
罗马 -> 西罗马;
罗马 -> 罗马尼亚;
达契亚人 -> 罗马尼亚;
色雷斯人 -> 达契亚人;
希腊化国家 -> 东罗马;
希腊 -> 希腊化国家 [与马其顿一起];
//斯拉夫
南斯拉夫
斯拉夫人->南斯拉夫 [label=匈奴西征导致南迁];
斯拉夫人->东斯拉夫;
斯拉夫人->西斯拉夫;
//北欧海盗
北欧海盗->挪威人;
挪威人->"不列颠":i [label="同化于"];
北欧海盗->丹麦人->诺曼人;
北欧海盗->瑞典人;
瑞典人->"东斯拉夫":r [label="基辅,同化为"];
//其他,来自亚洲
突厥 -> 奥斯曼土尔其;
hun:h -> m:h;
hun:a -> 葡萄牙;
//后来
edge [style=dashed];
神圣罗马帝国->德国 ;
法兰克人-> 法国;
不列颠->英国和爱尔兰;
西罗马->"分裂,割据,被入侵"->意大利;
"东斯拉夫"->苏联->俄罗斯;
//单独的国家
node [shape = "record" style=dotted];
"不列颠的变迁" [label="不列颠的变迁:|伊比利亚人 ↓|克尔特 ↓|罗马 ↓|盎格鲁-撒克逊"];
"西班牙的变迁" [label="西班牙的变迁:|日尔曼\n(西哥特,苏维汇;\n汪达尔人途经去北非) ↓|阿拉伯人+北非摩尔人 ↓|收复失地运动+十字军 ↓|阿拉贡+卡提斯王国"];
}

4. 运行

$ dot -Tjpg /home/young/european.dot > /home/young/european.jpg


5.长春暴雪,更多照片在 [http://www.douban.com/photos/album/81340565/].

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值