我有一个由3种类型的边组成的UMLish图。组成,关联和专业化。我希望图表根据Composition和Specialization边缘按层次排列,但我主要关心的是我想要可读。我对布局的问题是重叠边缘使得无法跟踪边缘并理解图形。
是否有任何可以改善布局的设置?我用splines = ortho得到了一些改进的结果但是这个设置似乎导致了OSX上的点崩溃。
这是我的图表:
digraph G{
label="reference"
node [
fontname = "Bitstream Vera Sans"
fontsize = 8
shape = "record"
]
Node_84 [
label = "{Node_84|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\l}"
]
Node_82 [
label = "{Node_82|A\lB\lC\lD\l}"
]
Node_21 [
label = "{Node_21|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\l}"
]
Node_74 [
label = "{Node_74|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_59 [
label = "{Node_59|A\lB\lC\l}"
]
Node_8 [
label = "{Node_8|A\lB\lC\lD\lE\lF\lG\l}"
]
Node_58 [
label = "{Node_58|A\l}"
]
Node_30 [
label = "{Node_30|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\l}"
]
Node_4 [
label = "{Node_4|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\l}"
]
Node_53 [
label = "{Node_53|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\l}"
]
Node_48 [
label = "{Node_48|A\lB\lC\lD\lE\lF\lG\lH\lI\l}"
]
Node_56 [
label = "{Node_56|A\lB\lC\lD\lE\l}"
]
Node_80 [
label = "{Node_80|A\l}"
]
Node_65 [
label = "{Node_65|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_50 [
label = "{Node_50|A\lB\lC\lD\lE\lF\lG\lH\lI\l}"
]
Node_32 [
label = "{Node_32|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\l}"
]
Node_55 [
label = "{Node_55|A\lB\l}"
]
Node_96 [
label = "{Node_96|A\lB\lC\lD\l}"
]
Node_83 [
label = "{Node_83|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\l}"
]
Node_57 [
label = "{Node_57|A\lB\lC\lD\l}"
]
Node_86 [
label = "{Node_86|A\lB\lC\l}"
]
Node_73 [
label = "{Node_73|A\lB\lC\lD\lE\lF\lG\lH\lI\l}"
]
Node_12 [
label = "{Node_12|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_69 [
label = "{Node_69|A\lB\lC\l}"
]
Node_1 [
label = "{Node_1|A\l}"
]
Node_64 [
label = "{Node_64|A\lB\lC\lD\lE\lF\l}"
]
Node_61 [
label = "{Node_61|A\lB\lC\lD\lE\l}"
]
Node_17 [
label = "{Node_17|A\lB\lC\lD\lE\l}"
]
Node_6 [
label = "{Node_6|A\lB\lC\lD\lE\l}"
]
Node_3 [
label = "{Node_3|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\l}"
]
Node_42 [
label = "{Node_42|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\l}"
]
Node_45 [
label = "{Node_45|A\lB\lC\lD\l}"
]
Node_19 [
label = "{Node_19|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\l}"
]
Node_63 [
label = "{Node_63|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\l}"
]
Node_7 [
label = "{Node_7|}"
]
Node_91 [
label = "{Node_91|A\lB\lC\lD\lE\lF\lG\l}"
]
Node_76 [
label = "{Node_76|A\l}"
]
Node_34 [
label = "{Node_34|A\lB\lC\lD\lE\lF\lG\lH\l}"
]
Node_62 [
label = "{Node_62|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_46 [
label = "{Node_46|A\lB\lC\lD\lE\lF\lG\l}"
]
Node_11 [
label = "{Node_11|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_26 [
label = "{Node_26|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\l}"
]
Node_54 [
label = "{Node_54|A\lB\lC\lD\lE\lF\lG\lH\lI\l}"
]
Node_94 [
label = "{Node_94|A\l}"
]
Node_51 [
label = "{Node_51|A\l}"
]
Node_44 [
label = "{Node_44|A\lB\lC\lD\lE\l}"
]
Node_70 [
label = "{Node_70|A\lB\lC\lD\lE\lF\lG\lH\l}"
]
Node_18 [
label = "{Node_18|A\lB\lC\l}"
]
Node_41 [
label = "{Node_41|A\lB\lC\lD\lE\lF\lG\lH\lI\l}"
]
Node_72 [
label = "{Node_72|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_67 [
label = "{Node_67|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_92 [
label = "{Node_92|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\l}"
]
Node_14 [
label = "{Node_14|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_85 [
label = "{Node_85|A\lB\l}"
]
Node_15 [
label = "{Node_15|A\lB\l}"
]
Node_79 [
label = "{Node_79|A\lB\lC\l}"
]
Node_49 [
label = "{Node_49|}"
]
Node_10 [
label = "{Node_10|A\lB\l}"
]
Node_0 [
label = "{Node_0|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\l}"
]
Node_13 [
label = "{Node_13|A\lB\l}"
]
Node_2 [
label = "{Node_2|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\l}"
]
Node_88 [
label = "{Node_88|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_52 [
label = "{Node_52|A\lB\lC\lD\lE\lF\lG\l}"
]
Node_23 [
label = "{Node_23|A\lB\lC\lD\lE\l}"
]
Node_39 [
label = "{Node_39|A\lB\l}"
]
Node_87 [
label = "{Node_87|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\l}"
]
Node_93 [
label = "{Node_93|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\l}"
]
Node_20 [
label = "{Node_20|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\l}"
]
Node_35 [
label = "{Node_35|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_66 [
label = "{Node_66|A\lB\lC\lD\lE\l}"
]
Node_5 [
label = "{Node_5|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\l}"
]
Node_71 [
label = "{Node_71|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\l}"
]
Node_22 [
label = "{Node_22|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\l}"
]
Node_27 [
label = "{Node_27|A\l}"
]
Node_33 [
label = "{Node_33|A\lB\lC\lD\lE\lF\lG\lH\l}"
]
Node_24 [
label = "{Node_24|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\l}"
]
Node_16 [
label = "{Node_16|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\lY\lZ\l}"
]
Node_75 [
label = "{Node_75|A\l}"
]
Node_38 [
label = "{Node_38|A\lB\lC\lD\l}"
]
Node_43 [
label = "{Node_43|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\lX\l}"
]
Node_78 [
label = "{Node_78|A\lB\lC\lD\lE\lF\l}"
]
Node_68 [
label = "{Node_68|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\l}"
]
Node_89 [
label = "{Node_89|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\l}"
]
Node_29 [
label = "{Node_29|A\lB\lC\lD\lE\lF\lG\lH\l}"
]
Node_60 [
label = "{Node_60|A\l}"
]
Node_90 [
label = "{Node_90|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\l}"
]
Node_31 [
label = "{Node_31|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\l}"
]
Node_28 [
label = "{Node_28|A\lB\lC\l}"
]
Node_81 [
label = "{Node_81|A\lB\lC\lD\lE\l}"
]
Node_37 [
label = "{Node_37|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\l}"
]
Node_95 [
label = "{Node_95|A\lB\lC\lD\lE\l}"
]
Node_9 [
label = "{Node_9|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\lL\lM\lN\lO\lP\lQ\lR\lS\lT\lU\lV\lW\l}"
]
Node_47 [
label = "{Node_47|A\l}"
]
Node_40 [
label = "{Node_40|A\lB\lC\lD\lE\lF\lG\lH\lI\lJ\lK\l}"
]
Node_25 [
label = "{Node_25|A\lB\l}"
]
Node_36 [
label = "{Node_36|A\lB\lC\l}"
]
edge [
dir="both"
arrowtail="diamond"
arrowhead="open"
]
Node_84 -> Node_85[taillabel="*"]
Node_84 -> Node_86[taillabel="*"]
Node_74 -> Node_60[taillabel="*"]
Node_48 -> Node_72[taillabel="*"]
Node_65 -> Node_58[taillabel="*"]
Node_50 -> Node_51[taillabel="*"]
Node_83 -> Node_9[taillabel="*"]
Node_83 -> Node_12[taillabel="*"]
Node_83 -> Node_14[taillabel="*"]
Node_83 -> Node_54[taillabel="*"]
Node_83 -> Node_78[taillabel="*"]
Node_83 -> Node_79[taillabel="*"]
Node_83 -> Node_80[taillabel="*"]
Node_83 -> Node_81[taillabel="*"]
Node_83 -> Node_82[taillabel="*"]
Node_12 -> Node_13[taillabel="*"]
Node_17 -> Node_18[taillabel="*"]
Node_3 -> Node_4[taillabel="*"]
Node_3 -> Node_5[taillabel="*"]
Node_42 -> Node_32[taillabel="*"]
Node_19 -> Node_41[taillabel="*"]
Node_91 -> Node_1[taillabel="*"]
Node_11 -> Node_42[taillabel="*"]
Node_54 -> Node_55[taillabel="*"]
Node_70 -> Node_38[taillabel="*"]
Node_70 -> Node_71[taillabel="*"]
Node_72 -> Node_0[taillabel="*"]
Node_72 -> Node_3[taillabel="*"]
Node_72 -> Node_4[taillabel="*"]
Node_72 -> Node_5[taillabel="*"]
Node_72 -> Node_11[taillabel="*"]
Node_72 -> Node_17[taillabel="*"]
Node_72 -> Node_19[taillabel="*"]
Node_72 -> Node_21[taillabel="*"]
Node_72 -> Node_22[taillabel="*"]
Node_72 -> Node_31[taillabel="*"]
Node_72 -> Node_35[taillabel="*"]
Node_72 -> Node_38[taillabel="*"]
Node_72 -> Node_39[taillabel="*"]
Node_72 -> Node_47[taillabel="*"]
Node_72 -> Node_48[taillabel="*"]
Node_72 -> Node_50[taillabel="*"]
Node_72 -> Node_56[taillabel="*"]
Node_72 -> Node_57[taillabel="*"]
Node_72 -> Node_61[taillabel="*"]
Node_72 -> Node_64[taillabel="*"]
Node_72 -> Node_66[taillabel="*"]
Node_72 -> Node_68[taillabel="*"]
Node_72 -> Node_69[taillabel="*"]
Node_72 -> Node_70[taillabel="*"]
Node_72 -> Node_72[taillabel="*"]
Node_72 -> Node_73[taillabel="*"]
Node_72 -> Node_75[taillabel="*"]
Node_72 -> Node_76[taillabel="*"]
Node_72 -> Node_37[taillabel="*"]
Node_72 -> Node_87[taillabel="*"]
Node_72 -> Node_89[taillabel="*"]
Node_72 -> Node_91[taillabel="*"]
Node_72 -> Node_93[taillabel="*"]
Node_72 -> Node_94[taillabel="*"]
Node_72 -> Node_95[taillabel="*"]
Node_67 -> Node_59[taillabel="*"]
Node_14 -> Node_15[taillabel="*"]
Node_35 -> Node_0[taillabel="*"]
Node_35 -> Node_3[taillabel="*"]
Node_35 -> Node_11[taillabel="*"]
Node_35 -> Node_19[taillabel="*"]
Node_35 -> Node_73[taillabel="*"]
Node_35 -> Node_87[taillabel="*"]
Node_35 -> Node_89[taillabel="*"]
Node_5 -> Node_92[taillabel="*"]
Node_5 -> Node_6[taillabel="*"]
Node_5 -> Node_8[taillabel="*"]
Node_71 -> Node_2[taillabel="*"]
Node_71 -> Node_20[taillabel="*"]
Node_71 -> Node_33[taillabel="*"]
Node_71 -> Node_34[taillabel="*"]
Node_71 -> Node_40[taillabel="*"]
Node_71 -> Node_52[taillabel="*"]
Node_71 -> Node_53[taillabel="*"]
Node_71 -> Node_90[taillabel="*"]
Node_22 -> Node_23[taillabel="*"]
Node_22 -> Node_24[taillabel="*"]
Node_22 -> Node_25[taillabel="*"]
Node_22 -> Node_26[taillabel="*"]
Node_22 -> Node_27[taillabel="*"]
Node_22 -> Node_28[taillabel="*"]
Node_22 -> Node_29[taillabel="*"]
Node_22 -> Node_30[taillabel="*"]
Node_43 -> Node_44[taillabel="*"]
Node_43 -> Node_45[taillabel="*"]
Node_43 -> Node_46[taillabel="*"]
Node_68 -> Node_21[taillabel="*"]
Node_68 -> Node_38[taillabel="*"]
Node_68 -> Node_57[taillabel="*"]
Node_68 -> Node_64[taillabel="*"]
Node_68 -> Node_69[taillabel="*"]
Node_68 -> Node_70[taillabel="*"]
Node_89 -> Node_41[taillabel="*"]
Node_31 -> Node_3[taillabel="*"]
Node_31 -> Node_39[taillabel="*"]
Node_37 -> Node_36[taillabel="*"]
Node_37 -> Node_43[taillabel="*"]
Node_37 -> Node_7[taillabel="*"]
Node_95 -> Node_96[taillabel="*"]
Node_9 -> Node_10[taillabel="*"]
edge [
dir="both"
arrowtail="onormal"
arrowhead="none"
]
Node_37 -> Node_84
Node_7 -> Node_21
Node_7 -> Node_74
Node_49 -> Node_48
Node_7 -> Node_65
Node_7 -> Node_83
Node_7 -> Node_6
Node_7 -> Node_63
Node_7 -> Node_62
Node_7 -> Node_67
Node_7 -> Node_88
Node_7 -> Node_16
Node_37 -> Node_36
edge [
dir="both"
arrowtail="none"
arrowhead="none"
constraint=false
color="blue"
]
Node_84 -> Node_56[taillabel="*"]
Node_21 -> Node_6[taillabel="*"]
Node_21 -> Node_61[taillabel="*"]
Node_21 -> Node_63[taillabel="*"]
Node_53 -> Node_71[taillabel="*"]
Node_48 -> Node_41[taillabel="*"]
Node_65 -> Node_66[taillabel="*"]
Node_50 -> Node_56[taillabel="*"]
Node_6 -> Node_5[taillabel="*"]
Node_6 -> Node_61[taillabel="*"]
Node_6 -> Node_71[taillabel="*"]
Node_63 -> Node_38[taillabel="*"]
Node_63 -> Node_91[taillabel="*"]
Node_34 -> Node_71[taillabel="*"]
Node_72 -> Node_37[taillabel="?"]
Node_72 -> Node_76[taillabel="*"]
Node_2 -> Node_71[taillabel="*"]
Node_52 -> Node_71[taillabel="*"]
Node_20 -> Node_71[taillabel="*"]
Node_71 -> Node_38[taillabel="*"]
Node_71 -> Node_70[taillabel="*"]
Node_33 -> Node_71[taillabel="*"]
Node_90 -> Node_71[taillabel="*"]
Node_37 -> Node_17[taillabel="*"]
Node_37 -> Node_41[taillabel="*"]
Node_37 -> Node_47[taillabel="*"]
Node_37 -> Node_50[taillabel="*"]
Node_37 -> Node_73[taillabel="*"]
Node_37 -> Node_94[taillabel="*"]
Node_40 -> Node_71[taillabel="*"]
}