The fiddle below is using vis.js as vis-network seems to be not yet available on cdnjs, however this is not working on the current vis-network version either.
As you can see on this jsfiddle not strictly hierarchical networks do not very well with vis atm. It seems that the levels given to the diferent nodes by vis are not quite.. right.
The first network shows nodes without the level argument given, the second one below with level given. Without explicit level the result is just wrong: crossing edges and even wrong levels. (In up direction a child node should never be above its parent node ^^)
The edge crossing seems to be known but it still would be nice if it gets fixed or at least if one could toggle if he want "optimazation but crossing" or "no crossing but no optimization" mentioned here.
Concerning the wrong direction for some nodes I did not find any related issue.
Im not sure if it can help here, but it seems like for larger graphs without level given the order of edges does alter the resulting graph significantly. (I will update the issue with an example as soon as I got one or maybe better open another one, as it may be a totally different thing.)
Without having looked into the code, I assume the graph engine isnt sorting the edges it is given properly in order to assign them their final level in the graph, thus nodes are placed on wrong levels resulting in wrongly directed arrows/edges.
The fiddle below is using vis.js as vis-network seems to be not yet available on cdnjs, however this is not working on the current vis-network version either.
As you can see on this jsfiddle not strictly hierarchical networks do not very well with vis atm. It seems that the levels given to the diferent nodes by vis are not quite.. right.
The first network shows nodes without the level argument given, the second one below with level given. Without explicit level the result is just wrong: crossing edges and even wrong levels. (In up direction a child node should never be above its parent node ^^)
The edge crossing seems to be known but it still would be nice if it gets fixed or at least if one could toggle if he want "optimazation but crossing" or "no crossing but no optimization" mentioned here.
Concerning the wrong direction for some nodes I did not find any related issue.
Im not sure if it can help here, but it seems like for larger graphs without level given the order of edges does alter the resulting graph significantly. (I will update the issue with an example as soon as I got one or maybe better open another one, as it may be a totally different thing.)
Without having looked into the code, I assume the graph engine isnt sorting the edges it is given properly in order to assign them their final level in the graph, thus nodes are placed on wrong levels resulting in wrongly directed arrows/edges.