29

I need draw some picture, but I don't know how do that.

First, the simple graph with basic shapes, arrow,.... enter image description here

And then, draw a picture with math symbol or equation in math environment. Like that: enter image description here

Please help me draw two picture. And if you don't mind, please show me some tools which can help me draw easily and generate to latex code, or some document help me learnt quickly. Thanks for your help

jub0bs
  • 58,916
phuong
  • 871

1 Answers1

60

One possibility; the first diagram was drawn using a matrix; the second one, using chains:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,chains,positioning,decorations.pathreplacing,arrows}

\begin{document}

\begin{tikzpicture}[ plain/.style={ draw=none, fill=none, }, net/.style={ matrix of nodes, nodes={ draw, circle, inner sep=10pt }, nodes in empty cells, column sep=2cm, row sep=-9pt }, >=latex ] \matrix[net] (mat) { |[plain]| \parbox{1.3cm}{\centering Input\layer} & |[plain]| \parbox{1.3cm}{\centering Hidden\layer} & |[plain]| \parbox{1.3cm}{\centering Output\layer} \ & |[plain]| \ |[plain]| & \ & |[plain]| \ |[plain]| & |[plain]| \ & & \ |[plain]| & |[plain]| \ & |[plain]| \ |[plain]| & \ & |[plain]| \ }; \foreach \ai [count=\mi ]in {2,4,...,10} \draw[<-] (mat-\ai-1) -- node[above] {Input \mi} +(-2cm,0); \foreach \ai in {2,4,...,10} {\foreach \aii in {3,6,9} \draw[->] (mat-\ai-1) -- (mat-\aii-2); } \foreach \ai in {3,6,9} \draw[->] (mat-\ai-2) -- (mat-6-3); \draw[->] (mat-6-3) -- node[above] {Ouput} +(2cm,0); \end{tikzpicture}

\begin{tikzpicture}[ init/.style={ draw, circle, inner sep=2pt, font=\Huge, join = by -latex }, squa/.style={ draw, inner sep=2pt, font=\Large, join = by -latex }, start chain=2,node distance=13mm ] \node[on chain=2] (x2) {$x_2$}; \node[on chain=2,join=by o-latex] {$w_2$}; \node[on chain=2,init] (sigma) {$\displaystyle\Sigma$}; \node[on chain=2,squa,label=above:{\parbox{2cm}{\centering Activate \ function}}]
{$f$}; \node[on chain=2,label=above:Output,join=by -latex] {$y$}; \begin{scope}[start chain=1] \node[on chain=1] at (0,1.5cm) (x1) {$x_1$}; \node[on chain=1,join=by o-latex] (w1) {$w_1$}; \end{scope} \begin{scope}[start chain=3] \node[on chain=3] at (0,-1.5cm) (x3) {$x_3$}; \node[on chain=3,label=below:Weights,join=by o-latex] (w3) {$w_3$}; \end{scope} \node[label=above:\parbox{2cm}{\centering Bias \ $b$}] at (sigma|-w1) (b) {};

\draw[-latex] (w1) -- (sigma); \draw[-latex] (w3) -- (sigma); \draw[o-latex] (b) -- (sigma);

\draw[decorate,decoration={brace,mirror}] (x1.north west) -- node[left=10pt] {Inputs} (x3.south west); \end{tikzpicture}

\end{document}

enter image description here

Stephen
  • 3,826
Gonzalo Medina
  • 505,128
  • Thanks. can you introduce me some document or software about tikz? – phuong Sep 10 '13 at 06:20
  • @phuong the pgf manual has numerous examples and some nice inroductory tutorials: http://mirrors.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf There's also a shorter document: http://cremeronline.com/LaTeX/minimaltikz.pdf (I've never used this last one). – Gonzalo Medina Sep 10 '13 at 12:55
  • Thanks you for your document. It's very useful. I just need 1 requirement. on the second graph, I want to remove a vertical line of circle. I tried hard but not done. Would you please help me again? – phuong Sep 10 '13 at 17:01
  • @phuong Sure! The problem is I am not sure exactly which line you are referring to. Do you want to suppress the arrow going from "Bias b" to the "Sigma"? – Gonzalo Medina Sep 10 '13 at 17:49
  • No, not bias. I want to remove circles between x_1 & w_1; x_2 &w_2; x_3 and W_3. You can see again my graph on question to know exactly. – phuong Sep 11 '13 at 06:09
  • @phuong Ah, now I see. Please see my updated answer. Is it that what you wanted to achieve? – Gonzalo Medina Sep 11 '13 at 13:05
  • @ Gonzalo Medina I'm so sorry, I wrote wrong, my mistake. I don't want to remove circle. I just want remove the first vector from x_1, x_2, x_3 to circle. keep circle, don't remove it. It's so difficult to write by word. If you don't mind, Please look again my second graph. One more time, I'm sorry about my mistake. Sorry to waste your time. – phuong Sep 11 '13 at 18:17
  • @phuong No problem. I updated my answer. I hope this time the result is what you expected. – Gonzalo Medina Sep 11 '13 at 18:40
  • Don't know why, but the first diagram doesn't compile on my end. – Firebug Nov 08 '19 at 17:26
  • Figured it is due to beamer, see https://tex.stackexchange.com/questions/15093/single-ampersand-used-with-wrong-catcode-error-using-tikz-matrix-in-beamer Either declare the frame fragile or use ampersand replacement – Firebug Nov 08 '19 at 17:36