I am using visNetwork (for its dynamic visualizations) to visualize a bipartite graph with 47 nodes.
visNetwork(nodes, edges) %>%
visIgraphLayout(layout = 'layout.davidson.harel')
The image above is what it looks like currently and it's the best we could come up with after trying a few layouts (Fruchterman Reingold etc). The problem I have with this is that the edges tend to be so long, so some node pairs are very far apart. Can anyone suggest a layout that prevents nodes from overlapping with edges?