見出し画像

離散グラフをLaTeXで出力してみる〜2. 直線を描く・サイズ調整〜

こんにちは。

その1では点を打つ方法をまとめたので、その2では直線の描き方をまとめたいと思います。
また、グラフの大きさを調整してちょうどいいサイズにする方法もまとめています。

※まだまだ不勉強なので、訂正箇所や改善点等あればコメント等いただけると幸いです。

手順3 直線を描く

前回出力した四角形の頂点をプロットしたものを使って、直線の辺を描こうと思います。こちらです。

\begin{tikzpicture}

\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);

\foreach\P in{v1,v2,v3,v4} \fill[black](\P)circle(1);

\end{tikzpicture}


この4つの頂点を結んで四角形を描こうと思います。
辺を描くときは、結ぶ頂点を選びます。以下の通りです。

\begin{tikzpicture}
\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);

\draw(v1)--(v2);

\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(1);
\end{tikzpicture}

v1とv2を結ぶ線を描く、という命令になります。
これをコンパイルすると以下のように出力されるはずです。

線細っ…

線が細いですが、あとで調整しますので気にしないでください。

この図形で4頂点完全グラフを描くならば、以下のように入力します。

\begin{tikzpicture}
\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);

\draw(v1)--(v2)--(v3)--(v4)--cycle;
\draw(v2)--(v4);
\draw(v1)--(v3);

\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(1);
\end{tikzpicture}

すべての辺を1本ずつ描くのは大変ですが、 -- を使って繋げていくことができます。また始点と終点が同じ点ならば、最後に --cycle と記述すれば勝手に結んでくれます。
上の例では、 --cycle の指示がない場合は、v4とv1は結ばれないということです。
これでコンパイルすると以下のようになります。

全体的にデカい…

これで直線を描くことができました。
曲線については別の投稿でまとめます。

手順4 サイズの調整〜グラフ全体、頂点、辺〜

さて、点と直線を使って図形は描けますが、かなり大きいグラフとなってしまいます。
そこで、ここからはサイズの調整をします。

サイズ調整をするときは、以下のように倍率を指示します。グラフを小さくしたいので…

\begin{tikzpicture}[scale=0.1]

\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);
\draw(v1)--(v2)--(v3)--(v4)--cycle;
\draw(v2)--(v4);
\draw(v1)--(v3);
\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(1);
\end{tikzpicture}

冒頭部分に書き加えたものが、図形を0.1倍にしろ、という指示になります。
出力は以下のようになります。

上が元のサイズ、左下が0.1倍にしたものです

これで自分の好きなようにサイズの調整ができますね。
しかし0.1倍だと小さすぎるので、0.4倍くらいにしてみます。

0.4倍では、グラフ自体のサイズはいいのですが、点が大きすぎて違和感がありますよね。
なので次は、点の大きさだけを変えていきます。

\begin{tikzpicture}[scale=0.4]

\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);
\draw(v1)--(v2)--(v3)--(v4)--cycle;
\draw(v2)--(v4);
\draw(v1)--(v3);

\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.25);

\end{tikzpicture}

scaleは0.4にし、各頂点においている円の半径を0.25に小さくしました。
これで出力すると以下のようになります。

グラフに対して点の大きさもいい感じになったと思います。

scaleや円の半径の数値は自由に変えられますので、( )内の数値を適当に当てはめてください。これは私の体感ですが、scaleの数値と円の半径の積が0.1になるくらいがちょうどよいサイズ感だと思います
ここは好みで調整されると良いでしょう。

また、もう少し線が太い方が見やすいので、線を太くします。
以下のようにソースを書き加えます。

\begin{tikzpicture}[scale=0.4]

\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);

\draw[thick](v1)--(v2)--(v3)--(v4)--cycle;
\draw[thick](v2)--(v4);
\draw[thick](v1)--(v3);

\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.25);
\end{tikzpicture}

描く線を太くしろという指示です。
これでコンパイルすると以下のような出力が得られます。

いい感じにバランスが取れてきたように思います。

線の太さについては、細い方から順に

  • ultra thin

  • very thin

  • thin

  • semithick

  • thick

  • very thick

  • ultra thick

を選んで、[ ]内を書き換えると太さを変更できます。
また、[line width=5mm]のように、太さを直接数値で指示することもできます。

\begin{tikzpicture}[scale=0.4]

\coordinate(v1)at(0,0);
\coordinate(v2)at(10,0);
\coordinate(v3)at(10,10);
\coordinate(v4)at(0,10);

\draw[ultra thin](v1)--(v2)--(v3)--(v4)--cycle;
\draw[ultra thick](v2)--(v4);
\draw[line width=5mm](v1)--(v3);

\foreach\P in{v1,v2,v3,v4}\fill[black](\P)circle(0.25);
\end{tikzpicture}

太さを変えられます。5mmは極太に見えますね〜

これも私の体感&好みになりますが、辺の太さはthickが良いかなあ〜と思います。

今回はここで終わりにします!

この記事が気に入ったらサポートをしてみませんか?