4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【TikZ】線のかき方(draw)

Last updated at Posted at 2023-07-12

このページに使用されている画像はTeXclipで作成されたものです。

\draw

線をかくには次のように\path[draw]\drawを用いた書き方があります。
下の2つは,ともに同じ図形をかきます。

\begin{tikzpicture}
	\draw (0,0)--(3,2);
\end{tikzpicture}
\begin{tikzpicture}
	\path[draw] (0,0)--(3,2);
\end{tikzpicture}

\draw\path[draw]を簡略化した命令です。以下では,\drawコマンドを用います。

2つの点を--でつなぐと,直線がかけます。

3点以上がつながった線

\begin{tikzpicture}
	\path[draw] (0,0)--(3,2)--(4,0)--(5,4);
\end{document}

--でつながない場合

\begin{document}
\begin{tikzpicture}
	\path[draw] (0,0)--(3,2) (4,0)--(5,4);
\end{tikzpicture}
\end{document}

閉じた線 cycleを用いると,始点と終点を結びます。

\begin{document}
\begin{tikzpicture}
	\path[draw] (0,0)--(3,2) -- (4,0)--(5,4) --cycle;
\end{tikzpicture}
\end{document}

あくまで連結している点の始点と終点です。

\begin{document}
\begin{tikzpicture}
	\path[draw] (0,0)--(3,2) (4,0)--(5,4) --cycle;
\end{tikzpicture}
\end{document}

--の部分を変えることで,いろいろな図形に変わります。

rectangle 長方形

対角の頂点を指定することで長方形を書きます。

\begin{tikzpicture}
	\draw[very thick] (0,0) rectangle (6,4);
\end{tikzpicture}

grid

rectangleと同じく,対角の頂点を指定することで長方形を書き,その中にグリッドをかきます。

\begin{tikzpicture}
	\draw[very thick] (0,0) grid (6,4);
\end{tikzpicture}

gridの幅を変えるオプションがあります。step, xstep, ystepで指定することができます。

step=0.5

 \begin{tikzpicture}
	\draw[very thick,step=.5] (0,0) grid (6,4);
  \end{tikzpicture}

xstep=0.5

 \begin{tikzpicture}
	\draw[very thick,xstep=.5] (0,0) grid (6,4);
  \end{tikzpicture}

xstep=0.5,ystep=0.7

 \begin{tikzpicture}
	\draw[very thick,xstep=.5,ystep=.7] (0,0) grid (6,4);
  \end{tikzpicture}

デフォルトの状態では,座標が整数値のグリッド線がかかれます。

 \begin{tikzpicture}
	\draw[very thick] (-0.5,-0.5) grid (6.5,4.5);
	\fill (0,0) circle (2pt);
	\node[above right] at (0,0){(0,0)};
  \end{tikzpicture}

stepで幅を調整した場合は,必ず原点を通り,stepの整数倍の位置にグリッド線がかかれます。

\begin{tikzpicture}
	\draw[very thick] (-0.5,-0.5) grid[xstep=0.7,ystep=1.2] (6.5,4.5);
	\fill (0,0) circle (2pt);
	\node[above right] at (0,0){(0,0)};
\end{tikzpicture}

\drawのオプションhelp linesを入れることで,よりグリッド感が増します。

\begin{tikzpicture}
	\draw[very thick,help lines] (0,0) grid (6,4);
\end{tikzpicture}

タテ・ヨコの線 |-

タテ・ヨコ

\begin{tikzpicture}
	\draw[very thick] (0,0) |- (6,2);
\end{tikzpicture}

ヨコ・タテ

\begin{tikzpicture}
	\draw[very thick] (0,0) -| (6,2);
\end{tikzpicture}

cicle

(座標) cicrcle (半径)と書きます。(座標)は円の中心になります。

\begin{tikzpicture}
	\draw[very thick] (0,0) circle (3cm);
\end{tikzpicture}

楕円

cicrcleとおなじ要領で書きます。楕円の場合は半径を2つ指定します。

\begin{tikzpicture}
\draw[very thick] (3,0) ellipse [x radius = 2, y radius = 1];

\draw[very thick] (8,0) ellipse [x radius = 2, y radius = 1,rotate=35];

\draw[very thick] (12,0) circle [x radius = 2, y radius = 1, rotate = 35];
\end{tikzpicture}

楕円はcircleでもかくことができます。半径を2つ指定することで楕円になります。次の文は同じ図形になります。

\begin{tikzpicture}
\draw[very thick] (3,0) circle [x radius = 2, y radius = 1];

\draw[very thick] (8,0) circle (2 and 1);

\end{tikzpicture}

少し曲げるto

線を少し曲げたい場合は,--のかわりにtoを用いて,オプションに[bend left]
または,[bend right]をつけます。

\begin{tikzpicture}
\draw[very thick,dashed] (0,0) -- (5,0);
\draw[very thick] (0,0) to[bend left] (5,0);
\node[below right] at (0,0) {bend left};

\draw[very thick,dashed] (6,0) -- (11,0);
\draw[very thick] (6,0) to[bend right] (11,0);
\node[above right] at (6,0) {bend right};
\end{tikzpicture}

bend leftは,線の進行方向に対して左よりに曲がり,bend rightはその逆です。

曲がりぐあい(直線からの離れ具合)を数値で指定できます。

\begin{tikzpicture}
\draw[very thick,dashed] (0,0) -- (5,0);
\draw[very thick] (0,0) to[bend left = 15] (5,0);
\node[below right] at (0,0) {bend left = 15};

\draw[very thick,dashed] (6,0) -- (11,0);
\draw[very thick] (6,0) to[bend left=25] (11,0);
\node[below right] at (6,0) {bend left=25};
\end{tikzpicture}

\drawのオプション

 太さ:line width
 色:color
 透明度:opacity
 形状
 矢印:arrows
 角:rounded corners
 線の端点の形状:line cap
 結合部分の形状:line join

などが設定できます。

\draw[オプション][ ]で指定します。複数のオプションを指定する場合は,

\draw[オプション,オプション,...]

のように『 , 』を用いて区切ります。

太さ

 \begin{tikzpicture}
	\draw[ultra thin] (0,3) -- (5,3) node[right] {ultra thin};
	\draw[very thin] (0,2) -- (5,2) node[right] {very thin};
	\draw[thin] (0,1) -- (5,1) node[right] {thin};
    \draw (0,0) -- (5,0) node[right] {plain};
    \draw[thick] (0,-1) -- (5,-1) node[right] {thick};
    \draw[very thick] (0,-2) -- (5,-2) node[right] {very thick};
    \draw[ultra thick] (0,-3) -- (5,-3) node[right] {ultra thick};
  \end{tikzpicture}

手動で太さを設定したい場合は次のように書きます。

\begin{tikzpicture}
	\draw[line width=2pt] (0,3) -- (5,3) node[right] {2pt};
	\draw[line width=4pt] (0,2) -- (5,2) node[right] {4pt};
	\draw[line width=10pt] (0,1) -- (5,1) node[right] {10pt};
\end{tikzpicture}

線の色を設定できます。ここであげた色の設定は,塗りつぶしの\fillでも使用できます。color=`は省略できます。

\begin{tikzpicture}
    \draw[color=blue] (0,1) -- (5,1);
\end{tikzpicture}

使用できる色です。

\begin{tikzpicture}
    \draw[line width=4pt,red] (0,1) -- (5,1) node[right] {red};
    \draw[line width=4pt,blue] (0,0) -- (5,0) node[right] {blue};
    \draw[line width=4pt,green] (0,-1) -- (5,-1) node[right] {green};
    \draw[line width=4pt,yellow] (0,-2) -- (5,-2) node[right] {yellow};
    \draw[line width=4pt,magenta] (0,-3) -- (5,-3) node[right] {magenta};
    \draw[line width=4pt,cyan] (0,-4) -- (5,-4) node[right] {cyan};
    \draw[line width=4pt,gray] (0,-5) -- (5,-5) node[right] {black};
    \draw[line width=4pt,white] (0,-6) -- (5,-6) node[black,right] {white};
    \draw[line width=4pt,gray] (0,-7) -- (5,-7) node[right] {gray};
    \draw[line width=4pt,darkgray] (0,-8) -- (5,-8) node[right] {darkgray};
    \draw[line width=4pt,lightgray] (0,-9) -- (5,-9) node[right] {lightgray};
    \draw[line width=4pt,olive] (0,-10) -- (5,-10) node[right] {olive};
    \draw[line width=4pt,brown] (0,-11) -- (5,-11) node[right] {brown};
    \draw[line width=4pt,orange] (0,-12) -- (5,-12) node[right] {orange};
    \draw[line width=4pt,lime] (0,-13) -- (5,-13) node[right] {lime};
    \draw[line width=4pt,teal] (0,-14) -- (5,-14) node[right] {teal};
    \draw[line width=4pt,violet] (0,-15) -- (5,-15) node[right] {violet};
    \draw[line width=4pt,purple] (0,-16) -- (5,-16) node[right] {purple};
    \draw[line width=4pt,pink] (0,-17) -- (5,-17) node[right] {pink};
\end{tikzpicture}

色を混ぜる

blue!数値!greenとすると,左の色を数値のパーセントで

\begin{tikzpicture}
	\node[left] at (0,1){blue!100!green};
    \draw[line width=4pt,blue!100!green] (0,1) -- (5,1) node[black,right] {blue100\%, green0\%};
    \node[left] at (0,0){blue!90!green};
    \draw[line width=4pt,blue!90!green] (0,0) -- (5,0) node[black,right] {blue90\%, green10\%};
    \node[left] at (0,-1){blue!80!green};
    \draw[line width=4pt,blue!80!green] (0,-1) -- (5,-1) node[black,right] {blue80\%, green0\%};
    \node[left] at (0,-2){blue!70!green};
    \draw[line width=4pt,blue!70!green] (0,-2) -- (5,-2) node[black,right] {blue70\%, green0\%};
    \node[left] at (0,-3){blue!60!green};
    \draw[line width=4pt,blue!60!green] (0,-3) -- (5,-3) node[black,right] {blue60\%, green0\%};
    \node[left] at (0,-4){blue!50!green};
    \draw[line width=4pt,blue!50!green] (0,-4) -- (5,-4) node[black,right] {blue50\%, green0\%};
    \node[left] at (0,-5){blue!40!green};
    \draw[line width=4pt,blue!40!green] (0,-5) -- (5,-5) node[black,right] {blue40\%, green0\%};
    \node[left] at (0,-6){blue!30!green};
    \draw[line width=4pt,blue!30!green] (0,-6) -- (5,-6) node[black,right] {blue30\%, green0\%};
    \node[left] at (0,-7){blue!20!green};
    \draw[line width=4pt,blue!20!green] (0,-7) -- (5,-7) node[black,right] {blue20\%, green0\%};
    \node[left] at (0,-8){blue!10!green};
    \draw[line width=4pt,blue!10!green] (0,-8) -- (5,-8) node[black,right] {blue10\%, green0\%};
    \node[left] at (0,-9){blue!0!green};
    \draw[line width=4pt,blue!0!green] (0,-9) -- (5,-9) node[black,right] {blue0\%, green0\%};
\end{tikzpicture}

透明度

opacityで透明度(不透明度)を指定することができます。0~1までの実数を用いて表します。1:不透明,0:透明を表す。透明なので,下にある青が見えています。

\begin{tikzpicture}
	\fill[blue] (2.5,1.5) rectangle (5.5,-9.5);

	\node[left] at (0,1){opacity=1};
    \draw[line width=4pt,opacity=1] (0,1) -- (5,1);
    \node[left] at (0,0){opacity=0.9};
    \draw[line width=4pt,opacity=0.9] (0,0) -- (5,0);
    \node[left] at (0,-1){opacity=0.8};
    \draw[line width=4pt,opacity=0.8] (0,-1) -- (5,-1);
    \node[left] at (0,-2){opacity=0.7};
    \draw[line width=4pt,opacity=0.7] (0,-2) -- (5,-2);
    \node[left] at (0,-3){opacity=0.6};
    \draw[line width=4pt,opacity=0.6] (0,-3) -- (5,-3);
    \node[left] at (0,-4){opacity=0.5};
    \draw[line width=4pt,opacity=0.5] (0,-4) -- (5,-4);
    \node[left] at (0,-5){opacity=0.4};
    \draw[line width=4pt,opacity=0.4] (0,-5) -- (5,-5);
    \node[left] at (0,-6){opacity=0.3};
    \draw[line width=4pt,opacity=0.3] (0,-6) -- (5,-6);
    \node[left] at (0,-7){opacity=0.2};
    \draw[line width=4pt,opacity=0.2] (0,-7) -- (5,-7);
    \node[left] at (0,-8){opacity=0.1};
    \draw[line width=4pt,opacity=0.1] (0,-8) -- (5,-8);
    \node[left] at (0,-9){opacity=0};
    \draw[line width=4pt,opacity=0] (0,-9) -- (5,-9);
\end{tikzpicture}

線の種類

線の種類は以下の通りです。デフォルトではsolidに設定されています。

\begin{tikzpicture}
	\draw[thick,solid] (0,2) -- (5,2) node[right] {solid};
    \draw[thick,dashed] (0,1) -- (5,1) node[right] {dashed};
    \draw[thick,dotted] (0,0) -- (5,0) node[right] {dotted};
    \draw[thick,dash dot] (0,-1) -- (5,-1) node[right] {dash dot};
    \draw[thick,dash dot dot] (0,-2) -- (5,-2) node[right] {dash dot dot};
    \draw[thick,dash dot dot] (0,-3) -- (5,-3) node[right] {dash dot dot dot};
    \draw[thick,double] (0,-4) -- (5,-4) node[right] {double};
\end{tikzpicture}

dotを4つ以上つけるとエラーが出ます。

loosely, denselyで間隔が調整できます。

\begin{tikzpicture}
    \draw[thick,loosely dashed] (0,1) -- (5,1) node[right] {loosely dashed};
    \draw[thick,dashed] (0,0) -- (5,0) node[right] {dashed};
    \draw[thick,densely dashed] (0,-1) -- (5,-1) node[right] {densely dashed};
\end{tikzpicture}
\begin{tikzpicture}
    \draw[thick,loosely dotted] (0,1) -- (5,1) node[right] {loosely dotted};
    \draw[thick,dotted] (0,0) -- (5,0) node[right] {dotted};
    \draw[thick,densely dotted] (0,-1) -- (5,-1) node[right] {densely dotted};
\end{tikzpicture}
\begin{tikzpicture}
    \draw[thick,loosely dash dot] (0,1) -- (5,1) node[right] {loosely dash dot};
    \draw[thick,dash dot] (0,0) -- (5,0) node[right] {dash dot};
    \draw[thick,densely dash dot] (0,-1) -- (5,-1) node[right] {densely dash dot};
\end{tikzpicture}

dotは3個以上では変わらないみたい。

矢印 端点の形状arrows

atrrows=->のようにすると矢印がかけます。arrowsは省略できます。始点と終点に矢印をつけることができます。

線の太さによる違い

\begin{tikzpicture}
	\draw[arrows=->] (0,1) -- (5,1) node[right] {\verb|->|};
    \draw[thick, ->] (0,0) -- (5,0) node[right] {\verb|->|};
    \draw[very thick,->] (0,-1) -- (5,-1) node[right]{\verb|->|};
    \draw[ultra thick,->] (0,-2) -- (5,-2)node[right]{\verb|->|};
\end{tikzpicture}

形状
normal

\begin{tikzpicture}
	\draw[very thick,->] (0,1) -- (5,1) node[right] {\verb|->|};
    \draw[very thick, <-] (0,0) -- (5,0) node[right] {\verb|<-|};
    \draw[very thick,<->] (0,-1) -- (5,-1) node[right]{\verb|<->|};
\end{tikzpicture}

2重

\begin{tikzpicture}
	\draw[very thick,->>] (0,1) -- (5,1) node[right] {\verb|->>|};
    \draw[very thick, <<-] (0,0) -- (5,0) node[right] {\verb|<<-|};
    \draw[very thick,<<->>] (0,-1) -- (5,-1) node[right]{\verb|<<->>|};
\end{tikzpicture}

逆向き

\begin{tikzpicture}
	\draw[very thick,-<] (0,1) -- (5,1) node[right] {\verb|-<|};
    \draw[very thick, >-] (0,0) -- (5,0) node[right] {\verb|>-|};
    \draw[very thick,>-<] (0,-1) -- (5,-1) node[right]{\verb|>-<|};
\end{tikzpicture}
\begin{tikzpicture}
	\draw[very thick,-<<] (0,1) -- (5,1) node[right] {\verb|-<<|};
    \draw[very thick, >>-] (0,0) -- (5,0) node[right] {\verb|>>-|};
    \draw[very thick,>>-<<] (0,-1) -- (5,-1) node[right]{\verb|>>-<<|};
\end{tikzpicture}

latex

\begin{tikzpicture}
	\draw[very thick,-latex] (0,1) -- (5,1) node[right] {\verb|-latex|};
    \draw[very thick, latex-] (0,0) -- (5,0) node[right] {\verb|latex-|};
    \draw[very thick,latex-latex] (0,-1) -- (5,-1) node[right]{\verb|latex-latex|};
\end{tikzpicture}

stealth

\begin{tikzpicture}
	\draw[very thick,-stealth] (0,1) -- (5,1) node[right] {\verb|-stealth|};
    \draw[very thick, stealth-] (0,0) -- (5,0) node[right] {\verb|stealth-|};
    \draw[very thick,stealth-stealth] (0,-1) -- (5,-1) node[right]{\verb|stealth-stealth|};
\end{tikzpicture}

矢印の先端にはオプションで色を付けることができます。
オプションに書くとき,{latex[red]}のように中カッコをつける必要があります。

\begin{tikzpicture}
	\draw[very thick,-{>[red]}] (0,1) -- (5,1) node[right] {\verb|-{>[red]}|};
    \draw[very thick, -{>>[red]}] (0,0) -- (5,0) node[right] {\verb|-{>>[red]}|};
    \draw[very thick,-{<[red]}] (0,-1) -- (5,-1) node[right]{\verb|-{<[red]}|};
    \draw[very thick,-{<<[red]}] (0,-2) -- (5,-2) node[right]{\verb|-{<<[red]}|};
    \draw[very thick,-{latex[red]}] (0,-3) -- (5,-3) node[right]{\verb|-{latex[red]}|};
    \draw[very thick,-{stealth[red]}] (0,-4) -- (5,-4) node[right]{\verb|-{stealth[red]}|};
\end{tikzpicture}

latex,stealthの矢じりを逆向きにすることができます。

\begin{tikzpicture}
	\draw[very thick,-{latex[reversed]}] (0,1) -- (5,1) node[right] {\verb|-{latex[reversed]}|};
    \draw[very thick, -{stealth[reversed]}] (0,0) -- (5,0) node[right] {\verb|-{stealth[reversed]}|};
\end{tikzpicture}

rounded corners

角の部分を丸くします。

\begin{tikzpicture}
	\draw[very thick,rounded corners = 5pt] (0,0) -- (2,2) -- (3,0) ;
    \draw[very thick,rounded corners = 20pt] (4,0) -- (6,2) -- (7,0) ;
\end{tikzpicture}

線の端点の形状:line cap

\begin{tikzpicture}
	\draw[line width=6pt] (0,0) -- (2,2) -- (3,0) ;
    \draw[line width=6pt,line cap=butt] (4,0) -- (6,2) -- (7,0) ;
    \draw[line width=6pt, line cap=rect] (8,0) -- (10,2) -- (11,0) ;
	\draw[line width=6pt, line cap=round] (12,0) -- (14,2) -- (15,0) ;
\end{tikzpicture}

線の結合部分の形状

\begin{tikzpicture}
	\draw[line width=6pt] (0,0) -- (2,2) -- (3,0) ;
    \draw[line width=6pt,line join=miter] (4,0) -- (6,2) -- (7,0) ;
    \draw[line width=6pt, line join=round] (8,0) -- (10,2) -- (11,0) ;
	\draw[line width=6pt, line join=bevel] (12,0) -- (14,2) -- (15,0) ;
\end{tikzpicture}
4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?