|
24 | 24 | DFGPlotProps() = DFGPlotProps( (var=colorant"seagreen", fac=colorant"cyan3"),
|
25 | 25 | (var=1.0, fac=0.3),
|
26 | 26 | (var=:box, fac=:elipse),
|
27 |
| - spring_layout, |
| 27 | + spectral_layout, |
28 | 28 | true)
|
29 | 29 |
|
30 | 30 |
|
31 |
| -function dfgplot(dfg::MetaGraphsDFG) |
| 31 | +function dfgplot(dfg::LightDFG, p::DFGPlotProps = DFGPlotProps()) |
32 | 32 |
|
33 |
| - nodesize = [has_prop(dfg.g,i,:factor) ? 0.3 : 1.0 for i=vertices(dfg.g)] |
34 |
| - nodelabel = [has_prop(dfg.g,i,:factor) ? "" : string(get_prop(dfg.g,i,:label)) for i=vertices(dfg.g)] |
35 |
| - nodefillc = [has_prop(dfg.g,i,:factor) ? colorant"seagreen" : colorant"cyan3" for i=vertices(dfg.g)] |
| 33 | + nodetypes = [haskey(dfg.g.variables, s) for s in dfg.g.labels] |
36 | 34 |
|
37 |
| - gplot(dfg.g, nodelabel=nodelabel, nodesize=nodesize, nodefillc=nodefillc, layout=spectral_layout) |
| 35 | + nodesize = [isVar ? p.nodesize.var : p.nodesize.fac for isVar in nodetypes] |
| 36 | + # nodelabel = [isVar ? string(get_prop(dfg.g,i,:label)) : "" for (i,isVar) in enumerate(nodetypes)] |
| 37 | + if p.drawlabels |
| 38 | + nodelabel = [nodetypes[i] ? string(s) : "" for (i,s) in enumerate(dfg.g.labels)] |
| 39 | + else |
| 40 | + nodelabel = nothing |
| 41 | + end |
| 42 | + |
| 43 | + nodefillc = [isVar ? p.nodefillc.var : p.nodefillc.fac for isVar in nodetypes] |
| 44 | + |
| 45 | + gplot(dfg.g, nodelabel=nodelabel, nodesize=nodesize, nodefillc=nodefillc, layout=p.layout) |
38 | 46 |
|
39 | 47 | end
|
40 | 48 |
|
41 |
| -function gplot(dfg::MetaGraphsDFG; keyargs...) |
42 |
| - gplot(dfg.g; keyargs...) |
| 49 | +function dfgplot(dfg::MetaGraphsDFG, p::DFGPlotProps = DFGPlotProps()) |
| 50 | + |
| 51 | + nodesize = [has_prop(dfg.g,i,:factor) ? p.nodesize.fac : p.nodesize.var for i=vertices(dfg.g)] |
| 52 | + if p.drawlabels |
| 53 | + nodelabel = [has_prop(dfg.g,i,:factor) ? "" : string(get_prop(dfg.g,i,:label)) for i=vertices(dfg.g)] |
| 54 | + else |
| 55 | + nodelabel = nothing |
| 56 | + end |
| 57 | + nodefillc = [has_prop(dfg.g,i,:factor) ? p.nodefillc.fac : p.nodefillc.var for i=vertices(dfg.g)] |
| 58 | + |
| 59 | + gplot(dfg.g, nodelabel=nodelabel, nodesize=nodesize, nodefillc=nodefillc, layout=p.layout) |
| 60 | + |
43 | 61 | end
|
44 | 62 |
|
45 |
| -function dfgplot(dfg::AbstractDFG) |
| 63 | +function dfgplot(dfg::AbstractDFG, p::DFGPlotProps = DFGPlotProps()) |
46 | 64 | # TODO implement convert functions
|
47 | 65 | @warn "TODO Implement convert"
|
48 | 66 | ldfg = MetaGraphsDFG{AbstractParams}()
|
49 | 67 | DistributedFactorGraphs._copyIntoGraph!(dfg, ldfg, union(getVariableIds(dfg), getFactorIds(dfg)), true)
|
50 | 68 |
|
51 |
| - nodesize = [has_prop(ldfg.g,i,:factor) ? 0.3 : 1.0 for i=vertices(ldfg.g)] |
52 |
| - nodelabel = [has_prop(ldfg.g,i,:factor) ? "" : string(get_prop(ldfg.g,i,:label)) for i=vertices(ldfg.g)] |
53 |
| - nodefillc = [has_prop(ldfg.g,i,:factor) ? colorant"seagreen" : colorant"cyan3" for i=vertices(ldfg.g)] |
| 69 | + dfgplot(ldfg, p) |
54 | 70 |
|
55 |
| - gplot(ldfg.g, nodelabel=nodelabel, nodesize=nodesize, nodefillc=nodefillc, layout=spectral_layout) |
| 71 | +end |
| 72 | + |
| 73 | +function gplot(dfg::MetaGraphsDFG; keyargs...) |
| 74 | + gplot(dfg.g; keyargs...) |
| 75 | +end |
56 | 76 |
|
| 77 | +function gplot(dfg::LightDFG; keyargs...) |
| 78 | + gplot(dfg.g; keyargs...) |
57 | 79 | end
|
58 | 80 |
|
59 | 81 | end
|
0 commit comments