I am trying to create in Latex a graph with a very large number of edges. Something similar to the attached image (taken from a paper by Bissyandé et al).
I've tried to simply draw a graph using tikzpicture and some of the edges, but how can I import the edges from an external file (CSV?!) and how to change the thickness of the edges based on a value?
Here's the starting point I've done till now:
\begin{tikzpicture}
\begin{pgfonlayer}{nodelayer}
\node [style=none] (0) at (-1.25, 4.5) {C};
\node [style=none] (1) at (3.5, 4.5) {C++};
\node [style=none] (2) at (3.5, 2.5) {HTML};
\node [style=none] (3) at (-2.75, 2.5) {JavaScript};
\node [style=none] (4) at (1.25, 5) {Python};
\node [style=none] (5) at (1.25, 1.75) {CSS};
\node [style=none] (6) at (3.75, 6) {Shell};
\node [style=none] (7) at (-2.25, 5.75) {Objective-C};
\node [style=none] (8) at (1.75, -0.5) {PHP};
\node [style=none] (9) at (5, 0) {Java};
\node [style=none] (10) at (5.25, 3.5) {Makefile};
\node [style=none] (11) at (-1.75, 0) {Ruby};
\end{pgfonlayer}
\begin{pgfonlayer}{edgelayer}
\draw (0.center) to (3.center);
\draw (0.center) to (2.center);
\draw (2.center) to (1.center);
\draw (3.center) to (1.center);
\draw (11.center) to (5.center);
\draw (11.center) to (3.center);
\draw (11.center) to (0.center);
\draw (8.center) to (0.center);
\draw (7.center) to (0.center);
\draw (4.center) to (5.center);
\draw (0.center) to (4.center);
\draw (4.center) to (1.center);
\draw (6.center) to (10.center);
\draw (10.center) to (9.center);
\draw (9.center) to (2.center);
\draw (2.center) to (10.center);
\draw (8.center) to (5.center);
\draw (8.center) to (2.center);
\end{pgfonlayer}
\end{tikzpicture}
Thanks!
Best Answer