ข้ามไปยังเนื้อหา

โหนด ลูกศร และแผนภาพใน TikZ

วางกล่องแต่ละกล่องด้วย \node[draw] (name) {text}; จัดตำแหน่งกล่องถัดไปด้วยไลบรารี positioning (right=of name) แล้วเชื่อมกล่องด้วย \draw[->] (a) -- (b);

โหนด

โหนดคือข้อความชิ้นหนึ่งที่จุดหนึ่ง ซึ่งจะมีกรอบหรือไม่ก็ได้ draw ให้เส้นขอบ fill ให้พื้นหลัง และ circle หรือ ellipse ให้รูปทรงกลมมน (ค่าเริ่มต้นคือ rectangle) ชื่อในวงเล็บช่วยให้คุณอ้างถึงโหนดภายหลังได้

โหนดที่มีรูปทรง สีพื้น และขนาดต่าง ๆ

LaTeXส่วนนำ: \usepackage{tikz}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \node[draw] (a) at (0,0) {plain box};
  \node[draw, rounded corners, fill=blue!10] (b) at (3,0) {rounded};
  \node[draw, circle, fill=yellow!40] (c) at (5.5,0) {44};
  \node[draw, ellipse] (d) at (8,0) {ellipse};
  \node[draw, minimum width=2.5cm, minimum height=1cm] at (1,-1.6) {fixed size};
  \node[draw, text width=2.6cm, align=center] at (5,-1.6) {text that wraps onto two lines};
\end{tikzpicture}

ลูกศรระหว่างโหนด

\draw[->] (a) -- (b); วาดลูกศรจากโหนด a ไปยังโหนด b เส้นจะเริ่มและสิ้นสุดที่ขอบของโหนด ไม่ใช่ที่จุดศูนย์กลาง -| และ |- วาดเส้นเชื่อมแบบหักมุมฉาก

ผังงานขนาดเล็กด้วยไลบรารี positioning

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
    node distance=1.2cm and 1.6cm,
    box/.style={draw, rounded corners, fill=blue!8, minimum width=2.2cm, minimum height=0.8cm},
    >={Stealth},
  ]
  \node[box] (in) {Read data};
  \node[box, right=of in] (clean) {Clean};
  \node[box, right=of clean] (fit) {Fit model};
  \node[draw, circle, below=of clean] (ok) {OK?};
  \draw[->] (in) -- (clean);
  \draw[->] (clean) -- (fit);
  \draw[->] (fit) |- (ok);
  \draw[->] (ok) -| node[pos=0.75, left] {no} (in);
\end{tikzpicture}
\end{document}

right=of in วางโหนดไว้ทางขวาของ in โดยเว้นระยะตาม node distance ทิศทางอื่น ได้แก่ left, above, below และแนวทแยงอย่าง above right ส่วน right=2cm of in กำหนดระยะสำหรับโหนดเดียว

ป้ายกำกับบนลูกศรและโหนด

node ที่เขียนไว้กลางเส้นทางจะเป็นป้ายกำกับของเส้นทางนั้น above, below, left, right กำหนดด้าน และ midway, near start, near end หรือ pos=0.3 กำหนดตำแหน่งตามเส้นทาง ส่วน label=below:text เพิ่มป้ายกำกับให้โหนด

แผนภาพสถานะที่มีเส้นเชื่อมโค้งพร้อมป้ายกำกับ

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[state/.style={draw, circle, minimum size=1cm}, >={Stealth}, node distance=2.4cm]
  \node[state, label=below:start] (s0) {$q_0$};
  \node[state, right=of s0] (s1) {$q_1$};
  \node[state, right=of s1, fill=green!15] (s2) {$q_2$};
  \draw[->] (s0) to[bend left] node[above] {$a$} (s1);
  \draw[->] (s1) to[bend left] node[below] {$b$} (s0);
  \draw[->] (s1) -- node[above] {$a$} (s2);
\end{tikzpicture}
\end{document}

จุดยึด

ทุกโหนดมีจุดยึดบนขอบ ได้แก่ north, south, east, west และมุมอย่าง north east (box.north) คือจุดที่กึ่งกลางด้านบนของ box

ลูกศรจากจุดยึดของโหนด

LaTeXส่วนนำ: \usepackage{tikz}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \node[draw, minimum width=3cm, minimum height=1cm] (box) {Server};
  \draw[->] (box.north) -- ++(0,0.7) node[above] {north};
  \draw[->] (box.east) -- ++(1,0) node[right] {east};
  \draw[->] (box.south west) -- ++(-0.6,-0.6) node[below left] {south west};
  \node[anchor=west] at (box.south east) {\small (anchor=west)};
\end{tikzpicture}

anchor=west ที่โหนดจะวางโหนดให้จุดยึดด้านตะวันตก (ซ้าย) อยู่ที่จุดที่กำหนด

หัวลูกศร

ตัวเลือกหัวลูกศรใน Scissor LaTeX
->, <-, <->หัวลูกศรเริ่มต้นของ TikZใช้ได้
-stealth, -latexหัวลูกศร stealth และ LaTeX แบบดั้งเดิมใช้ได้
-{Stealth}, -{Latex} (arrows.meta)หัวลูกศรแบบใหม่ใช้ได้
|-|ขีดตั้งที่ปลายแต่ละด้านใช้ได้
>={Stealth} ที่ภาพหัวลูกศรที่ -> ใช้ใช้ได้
ตัวเลือกของหัวลูกศร เช่น -{Stealth[length=3mm]}ขนาดและรูปทรงของหัวลูกศรใช้ได้บางส่วน: หัวลูกศรวาดในขนาดเริ่มต้น

ขนาดหัวลูกศรใกล้เคียงกับ TikZ แต่ไม่เหมือนกันทุกประการ

สิ่งที่ยังไม่รองรับ

ความสามารถเหล่านี้คอมไพล์ได้ในการติดตั้ง TeX แต่ไม่ได้ที่นี่ ส่วนใหญ่จะแจ้งไว้ในแท็บ Problems

ความสามารถสิ่งที่เกิดขึ้นใน Scissor LaTeXสิ่งที่ควรเขียนแทน
\matrix (และ matrix of nodes)ภาพทั้งภาพกลายเป็นกรอบเส้นประพร้อมข้อความแจ้งวางโหนดด้วย at (x,y) หรือ positioning
\picภาพทั้งภาพกลายเป็นกรอบเส้นประพร้อมข้อความแจ้งวาดซ้ำใน scope ที่มี shift
การตกแต่ง (decorate, decoration=...)ถูกละเว้นพร้อมข้อความแจ้ง เส้นทางถูกวาดแบบธรรมดาเส้นทางธรรมดาหรือเส้นประ
รูปทรงโหนดจาก shapes.geometric (diamond, trapezium ...)วาดเป็นสี่เหลี่ยม พร้อมข้อความแจ้งrectangle, circle หรือ ellipse
เส้น doubleถูกละเว้นพร้อมข้อความแจ้งโหนดหรือเส้นทางสองเส้น
to[loop above] (วงวนบนโหนดเดียว)ไม่มีการวาดวงวนและไม่มีข้อความแจ้ง ป้ายกำกับจะอยู่บนโหนดarc หรือเส้นโค้ง .. controls .. จากขอบของโหนด
pin=แสดงข้อความของ pin แต่ไม่มีเส้น pinlabel=
pos= บนเส้นทาง -| หรือ |-ป้ายกำกับวางตามช่วงที่สองเท่านั้น pos=0.25 จึงไปอยู่ใกล้มุมกำกับช่วงที่สองด้วย pos=0.75 หรือแยกเส้นทางเป็นสองเส้น
tikz-cd, circuitikz, forestภาพถูกละไว้ พร้อมข้อความแจ้งTikZ แบบง่าย หรือรูปภาพ

\matrix กลายเป็นกรอบแทนที่

LaTeXส่วนนำ: \usepackage{tikz}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \matrix[draw] {
    \node {a}; & \node {b}; \\
    \node {c}; & \node {d}; \\
  };
\end{tikzpicture}

แท็บปัญหา: \matrix in a picture is not supported yet

โหนดรูปข้าวหลามตัดถูกวาดเป็นสี่เหลี่ยม

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
  \node[draw, diamond] at (0,0) {Yes?};
  \node[draw, ellipse] at (2.5,0) {ellipse works};
\end{tikzpicture}
\end{document}

แท็บปัญหา: TikZ node option 'diamond' is not supported yet

คู่มือ TikZ (ในแพ็กเกจ PGF) อธิบายโหนด ไลบรารี positioning และหัวลูกศร: ctan.org/pkg/pgf สำหรับรูปทรงและเส้นทาง ดูภาพวาดด้วย TikZ

ดูเพิ่มเติม พื้นฐาน TikZ, TikZ และ รูปและรูปภาพ

คำถามและคำตอบ

จะวาดผังงานใน LaTeX ได้อย่างไร

ใช้โหนด TikZ ที่มี draw สำหรับกล่อง ใช้ไลบรารี positioning (right=of a, below=of b) เพื่อจัดตำแหน่ง และใช้ \draw[->] (a) -- (b); สำหรับลูกศร

จะใส่ข้อความบนลูกศรใน TikZ ได้อย่างไร

เขียนโหนดไว้กลางเส้นทาง: \draw[->] (a) -- node[above] {text} (b);

tikz-cd ใช้ได้ใน Scissor LaTeX ไหม

ยังไม่ได้ แผนภาพ tikzcd จะถูกละไว้พร้อมข้อความแจ้ง ให้วาดแผนภาพแบบง่ายด้วยโหนดและลูกศรแทน

ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07