如何在 LaTeX 中创建自己的图表

如何在 LaTeX 中创建自己的图表

想要在 Latex 中创建这张图片

你好,我想用 LaTeX 创建以下图片。我该怎么做?

答案1

这是尝试:使用 tikz 定义椭圆样式。一旦完成,就可以在节点定义中使用它。

\node[ell] at (x,y) (internal label) {label};

然后使用draw连接这两个节点。这里to[options]可以有很多选择。这里显示了一些。

选项:无——代表一行。

弯曲(左、右)= 角度——表示曲线。

in=angle1, out=angle2——用于具有不同入/出角度的曲线。

\draw[->] (A) to[options] (B)

在此处输入图片描述

代码

\documentclass[12pt]{article}
\usepackage[paper size={10cm,10cm}]{geometry}
\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}

\tikzset{
ell/.style={draw,ellipse,minimum height=3em,minimum width=5em},
}


\begin{tikzpicture}
\node[ell] at (0,0) (A) {A};
\node[ell] at (5,0) (B) {B};
\draw[->,>=stealth] (A) to[bend left=30] (B);
\draw[->,>=stealth] (B) to[bend left=30] (A);
\end{tikzpicture}
\end{document}

答案2

您可以在 LaTeX 内部使用环境创建图片picture。您还可以使用在 LaTeX 内部运行的包,例如PSTricks或者TikZ或者,你可以在了解 LaTeX 的独立程序中绘制内容,例如MetaPost或者Asymptote。我个人比较喜欢后者。

这是在 Asymptote 中尝试绘制的图表。(它使用node.asy模块,在我的 Ubuntu 机器上我曾经ASYMPTOTE_DIR="node-4.0/modules" asy -fpdf test调用 Asymptote。)

import node;
size(1inch,0);
// define edge style
defaultdrawstyle=drawstyle(p=fontsize(8pt)+fontcommand("\ttfamily"),
                           arrow=Arrow(TeXHead));

node a=scircle("\small $A$");
node b=scircle("\small $B$");

// calculate nodes position
real u=1cm;
a << eright(1.6u) << b;

draw(a,b);

draw(a..bend..b,
     b..bend..a);

它产生了这张图片。

在此处输入图片描述

答案3

我推荐你 PSTRICKS 和 PST-NODE 包

您可以看到PST 节点 PDF

------------ 示例 Mini,仅包含节点和线条 -------------- 在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
%
\usepackage[utf8]{inputenc}
\usepackage{eurosym}
\usepackage{pst-node}
\usepackage{pstricks-add}

\begin{document}

 \begin{pspicture}(-2,-2)(12,6) %\malla

 \rput(4.5,3){\circlenode{IL}{\textcolor{red}{I like}}}
 \rput(8.5,3.5){\circlenode{L}{\textcolor{blue}{\LaTeX}}}
 \rput(6.5,-0.5){\circlenode{G}{\textcolor{blue}{\footnotesize{Galicia(Spain)}}}}

 \ncarc[arcangle=44]{->}{IL}{L}

 \ncarc[arcangle=22]{->}{IL}{L}
 \nbput*{\small Yes}   % This line show error on compiling.

 \ncarc[arcangle=22]{->}{L}{IL}
 \ncput*{\small No}   % This l

 \ncarc[arcangle=8]{->}{L}{G}
 \ncarc[arcangle=-22,linewidth=0.05,linecolor=red]{->}{G}{L}

 \ncarc[arcangle=-22,linewidth=0.05,linecolor=red,linestyle=dashed]{->}{IL}{G}

 \rput(1,2){\circlenode{V}{\textcolor{blue}{Vigo}}}
 \rput(1,5){\circlenode{C}{\textcolor{magenta}{Coru\~na}}}

 \rput(3,2){\circlenode{S}{\textcolor{red}{Scq}}}
 \rput(3,5){\circlenode{P}{\textcolor{green}{Po}}}

 \ncarc[arcangle=33]{->}{V}{C}
 \nbput*{\small 45 \euro}   % This line show error on compiling.

 \ncarc[arcangle=11]{->}{S}{P}
 \ncput*{\small 25 \euro }

 \ncarc[arcangle=75]{->}{S}{P}
 \ncput*{\small{\blue 15 \euro} }

\rput(2,0){This is a test.}
\rput(8,-2){Esto é unha proba.}


 \end{pspicture}
\end{document} 

其他任何事物的例子: 在此处输入图片描述

\documentclass[pstricks,border=12pt]{standalone}
%
\usepackage[utf8]{inputenc}
\usepackage{eurosym}
\usepackage{pst-node}
\usepackage{pstricks-add}

\begin{document}

 \begin{pspicture}(-2,-2)(12,6) %\malla
% \psaxes{<->}(3,3)

 \rput(4.5,5){\circlenode{IL}{\textcolor{red}{I like}}}
 \rput(4.5,1.5){\circlenode{L}{\textcolor{blue}{\LaTeX}}}
 \ncarc[arcangle=33]{->}{IL}{L}
 \nbput*{\small Yes}   % This line show error on compiling.
 \ncarc[arcangle=33]{->}{L}{IL}
 \ncput*{\small No}   % This l

 \psaxes[linewidth=1.2pt,labels=none,ticks=none]{<->}(0,0)(-1,-1)(10,6)
 \psgrid[linecolor=lightgray,gridwidth=0.0075](0,0)(6,3)
 %subgriddots=5

 \rput(1,2){\circlenode{V}{\textcolor{blue}{Vigo}}}
 \rput(1,5){\circlenode{C}{\textcolor{magenta}{Coru\~na}}}
 \rput(3,2){\circlenode{S}{\textcolor{red}{Scq}}}
 \rput(3,5){\circlenode{P}{\textcolor{green}{Po}}}



 \ncarc[arcangle=33]{->}{V}{C}
 \nbput*{\small 45 \euro}   % This line show error on compiling.

 \ncarc[arcangle=11]{->}{S}{P}
 \ncput*{\small 25 \euro }

 \ncarc[arcangle=75]{->}{S}{P}
 \ncput*{\small{\blue 15 \euro} }

 \psbezier[linecolor=blue, linewidth=0.04,linestyle=dashed]{*-*}(4,-0.5)(6,6)(8,-2)(10,2)

\rput(8,3){Esto é unha proba.}

\pscurve[linecolor=blue, linewidth=0.065]{o-o}(6,5)(7,4)(8,5.8)(9,5.8)(10,4)(11,6)

\psdots[dotsize=0.4](10,2)

\pscustom{
\pscurve(8,-2)(10,2)(11.5,0)
%\psline(11.5,1)(11.5,-1)
\fill[fillstyle=solid,fillcolor=lightgray,opacity=0.74]}

\pscircle[linecolor=red,fillcolor=blue,fillstyle=solid,linewidth=0.05,linestyle=dashed,opacity=0.56](10,3){1.5}
\pscircle[linecolor=green,fillcolor=red,fillstyle=solid,linewidth=0.05,linestyle=dashed,opacity=0.56](8,3){1.5}

\rput(8,2){Esto é unha proba.}


 \end{pspicture}
\end{document} 

答案4

您应该考虑使用 Tikz/pgf。

在主要文档中可以找到很好的介绍:http://linorg.usp.br/CTAN/graphics/pgf/base/doc/pgfmanual.pdf

您所需要的内容可在第 47 页找到。

相关内容