9. Tikz Paketi İle Çizim

Kayıt Tarihi:

Son Güncelleme:

Özet:

Bu derste LaTeX ile fonksiyon grafikleri, geometrik şekiller ve bunlar gibi çeşitli çizimleri nasıl yapabileceğimizi göreceğiz. Başka programlarda çizimler yapıp LaTeX'te bunları kullanmak yerine doğrudan Tikz paketi ile LaTeX içinde çizim yapabiliriz.

Anahtar Kelimeler: doğrular · eğriler · grafik · grafik boyama · grafik çizimi · pgf · şekiller · tikz

TikZ paketini kullanabilmek için öncelikle sahanlıkta \usepackage{tikz} komutu girilmelidir. Daha sonra doküman içinde bu paket tarafından sağlanan tikzpicture ortamında çizim yapılabilir. Kayar nesne olarak figure ortamında çizim yapılabilir.


\begin{figure}
	\begin{tikzpicture}
	komutlar
	\end{tikzpicture}
\caption{Çizim Başlığı...}
\end{figure}

Tikz paketinde çizim yapılan ortam, orijini sol alt köşesinde bulunan dik koordinat düzlemi biçimindedir ve çizim yapılırken koordinatlar buna göre girilmelidir, uzunluklar varsayılan olarak cm cinsindendir (Bu sayfada gösterilen grafikler web tarayıcıları için optimize edilmiştir ve bire bir ölçekli değildir, ölçekli grafikleri gözlemlemek için kodları kendi sisteminizde çalıştırın). Bir doğru parçası çizmek için draw komutundan faydalanılır.


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

Bu komutların çizdirdiği doğru parçası aşağıdaki gibidir.

Daha anlaşılır olması için bu doğru parçasını grid ile birlikte gösterelim. Bunun için \draw[help lines] (0,0) -- (3,2) komutunu kullanırız. Birden fazla doğru parçası aynı ortam içinde tanımlanabilir. Bu örneklerde görüldüğü gibi \draw komutlarının sonunda noktalı virgül konulmalıdır.


\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,2);
\draw (0,0) -- (3,2);
\draw (1,2) -- (3,0);
\end{tikzpicture}

Ayrıca uç uca eklenmiş doğru parçalarını tek bir \draw komutu içinde belirtebiliriz.


\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,2);
\draw (0,0) --  (1,1) -- (3,2) -- (0,1);
\end{tikzpicture}

Yapılan çizimler scale, xscale ve yscale opsiyonel argümanlarıyla ölçeklenebilir. \begin{tikzpicture}[scale=0.5] gibi. Aşağıdaki çizimlerde sırasıyla scale=1, scale=0.5 ve xscale=0.25, yscale=0.75 Aşağıdaki çizimlerde boyutları istenilen oranlarda büyültülebilir ve küçültülebilir. Bu parametrenin varsayılan değer 1'dir.

Çizilen doğru parçalarına çeşitli dekarosyanlar eklenebilir, örneğin onlara ok şekli verilebilir. Bunun için \draw komutuna [->] gibi komutlar eklenmelidir. Uç uca eklenmiş doğru parçalarında çakışan uçlar dekore edilmez, bu özellikle koordinat eksenlerini çizerken kullanışlıdır, aşağıdaki şekildeki son grafiği \draw [<->] (0,1) -- (0,0) -- (1,0); komutuyla elde edebilirsiniz.


\begin{tikzpicture}
\draw [->] (0,0) -- (1,1);
\draw [<-] (1,0) -- (2,1);
\draw [|->] (2,0) -- (3,1);
\end{tikzpicture}

Çizilen doğruların kalınlıkları aşağıdaki örnekte görüldüğü gibi değiştirilebilir. Kalınlık belirtmek için şunlar kullanılabilir: ultra thin, very thin, thin, semi thick, thick, very thick, ultra thick, line width=xcm.


\begin{tikzpicture}
\draw [ultra thick] (0,2) -- (2,2);
\draw [thin] (0,1) -- (2,1);
\draw [ultra thin] (0,0) -- (2,0);
\end{tikzpicture}

Doğruları renkli, kesikli ve noktalı olarak çizdirmek için aşağıdaki komutlar kullanılır. Doğru stillerinin en sık kullanılanları örnekte gösteriliyor, renkler için de red, green, blue, yellow, black, gray, pink, white gibi standart renkler veya kendi renk tanımlarınız kullanılabilir.


\begin{tikzpicture}
\draw [dashed, ultra thick, red] (0,1.5) -- (5,1.5);
\draw [dashed] (0,1) -- (5,1);
\draw [dotted] (0, 0.5) -- (5,0.5);
\draw [dotted, ultra thick] (0,0) -- (5,0);
\end{tikzpicture}

TikZ paketi ile çeşitli eğriler çizilebilir. Ayrıca uç uca eklenmiş doğru parçalarının köşeleri yuvarlanarak da eğriler oluşturulabilir.


\begin{tikzpicture}
\draw [red, thick] (0,0) rectangle (2,2);
\draw [blue, thick] (4,1) circle [radius=1];
\draw [thick, purple] (7.5,1.5) arc [radius=1, start angle=45, end angle=230];
\draw [thick, cyan, <->, rounded corners] (10.5,0) -- (8.5,0) -- (8.5,2); 
\end{tikzpicture}

İki noktayı birleştiren bir eğri çizmek için \draw komutundaki -- terimi to ifadesiyle değiştirilir ve giriş çıkış açıları belirtilir. Ayrıca birden çok eğri uç uca tek komut içinde birleştirilebilir.


\begin{tikzpicture}
\draw [help lines] (-1,0) grid (9,2);
\draw [ultra thick, red] (0,0) to [out=150, in=330] (3,2);
\draw [ultra thick, blue] (4,1) to [out=45, in=180] (6.5,0) to [out=0, in=-135] (8,2);
\end{tikzpicture}

Fonksiyonların grafiklerine bir çok noktası belirtilerek bunlar arasında çizilen doğru parçaları ile yaklaşılabilir fakat bu işlem pratik değildir. Bunu Tikz paketinde otomatik olarak yapan plot komutu vardır.


\begin{tikzpicture}
\draw [help lines, <->] (0,0) -- (7,0);
\draw [help lines, <->] (0,-1.25) -- (0,1.25);
\draw [magenta, thick, domain=0:2*pi, samples=100] plot (\x, {sin(\x r)});
\end{tikzpicture}

Bu örnekte yapılanları özetleyelim:

  • Bu kodlarda 4. satırda $f(x):=\sin x$ fonksiyonu grafiği çizildi.
  • domain=0:2*pi ifadesi ile fonksiyon tanım kümesi belirtilir, pi ifadesinin nasıl yazıldığı önemlidir.
  • samples=100 ifadesi ile kaç doğru parçası ile yaklaşılacağı belirtilir.
  • plot ifadesinden sonra grafiği oluşturacak olan $\left(x, f(x)\right)$ noktaları (\x, {f(\x)}) olarak belirtiliyor.
  • Burada kullanılan $\sin x$ fonksiyonu argümanı derece cinsindendir, radyan yapmak için örnekteki gibi sin(\x r) yazılır.
Kullanılabilecek bazı fonksiyonlar şöyledir: factorial(\x), sqrt(\x), pow(\x, y), exp(\x), ln(\x), log10(\x), sin(\x), cos(\x), tan(\x).

Başka bir örnek olarak $f(x)=x\sin x$ fonksiyonu grafiğini ele alalım. Ayrıca bu grafiği $y=x$ ve $y=-x$ doğruları ile birlikte çizelim. Aşağıda kodlarını gördüğünüz bu örnekte $f(x):=x$ ve $f(x):=-x$ fonksiyonları, plot fonksiyonu kullanılmadan doğru parçaları olarak da çizilebilir.


\begin{tikzpicture}[scale=0.125]
\draw [help lines, <->] (-35,0) -- (35,0);
\draw [help lines, <->] (0,-30) -- (0,30);
\draw [blue, ultra thick, domain=-10*pi:10*pi, samples=1000] plot (\x, {sin(\x r)*\x});
\draw [domain=-30:30, dashed, red, thick] plot (\x, \x);
\draw [domain=-30:30, dashed, red, thick] plot (\x, -\x);
\end{tikzpicture}

Çizilen şekiller fill opsiyonel argümanı ile boyanabilir. Aşağıdaki örnekleri inceleyin.


\begin{tikzpicture}
\draw [thick] (0,0) rectangle (1,1);
\draw [fill=red, thick] (1.5,0) rectangle (2.5,1);
\draw [fill=red, thick, red] (3,0) rectangle (4,1);
\draw [fill=cyan, cyan] (4.5,0) -- (5.5,0) -- (5,1) -- (4.5,0);
\draw [fill=blue, blue] (6,0) rectangle (7,1);
\draw [fill=green, green] (6.5,0.5) circle [radius=0.5];
\draw [fill=magenta] (7.5,0) to [out=-30, in=-120] (8.5,1) -- (7.5,0);
\end{tikzpicture}

Çizim üzerine metin eklemek için \node komutu kullanılır. Örnek kullanım: \node [opsiyonlar] at (1,1) {Metin};. Opsiyon olarak renk parametresi kullanılabilir. Bir noktanın altında, üstünde, sağında, solunda, vs yerleştirme yapılabilir. \node [below, red] at (1,1); gibi. Metin olarak matematiksel ifadeler kullanılabilir. Kullanılabilecek pozisyon argümanları şunlardır: above, below, left, right, above left, above right, below left, below right.


\begin{tikzpicture}
\draw [help lines] (0,0) grid (9,3);
\node at (1,1) {Etiket};
\node [purple] at (3,2) {$\sum_{i=1}^{k}\sin(kx)$};
\draw [fill=red, red] (7,1) circle [radius=0.1];
\node [below] at (7,1) {Alt};\node [above] at (7,1) {Üst};
\node [left] at (7,1) {Sol}; \node [right] at (7,1) {Sağ};
\draw [fill=red, red] (4,1) circle [radius=0.1];
\node [below right, blue] at (4,1) {Sağ-alt};
\node [above left, cyan] at (4,1) {Sol-üst};
\end{tikzpicture}

Şimdi tüm öğrendiklerimizi kullanarak son bir örnek yapalım.


\begin{tikzpicture}[scale=0.75]
\draw [fill=yellow, yellow!30] (0,0) rectangle (1.75,1.5);
\draw [fill=yellow, yellow!30] (0,0) rectangle (-1.75,-1.5);
\draw [fill=green, green!40] (1.75,0) rectangle (5,1.5);
\draw [fill=green, green!40] (-1.75,0) rectangle (-5,-1.5);
\draw [thick, <->] (-5,0) -- (5,0); 
\draw [thick, <->] (0,-5) -- (0,5);
\draw [cyan, ultra thick] (0.2,5) to [out=-90,in=180] (5,0.2);
\draw [cyan, ultra thick] (-5,-0.2) to [out=0,in=90] (-0.2,-5);
\draw [magenta, thick] (0,1.5) -- (5,1.5);
\draw [magenta, thick] (0,-1.5) -- (-5,-1.5);
\draw [magenta, dashed, thick] (1.75,0) -- (1.75,1.5);
\draw [magenta, dashed, thick] (-1.75,0) -- (-1.75,-1.5);
\node [left] at (0,1.5) {$\varepsilon$};
\node [right] at (0,-1.5) {$-\varepsilon$};
\node [above] at (-1.75,0) {$N=-\frac{1}{\varepsilon}$};
\node [below] at (1.75,0) {$M=\frac{1}{\varepsilon}$};
\node [above right] at (3,1.5) {$y=\varepsilon$};
\node [below left] at (-3,-1.5) {$y=-\varepsilon$};
\draw [->,thick] (3,2.5) -- (3,1.5);
\draw [->,thick] (3,-1) -- (3,0);
\draw [->,thick] (-3,-2.5) -- (-3,-1.5);
\draw [->,thick] (-3,1) -- (-3,0);
\end{tikzpicture}
Önceki Ders Notu:
8. LaTeX ve Matematik
Dersin Ana Sayfası:
LaTeX'e Giriş
Sonraki Ders Notu:
10. XY-pic Paketi İle Çizim