How to draw a graph in LaTeX?
Asked Answered
R

5

76

First of all, let me say I'm using LyX, though I have no problem using ERT.

Secondly, what is the most simplest way to draw a simple graph like this in Latex? alt text

I've seen some documents with graphs and I've seen some examples, but I couldn't figure out how to just draw a simple graph - what packages do I need, etc?

Robertaroberto answered 6/6, 2010 at 19:3 Comment(1)
tex.stackexchange.com/questions/57152/…Pilcomayo
A
109

TikZ can do this.

A quick demo:

\documentclass{article}

\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
  [scale=.8,auto=left,every node/.style={circle,fill=blue!20}]
  \node (n6) at (1,10) {6};
  \node (n4) at (4,8)  {4};
  \node (n5) at (8,9)  {5};
  \node (n1) at (11,8) {1};
  \node (n2) at (9,6)  {2};
  \node (n3) at (5,5)  {3};

  \foreach \from/\to in {n6/n4,n4/n5,n5/n1,n1/n2,n2/n5,n2/n3,n3/n4}
    \draw (\from) -- (\to);

\end{tikzpicture}

\end{document}

produces:

enter image description here

More examples @ http://www.texample.net/tikz/examples/tag/graphs/

More information about TikZ: http://sourceforge.net/projects/pgf/ where I guess an installation guide will also be present.

Afterlife answered 6/6, 2010 at 20:4 Comment(5)
Specifically, the tkz-berge package may be especially useful.Turbosupercharger
@Alex, great link! (even though it is at the bottom of the More examples link I already posted :))Afterlife
coming back to this question - is it necessary to specify the coordinates? Can it handle on itself somehow?Robertaroberto
Also, how can I add directed edges with notations on them?Robertaroberto
@Amir Rachum, the examples page posted in my original answer shows a graph including edges (see "Example: A Petri-net for Hagen"). Whether it is possible to do automatic layout, as Graphviz does, I don't know.Afterlife
S
3

Aside from the (excellent) suggestion to use TikZ, you could use gastex. I used this before TikZ was available and it did its job too.

Subminiaturize answered 6/6, 2010 at 20:7 Comment(0)
L
3

I have used graphviz ( https://www.graphviz.org/gallery ) together with LaTeX using dot command to generate graphs in PDF and includegraphics to include those.

If graphviz produces what you are aiming at, this might be the best way to integrate: dot2tex: https://ctan.org/pkg/dot2tex?lang=en

Liv answered 6/6, 2010 at 20:58 Comment(1)
dot2tex is good, and the dot2texi LaTeX package is very good. It allows you to define your graph inline in your .tex file using the dot format, and then to annotate it with TikZ (see the nice example at the end of fauskes.net/code/dot2tex/documentation/…).Hightail
T
2

Perhaps use tikz.

Tallulah answered 6/6, 2010 at 19:8 Comment(4)
Any way you can help me get this package installed?Robertaroberto
@Amir Go to the sourceforge download page to get the package, then read the directions - they are pretty straight forward.Occlusive
@Amir: How to install the package depends on your OS. On Ubuntu, tikz is provided by the pgf package. So all one has to do there is sudo apt-get install pgf.Tallulah
In Windows I didn't have to do anything. Once I had the \usepackage{tikz} in my preamble, miktex did all the rest. Same with mac. Nothing had to be done, I just had to call the package.Uela
O
0

In my experience, I always just use an external program to generate the graph (mathematica, gnuplot, matlab, etc.) and export the graph as a pdf or eps file. Then I include it into the document with includegraphics.

Occlusive answered 6/6, 2010 at 19:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.