如何在LaTeX中绘制图形?

76

首先,让我说一下,我正在使用LyX,虽然使用ERT也没有问题。

其次,在Latex中绘制像这样的简单图形的最简单方法是什么?

我看过一些有图表的文档,并且看过一些示例,但我无法弄清楚如何只是绘制一个简单的图形——需要哪些软件包等等?


https://tex.stackexchange.com/questions/57152/how-to-draw-graphs-in-latex - chb
5个回答

109

TikZ可以实现这个功能。

一个快速演示:

\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}

生成:

输入图像描述

更多示例请参阅 http://www.texample.net/tikz/examples/tag/graphs/

有关TikZ的更多信息,请访问http://sourceforge.net/projects/pgf/,那里可能会有安装指南。


2
具体来说,tkz-berge包可能会非常有用。 - Alex R
@Alex,太棒了!(尽管它在我已经发布的“更多示例”链接的底部:)) - Bart Kiers
1
回到这个问题上 - 是否需要指定坐标?它能自己处理吗? - Amir Rachum
另外,我如何添加带有标注的有向边? - Amir Rachum
1
@Amir Rachum,我在原始答案中发布的示例页面显示了一个包括边缘的图形(请参见“示例:Hagen的Petri网”)。是否可以像Graphviz那样进行自动布局,我不知道。 - Bart Kiers

3

除了(很好的)建议使用TikZ之外,您还可以使用gastex。在TikZ可用之前,我曾经使用过它,它也完成了它的工作。


3

2
dot2tex很好用,而且dot2texi LaTeX包非常棒。它允许您使用dot格式在.tex文件中内联定义图形,然后使用TikZ进行注释(请参见http://www.fauskes.net/code/dot2tex/documentation/#the-dot2texi-latex-package末尾的漂亮示例)。 - Mark

2
也许可以使用tikz来实现。

你可以帮助我安装这个包吗? - Amir Rachum
@Amir 前往sourceforge下载页面获取程序包,然后阅读说明文档 - 它们非常简单明了。 - zdav
3
@Amir:如何安装这个包取决于您的操作系统。在Ubuntu上,tikzpgf包提供。因此,在那里所要做的就是 sudo apt-get install pgf - unutbu
2
在Windows中,我什么都不用做。一旦我在导言区有了\usepackage{tikz},miktex就会完成所有其他工作。Mac也是一样的。不需要做任何事情,只需调用包即可。 - Vivi

0
根据我的经验,我通常使用外部程序生成图形(如Mathematica、Gnuplot、MATLAB等),并将图形导出为pdf或eps文件。然后我使用includegraphics命令将其插入文档中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接