{"id":31266,"date":"2025-10-08T02:31:12","date_gmt":"2025-10-07T23:31:12","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/"},"modified":"2025-10-08T02:31:12","modified_gmt":"2025-10-07T23:31:12","slug":"matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/","title":{"rendered":"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma"},"content":{"rendered":"<p><body><\/p>\n<p>\nMatplotlib&#8217;in <code>subplot()<\/code> fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, <code>subplot()<\/code> d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.\n<\/p>\n<p>\nVeri analizi ve bilim alanlar\u0131nda \u00e7al\u0131\u015fan herkes, \u00e7o\u011fu zaman tek bir grafi\u011fin yetersiz kald\u0131\u011f\u0131 durumlarla kar\u015f\u0131la\u015fm\u0131\u015ft\u0131r. \u00d6rne\u011fin, bir hisse senedinin fiyat performans\u0131n\u0131 ayn\u0131 anda i\u015flem hacmiyle kar\u015f\u0131la\u015ft\u0131rmak, bir makine \u00f6\u011frenimi modelinin farkl\u0131 metriklerini (do\u011fruluk, hassasiyet, geri \u00e7a\u011f\u0131rma) tek bir bak\u0131\u015fta g\u00f6rmek veya sens\u00f6r verilerindeki e\u011filimleri farkl\u0131 zaman \u00f6l\u00e7eklerinde incelemek isteyebilirsiniz. \u0130\u015fte tam bu noktada Matplotlib&#8217;in alt grafik (subplot) \u00f6zelli\u011fi devreye girer. Alt grafikler, birden fazla g\u00f6rselle\u015ftirmeyi mant\u0131kl\u0131 bir d\u00fczen i\u00e7inde, tek bir &#8220;figure&#8221; (fig\u00fcr) \u00fczerinde bir araya getirerek verinin daha kapsaml\u0131 anla\u015f\u0131lmas\u0131n\u0131 sa\u011flar. Bu sayede, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki korelasyonlar\u0131 veya ayn\u0131 de\u011fi\u015fkenin farkl\u0131 y\u00f6nlerini h\u0131zl\u0131ca de\u011ferlendirebilirsiniz.\n<\/p>\n<p>\nTek bir grafi\u011fe t\u00fcm bilgiyi s\u0131k\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015fmak genellikle g\u00f6rsel karma\u015faya yol a\u00e7ar ve okunabilirli\u011fi b\u00fcy\u00fck \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcr\u00fcr. Bu durum, veri odakl\u0131 kararlar al\u0131rken yanl\u0131\u015f yorumlamalara bile sebep olabilir. Oysa alt grafikler, her bir g\u00f6rselle\u015ftirmeye kendi alan\u0131n\u0131 tan\u0131yarak, bilgiyi par\u00e7alara ay\u0131r\u0131r ve sindirilmesini kolayla\u015ft\u0131r\u0131r. B\u00f6ylece, hem sunumlar\u0131n\u0131z daha profesyonel bir g\u00f6r\u00fcn\u00fcm kazan\u0131r hem de analizleriniz derinlik kazan\u0131r. \u00d6zellikle b\u00fcy\u00fck veri setleriyle \u00e7al\u0131\u015f\u0131rken veya bir rapor haz\u0131rlarken, alt grafiklerin sundu\u011fu d\u00fczen ve a\u00e7\u0131kl\u0131k paha bi\u00e7ilmezdir. Ayr\u0131ca, zaman i\u00e7inde farkl\u0131 parametrelerin de\u011fi\u015fimini izlemek gibi dinamik analizlerde de alt grafikler, kar\u015f\u0131la\u015ft\u0131rmal\u0131 bir perspektif sunarak e\u011filimleri daha net g\u00f6rmemize yard\u0131mc\u0131 olur. \u015eimdi bu g\u00fcc\u00fcn nas\u0131l kullan\u0131laca\u011f\u0131na dair temel kavramlara odaklanal\u0131m.\n<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Alt grafikler sadece kar\u015f\u0131la\u015ft\u0131rma i\u00e7in de\u011fil, ayn\u0131 zamanda hiyerar\u015fik veri g\u00f6rselle\u015ftirmeleri veya birden fazla veri boyutunu ayn\u0131 anda g\u00f6stermek i\u00e7in de idealdir. Her bir alt grafi\u011fi, verinin farkl\u0131 bir &#8220;a\u00e7\u0131s\u0131&#8221; olarak d\u00fc\u015f\u00fcnebilirsiniz.\n<\/div>\n<h3>Matplotlib&#8217;in Temel Ta\u015flar\u0131: Figure ve Axes Nesneleri<\/h3>\n<p>\nMatplotlib&#8217;de g\u00f6rselle\u015ftirme yaparken kar\u015f\u0131la\u015faca\u011f\u0131n\u0131z en temel iki kavram &#8220;Figure&#8221; (Fig\u00fcr) ve &#8220;Axes&#8221; (Eksenler) nesneleridir. Bu ikili, bir ressam\u0131n tuvali ve \u00fczerindeki resim gibi d\u00fc\u015f\u00fcn\u00fclebilir. Bir &#8220;Figure&#8221; nesnesi, t\u00fcm g\u00f6rselle\u015ftirmenizi bar\u0131nd\u0131ran genel bir pencere veya ka\u011f\u0131t par\u00e7as\u0131d\u0131r. Bu, grafiklerinizin ve di\u011fer g\u00f6rsel elemanlar\u0131n yer alaca\u011f\u0131 ana konteynerdir. Ba\u015fl\u0131klar, genel ba\u015fl\u0131klar (supertitles), kenar bo\u015fluklar\u0131 ve hatta di\u011fer ara\u00e7 \u00e7ubuklar\u0131 gibi \u00f6\u011feler bir Figure&#8217;e aittir. Bir Matplotlib uygulamas\u0131nda g\u00f6rd\u00fc\u011f\u00fcn\u00fcz her pencere veya kay\u0131t edilen her g\u00f6r\u00fcnt\u00fc, asl\u0131nda bir Figure nesnesidir.\n<\/p>\n<p>\n&#8220;Axes&#8221; nesnesi ise, Figure i\u00e7inde yer alan ve as\u0131l verilerin \u00e7izildi\u011fi bireysel grafikleri temsil eder. Bir Figure birden fazla Axes nesnesi i\u00e7erebilir ve her Axes nesnesinin kendi X ve Y eksenleri, ba\u015fl\u0131\u011f\u0131, etiketleri ve \u00e7izilen verileri (\u00e7izgi grafikleri, sa\u00e7\u0131l\u0131m grafikleri, \u00e7ubuk grafikler vb.) bulunur. Matplotlib&#8217;de <code>plot()<\/code>, <code>scatter()<\/code>, <code>hist()<\/code> gibi fonksiyonlar\u0131 \u00e7a\u011f\u0131rd\u0131\u011f\u0131n\u0131zda, asl\u0131nda bu \u00e7a\u011fr\u0131lar bir Axes nesnesi \u00fczerinde ger\u00e7ekle\u015fir. Yani, verilerinizi ger\u00e7ekten g\u00f6rselle\u015ftiren ve \u00fczerinde manip\u00fclasyon yapt\u0131\u011f\u0131n\u0131z yer Axes nesnesidir. Bir figure&#8217;\u00fc bo\u015f bir tuval gibi hayal ederseniz, axes&#8217;ler de bu tuval \u00fczerindeki \u00e7er\u00e7evelenmi\u015f resimler gibi d\u00fc\u015f\u00fcnebilirsiniz. Alt grafikler olu\u015fturdu\u011fumuzda, asl\u0131nda bir Figure i\u00e7inde birden fazla Axes nesnesi tan\u0131mlam\u0131\u015f oluyoruz. Bu ayr\u0131m, Matplotlib&#8217;i anlamak ve \u00f6zellikle alt grafiklerle \u00e7al\u0131\u015f\u0131rken kontrol\u00fc ele almak i\u00e7in kritik \u00f6neme sahiptir.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Bo\u015f bir Figure ve tek bir Axes olu\u015ftural\u0131m\nfig, ax = plt.subplots() \n\n# Axes \u00fczerinde bir \u00e7izgi grafi\u011fi \u00e7izelim\nax.plot(np.random.rand(10)) \n\n# Grafi\u011fe ba\u015fl\u0131k ve eksen etiketleri ekleyelim\nax.set_title(\"Tek Ba\u015f\u0131na Bir Grafik\")\nax.set_xlabel(\"X Ekseni\")\nax.set_ylabel(\"Y Ekseni\")\n\n# Figure'e genel bir ba\u015fl\u0131k ekleyebiliriz\nfig.suptitle(\"Ana Fig\u00fcr Ba\u015fl\u0131\u011f\u0131\")\n\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nYukar\u0131daki kod \u00f6rne\u011finde, <code>plt.subplots()<\/code> fonksiyonu hem bir Figure nesnesi (<code>fig<\/code>) hem de tek bir Axes nesnesi (<code>ax<\/code>) d\u00f6nd\u00fcr\u00fcr. Daha sonra, t\u00fcm \u00e7izim i\u015flemleri <code>ax<\/code> \u00fczerinde yap\u0131l\u0131rken, <code>fig.suptitle()<\/code> gibi fonksiyonlar Figure'\u00fcn tamam\u0131na etki eder. Bu net ayr\u0131m sayesinde, alt grafikler olu\u015ftururken her bir grafi\u011fi ba\u011f\u0131ms\u0131z olarak y\u00f6netebilir ve ana fig\u00fcr\u00fcn genel \u00f6zelliklerini de kontrol edebiliriz. Bu temel bilgileri anlad\u0131\u011f\u0131m\u0131zda, <code>subplot()<\/code> ve <code>subplots()<\/code> fonksiyonlar\u0131n\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kavramak \u00e7ok daha kolay olacakt\u0131r.\n<\/p>\n<h2>subplot() ve subplots() Fonksiyonlar\u0131 Aras\u0131ndaki Fark Nedir? Nas\u0131l Kullan\u0131l\u0131rlar?<\/h2>\n<p>\nMatplotlib'de alt grafikler olu\u015fturman\u0131n iki ana yolu vard\u0131r: <code>plt.subplot()<\/code> ve <code>plt.subplots()<\/code>. Her ikisi de ayn\u0131 amaca hizmet etse de, kullan\u0131mlar\u0131 ve esneklik dereceleri a\u00e7\u0131s\u0131ndan farkl\u0131l\u0131klar g\u00f6sterirler. Bu farklar\u0131 anlamak, ihtiyac\u0131n\u0131za en uygun olan\u0131 se\u00e7menizi sa\u011flayacakt\u0131r.\n<\/p>\n<h3>plt.subplot() ile Ad\u0131m Ad\u0131m Alt Grafik Olu\u015fturma<\/h3>\n<p>\n<code>plt.subplot(nrows, ncols, index)<\/code> fonksiyonu, tek tek alt grafikler olu\u015fturmak istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r. Burada <code>nrows<\/code> toplam sat\u0131r say\u0131s\u0131n\u0131, <code>ncols<\/code> toplam s\u00fctun say\u0131s\u0131n\u0131 ve <code>index<\/code> ise mevcut alt grafi\u011fin konumunu belirtir (1'den ba\u015flayarak soldan sa\u011fa, yukar\u0131dan a\u015fa\u011f\u0131ya do\u011fru say\u0131l\u0131r). Her <code>plt.subplot()<\/code> \u00e7a\u011fr\u0131s\u0131, yeni bir Axes nesnesi olu\u015fturur ve onu mevcut Figure'e ekler. E\u011fer bir Figure hen\u00fcz olu\u015fturulmam\u0131\u015fsa, bu fonksiyon otomatik olarak yeni bir Figure olu\u015fturur.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Birincil alt grafik: 2 sat\u0131r, 1 s\u00fctun, 1. grafik\nplt.subplot(2, 1, 1) \nplt.plot(np.random.rand(10), color='red')\nplt.title(\"Zaman Serisi A\")\nplt.ylabel(\"De\u011fer\")\n\n# \u0130kincil alt grafik: 2 sat\u0131r, 1 s\u00fctun, 2. grafik\nplt.subplot(2, 1, 2) \nplt.plot(np.random.rand(10) * 10, color='blue')\nplt.title(\"Zaman Serisi B\")\nplt.ylabel(\"Hacim\")\nplt.xlabel(\"Zaman\")\n\n# Grafikler aras\u0131ndaki bo\u015flu\u011fu otomatik ayarla\nplt.tight_layout() \nplt.suptitle(\"subplot() ile \u0130ki Zaman Serisi\") # Figure genel ba\u015fl\u0131\u011f\u0131\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nBu y\u00f6ntemde, her <code>plt.subplot()<\/code> \u00e7a\u011fr\u0131s\u0131ndan sonra, o anda aktif olan Axes nesnesi \u00fczerinde \u00e7izim yapars\u0131n\u0131z. Bu, basit d\u00fczenlemeler i\u00e7in yeterli olabilir, ancak birden fazla alt grafi\u011fi d\u00f6ng\u00fc i\u00e7inde olu\u015ftururken veya Axes nesneleri \u00fczerinde do\u011frudan kontrol sa\u011flamak istedi\u011finizde biraz hantal kalabilir. Her \u00e7a\u011fr\u0131da manuel olarak indeks belirtmek, \u00f6zellikle \u00e7ok say\u0131da alt grafikle \u00e7al\u0131\u015f\u0131rken hata yapma olas\u0131l\u0131\u011f\u0131n\u0131 art\u0131rabilir. Ayr\u0131ca, t\u00fcm Axes nesnelerine ayn\u0131 anda eri\u015fim sa\u011flamak biraz daha karma\u015f\u0131k hale gelir.\n<\/p>\n<h3>plt.subplots() ile Daha Kontroll\u00fc Alt Grafik Olu\u015fturma<\/h3>\n<p>\n<code>fig, ax = plt.subplots(nrows, ncols, ...)<\/code> fonksiyonu, Matplotlib'de alt grafik olu\u015fturman\u0131n tercih edilen yoludur. Bu fonksiyon, bir Figure nesnesi (<code>fig<\/code>) ve bir veya daha fazla Axes nesnesini (<code>ax<\/code>) ayn\u0131 anda d\u00f6nd\u00fcr\u00fcr. E\u011fer tek bir alt grafik olu\u015fturuyorsan\u0131z, <code>ax<\/code> tek bir Axes nesnesi olacakt\u0131r. E\u011fer birden fazla alt grafik olu\u015fturuyorsan\u0131z, <code>ax<\/code> bir NumPy dizisi (array) \u015feklinde Axes nesnelerini i\u00e7erecektir. Bu yap\u0131, \u00f6zellikle d\u00f6ng\u00fclerle alt grafikler olu\u015ftururken veya her bir alt grafik \u00fczerinde ayr\u0131 ayr\u0131 i\u015flem yaparken \u00e7ok daha esneklik ve kontrol sa\u011flar.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# 2 sat\u0131r, 2 s\u00fctunlu bir alt grafik d\u00fczeni olu\u015ftural\u0131m\n# fig: ana Figure nesnesi\n# axs: 2x2 boyutunda Axes nesneleri i\u00e7eren bir NumPy dizisi\nfig, axs = plt.subplots(2, 2, figsize=(10, 8)) \n\n# Her bir alt grafik \u00fczerinde d\u00f6ng\u00fc yaparak \u00e7izim yapal\u0131m\nfor i in range(2):\n    for j in range(2):\n        axs[i, j].plot(np.random.rand(10), label=f'Veri {i*2+j+1}')\n        axs[i, j].set_title(f'Grafik ({i+1},{j+1})')\n        axs[i, j].legend()\n\n# Grafikler aras\u0131ndaki bo\u015flu\u011fu ayarlayal\u0131m\nplt.tight_layout()\nfig.suptitle(\"subplots() ile \u00c7oklu Alt Grafikler\", fontsize=16) # Figure genel ba\u015fl\u0131\u011f\u0131\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\n<code>plt.subplots()<\/code> kullan\u0131m\u0131, alt grafiklerin d\u00fczenini ve Figure boyutunu daha kolay y\u00f6netmenizi sa\u011flar (<code>figsize<\/code> parametresi ile). Ayr\u0131ca, <code>axs<\/code> dizisi sayesinde, her bir alt grafi\u011fe do\u011frudan eri\u015febilir ve gerekti\u011finde \u00f6zelliklerini de\u011fi\u015ftirebilirsiniz. Bu, \u00f6zellikle karma\u015f\u0131k d\u00fczenlemeler veya dinamik olarak olu\u015fturulan grafik setleri i\u00e7in vazge\u00e7ilmez bir \u00f6zelliktir. <code>sharex=True<\/code> veya <code>sharey=True<\/code> gibi parametrelerle eksenleri payla\u015fma gibi geli\u015fmi\u015f \u00f6zellikler de <code>plt.subplots()<\/code> ile \u00e7ok daha kolay uygulanabilir. Genel olarak, modern Matplotlib kullan\u0131m\u0131 i\u00e7in <code>plt.subplots()<\/code> tercih edilen y\u00f6ntemdir ve daha temiz, daha anla\u015f\u0131l\u0131r kod yazman\u0131z\u0131 sa\u011flar.\n<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: \u00c7ok say\u0131da alt grafik olu\u015fturdu\u011funuzda (\u00f6rne\u011fin 10'dan fazla), <code>plt.subplots(..., sharex=True, sharey=True)<\/code> kullanarak eksenleri payla\u015fmak hem g\u00f6rsel tutarl\u0131l\u0131k sa\u011flar hem de okunabilirli\u011fi art\u0131r\u0131r.\n<\/div>\n<h2>Geli\u015fmi\u015f Alt Grafik D\u00fczenlemeleri ve GridSpec Kullan\u0131m\u0131<\/h2>\n<p>\nMatplotlib'in <code>subplot()<\/code> ve <code>subplots()<\/code> fonksiyonlar\u0131 \u00e7o\u011fu durumda yeterli olsa da, bazen daha karma\u015f\u0131k ve esnek alt grafik d\u00fczenlemelerine ihtiya\u00e7 duyar\u0131z. \u00d6rne\u011fin, baz\u0131 grafiklerin di\u011ferlerinden daha geni\u015f veya daha uzun olmas\u0131n\u0131 isteyebilir, veya bir grafi\u011fin birden fazla sat\u0131r veya s\u00fctunu kaplamas\u0131n\u0131 sa\u011flayabiliriz. \u0130\u015fte bu gibi senaryolarda <code>GridSpec<\/code> devreye girer. <code>GridSpec<\/code>, bir Figure i\u00e7indeki alt grafiklerin konumlar\u0131n\u0131 ve boyutlar\u0131n\u0131 daha ince tanelerle kontrol etmemizi sa\u011flayan g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.\n<\/p>\n<p>\n<code>GridSpec<\/code> ile \u00e7al\u0131\u015f\u0131rken, \u00f6ncelikle bir k\u0131lavuz (grid) tan\u0131mlar\u0131z ve ard\u0131ndan bu k\u0131lavuz i\u00e7indeki belirli h\u00fccreleri veya h\u00fccre bloklar\u0131n\u0131 bir alt grafik olarak atar\u0131z. Bu, bir tablo yap\u0131s\u0131 olu\u015fturup h\u00fccreleri birle\u015ftirmeye benzer. Bu y\u00f6ntem, \u00f6zellikle farkl\u0131 boyutlardaki grafikleri ayn\u0131 Figure i\u00e7inde d\u00fczenlemek istedi\u011finizde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport matplotlib.gridspec as gridspec\nimport numpy as np\n\nfig = plt.figure(figsize=(12, 8)) # Figure nesnesini manuel olu\u015ftural\u0131m\n\n# 3 sat\u0131r, 3 s\u00fctunluk bir \u0131zgara tan\u0131mlayal\u0131m\ngs = gridspec.GridSpec(3, 3, figure=fig)\n\n# B\u00fcy\u00fck grafik: \u0130lk iki sat\u0131r\u0131 ve ilk iki s\u00fctunu kaplas\u0131n\nax1 = fig.add_subplot(gs[0:2, 0:2])\nax1.plot(np.random.rand(50).cumsum(), color='purple', label='B\u00fcy\u00fck Veri Seti')\nax1.set_title('Genel E\u011filim (2x2 Alan Kaplayan)')\nax1.legend()\n\n# K\u00fc\u00e7\u00fck grafik 1: \u0130lk sat\u0131r\u0131n son s\u00fctununu kaplas\u0131n\nax2 = fig.add_subplot(gs[0, 2])\nax2.bar(['A', 'B', 'C'], [10, 20, 15], color='green')\nax2.set_title('Kategorik Da\u011f\u0131l\u0131m')\n\n# K\u00fc\u00e7\u00fck grafik 2: \u0130kinci sat\u0131r\u0131n son s\u00fctununu kaplas\u0131n\nax3 = fig.add_subplot(gs[1, 2])\nax3.scatter(np.random.rand(20), np.random.rand(20) * 100, color='orange')\nax3.set_title('Nokta Grafi\u011fi')\n\n# K\u00fc\u00e7\u00fck grafik 3: Son sat\u0131r\u0131n tamam\u0131n\u0131 kaplas\u0131n (3x1 alan)\nax4 = fig.add_subplot(gs[2, :]) # gs[2, :] -> 3. sat\u0131r\u0131n t\u00fcm s\u00fctunlar\u0131\nax4.hist(np.random.randn(1000), bins=30, color='brown', alpha=0.7)\nax4.set_title('Veri Da\u011f\u0131l\u0131m\u0131 (3x1 Alan Kaplayan)')\n\nplt.tight_layout()\nfig.suptitle(\"GridSpec ile Karma\u015f\u0131k Alt Grafik D\u00fczeni\", fontsize=18, y=1.02)\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nYukar\u0131daki \u00f6rnekte g\u00f6rebilece\u011finiz gibi, <code>GridSpec<\/code> sayesinde farkl\u0131 boyut ve konumland\u0131rmalara sahip alt grafikler olu\u015fturabildik. <code>gs[row_start:row_end, col_start:col_end]<\/code> dilimleme (slicing) yetene\u011fi, istedi\u011fimiz alanlar\u0131 birle\u015ftirmemizi veya belirli bir aral\u0131\u011f\u0131 se\u00e7memizi sa\u011flar. Bu y\u00f6ntem, \u00f6zellikle g\u00f6rsel hiyerar\u015fi olu\u015fturmak veya belirli bir grafi\u011fin daha fazla dikkat \u00e7ekmesini sa\u011flamak istedi\u011finizde \u00e7ok i\u015fe yarar. \u00d6rne\u011fin, bir ana grafi\u011fin yan\u0131na onunla ilgili k\u00fc\u00e7\u00fck detay grafikleri yerle\u015ftirmek i\u00e7in <code>GridSpec<\/code> idealdir. Ayr\u0131ca, <code>GridSpec<\/code>'in <code>width_ratios<\/code> ve <code>height_ratios<\/code> parametreleri ile sat\u0131r ve s\u00fctunlar\u0131n g\u00f6receli geni\u015fliklerini ve y\u00fcksekliklerini de ayarlayabilirsiniz, bu da g\u00f6rsel dengeyi optimize etmek i\u00e7in harika bir yoldur. <code>GridSpec<\/code>, Matplotlib'de alt grafik d\u00fczenlemede size tam anlam\u0131yla sanatsal bir \u00f6zg\u00fcrl\u00fck sunar.\n<\/p>\n<h2>Vaka Analizi: Finansal Verilerin Kar\u015f\u0131la\u015ft\u0131rmal\u0131 Analizi<\/h2>\n<p>\nGer\u00e7ek d\u00fcnya senaryolar\u0131nda alt grafiklerin g\u00fcc\u00fcn\u00fc g\u00f6stermek i\u00e7in, finansal piyasalardan bir \u00f6rnek \u00fczerinden ilerleyelim. Bir yat\u0131r\u0131mc\u0131n\u0131n, belirli bir hisse senedinin fiyat hareketlerini ve i\u015flem hacmini ayn\u0131 anda inceleyerek daha bilin\u00e7li kararlar almak istedi\u011fini varsayal\u0131m. Genellikle fiyat ve hacim farkl\u0131 \u00f6l\u00e7eklerde oldu\u011fu i\u00e7in, bunlar\u0131 tek bir grafikte g\u00f6stermek zorlu\u011fa neden olur. Ancak alt grafikler bu sorunu zarif bir \u015fekilde \u00e7\u00f6zer.\n<\/p>\n<p>\nBu senaryoda, bir hisse senedinin g\u00fcnl\u00fck kapan\u0131\u015f fiyatlar\u0131n\u0131 ve g\u00fcnl\u00fck i\u015flem hacmini i\u00e7eren sahte veriler kullanaca\u011f\u0131z. Amac\u0131m\u0131z, fiyat\u0131n nas\u0131l hareket etti\u011fini ve bu hareketlerin hangi i\u015flem hacimleri ile desteklendi\u011fini ayn\u0131 fig\u00fcr \u00fczerinde net bir \u015fekilde g\u00f6stermektir.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as pd\nfrom datetime import datetime, timedelta\n\n# Sahte finansal veri olu\u015ftural\u0131m\ndates = [datetime.now() - timedelta(days=i) for i in range(100)]\ndates.reverse() # Tarihleri kronolojik s\u0131raya koy\n\n# Rastgele hisse senedi fiyat\u0131 sim\u00fclasyonu\nprices = np.random.normal(loc=100, scale=5, size=100).cumsum() + 50\n# \u0130\u015flem hacmi sim\u00fclasyonu (fiyat hareketleriyle ili\u015fkili olabilir)\nvolume = np.random.normal(loc=100000, scale=20000, size=100)\n# Fiyatlardaki ani art\u0131\u015flarda hacmi biraz art\u0131ral\u0131m\nfor i in range(1, len(prices)):\n    if prices[i] > prices[i-1] * 1.02: # Fiyatta %2'den fazla art\u0131\u015f varsa\n        volume[i] *= np.random.uniform(1.2, 1.5) # Hacmi art\u0131r\n\ndf = pd.DataFrame({'Date': dates, 'Price': prices, 'Volume': volume})\ndf.set_index('Date', inplace=True)\n\n# plt.subplots() kullanarak iki alt grafik olu\u015ftural\u0131m\n# sharex=True ile X eksenini payla\u015farak kayd\u0131rma ve zoom'u senkronize edelim\nfig, (ax_price, ax_volume) = plt.subplots(2, 1, figsize=(12, 8), sharex=True)\n\n# Fiyat grafi\u011fi\nax_price.plot(df.index, df['Price'], color='blue', label='Kapan\u0131\u015f Fiyat\u0131')\nax_price.set_title('Hisse Senedi Fiyat ve Hacim Analizi', fontsize=16)\nax_price.set_ylabel('Fiyat ($)', color='blue')\nax_price.tick_params(axis='y', labelcolor='blue')\nax_price.grid(True, linestyle='--', alpha=0.7)\nax_price.legend(loc='upper left')\n\n# Hacim grafi\u011fi\nax_volume.bar(df.index, df['Volume'], color='green', alpha=0.6, label='\u0130\u015flem Hacmi')\nax_volume.set_ylabel('Hacim', color='green')\nax_volume.set_xlabel('Tarih')\nax_volume.tick_params(axis='y', labelcolor='green')\nax_volume.grid(True, linestyle='--', alpha=0.7)\nax_volume.legend(loc='upper left')\n\n# X ekseni etiketlerini daha okunur hale getirelim\nfig.autofmt_xdate()\n\n# Grafikler aras\u0131ndaki bo\u015flu\u011fu ayarlayal\u0131m\nplt.tight_layout(rect=[0, 0.03, 1, 0.95]) # fig.suptitle i\u00e7in yer b\u0131rak\n\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nBu \u00f6rnekte, <code>plt.subplots(2, 1, ..., sharex=True)<\/code> kullanarak \u00fcst \u00fcste iki alt grafik olu\u015fturduk ve X eksenlerini payla\u015ft\u0131rd\u0131k. Bu sayede, kullan\u0131c\u0131 bir grafikte kayd\u0131rma veya yak\u0131nla\u015ft\u0131rma yapt\u0131\u011f\u0131nda, di\u011fer grafik de otomatik olarak senkronize olur. Bu, \u00f6zellikle zaman serisi verilerinde kar\u015f\u0131la\u015ft\u0131rmal\u0131 analiz yaparken son derece \u00f6nemlidir. Hacim grafi\u011finde \u00e7ubuk grafik kullan\u0131rken, fiyat grafi\u011finde \u00e7izgi grafik kullanarak farkl\u0131 g\u00f6rselle\u015ftirme t\u00fcrlerini ayn\u0131 fig\u00fcr \u00fczerinde ba\u015far\u0131yla birle\u015ftirdik. Renk kodlamas\u0131 ve ba\u015fl\u0131klar sayesinde her iki grafi\u011fin neyi temsil etti\u011fi a\u00e7\u0131k\u00e7a belirtildi. Bu t\u00fcr bir d\u00fczenleme, finansal verileri yorumlarken e\u011filimleri, anormallikleri ve korelasyonlar\u0131 \u00e7ok daha h\u0131zl\u0131 ve etkili bir \u015fekilde g\u00f6rmemizi sa\u011flar. \u00d6rne\u011fin, bir fiyat art\u0131\u015f\u0131n\u0131n y\u00fcksek hacimle desteklenip desteklenmedi\u011fini tek bir bak\u0131\u015fta anlayabiliriz. Bu, finansal analistler i\u00e7in vazge\u00e7ilmez bir g\u00f6rselle\u015ftirme tekni\u011fidir.\n<\/p>\n<h2>Alt Grafiklerde Eksenleri Payla\u015fma ve \u0130\u00e7 \u0130\u00e7e Grafikler<\/h2>\n<p>\nAlt grafiklerle \u00e7al\u0131\u015f\u0131rken, bazen farkl\u0131 grafiklerin eksenlerini payla\u015fmak isteyebiliriz. Bu, \u00f6zellikle ayn\u0131 birimdeki veya ayn\u0131 zaman \u00e7izelgesindeki verileri kar\u015f\u0131la\u015ft\u0131r\u0131rken g\u00f6rsel tutarl\u0131l\u0131\u011f\u0131 sa\u011flamak ve gereksiz eksen etiketlerini kald\u0131rmak i\u00e7in harika bir yoldur. Matplotlib, <code>plt.subplots()<\/code> fonksiyonunun <code>sharex<\/code> ve <code>sharey<\/code> parametreleri arac\u0131l\u0131\u011f\u0131yla bu \u00f6zelli\u011fi kolayca sunar.\n<\/p>\n<h3>Eksenleri Payla\u015fma<\/h3>\n<p>\n<code>sharex=True<\/code> veya <code>sharey=True<\/code> parametrelerini kullanarak, belirtilen eksenin t\u00fcm alt grafiklerde ayn\u0131 olmas\u0131n\u0131 sa\u011flayabiliriz. Bu, kullan\u0131c\u0131 bir alt grafikte yak\u0131nla\u015ft\u0131rma veya kayd\u0131rma yapt\u0131\u011f\u0131nda, di\u011fer t\u00fcm payla\u015f\u0131lan eksenlere sahip alt grafiklerin de buna g\u00f6re ayarlanaca\u011f\u0131 anlam\u0131na gelir. Bu, \u00f6zellikle zaman serisi verilerinde veya ayn\u0131 \u00f6l\u00e7\u00fcm birimine sahip farkl\u0131 de\u011fi\u015fkenleri kar\u015f\u0131la\u015ft\u0131r\u0131rken veri yorumlamay\u0131 kolayla\u015ft\u0131r\u0131r.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# 3 alt grafik, hepsi X eksenini payla\u015facak\nfig, axs = plt.subplots(3, 1, figsize=(10, 8), sharex=True)\n\n# Veri olu\u015fturma\nx = np.linspace(0, 10, 100)\ny1 = np.sin(x)\ny2 = np.cos(x) * 2\ny3 = np.sin(x * 2) + np.random.rand(100) * 0.5\n\n# Her bir alt grafi\u011fe \u00e7izim yapma\naxs[0].plot(x, y1, color='red')\naxs[0].set_title('Sin\u00fcs Dalga')\naxs[0].set_ylabel('Y1')\naxs[0].grid(True)\n\naxs[1].plot(x, y2, color='blue')\naxs[1].set_title('Kosin\u00fcs Dalga (genli\u011fi 2x)')\naxs[1].set_ylabel('Y2')\naxs[1].grid(True)\n\naxs[2].plot(x, y3, color='green')\naxs[2].set_title('G\u00fcr\u00fclt\u00fcl\u00fc Sin\u00fcs Dalga')\naxs[2].set_ylabel('Y3')\naxs[2].set_xlabel('Ortak X Ekseni') # Sadece en alt grafikte X ekseni etiketi g\u00f6sterilir\naxs[2].grid(True)\n\nfig.suptitle(\"Payla\u015f\u0131lan X Ekseni ile \u00dc\u00e7 Alt Grafik\", fontsize=16)\nplt.tight_layout(rect=[0, 0.03, 1, 0.95])\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nBu \u00f6rnekte, \u00fc\u00e7 alt grafik de ayn\u0131 X eksenini payla\u015ft\u0131\u011f\u0131 i\u00e7in, sadece en alttaki grafikte X ekseni etiketleri g\u00f6sterilir. Bu, g\u00f6rsel da\u011f\u0131n\u0131kl\u0131\u011f\u0131 azalt\u0131r ve grafi\u011fin daha temiz g\u00f6r\u00fcnmesini sa\u011flar.\n<\/p>\n<h3>\u0130\u00e7 \u0130\u00e7e (Inset) Grafikler<\/h3>\n<p>\nBazen bir ana grafi\u011fin belirli bir b\u00f6lgesini daha yak\u0131ndan incelemek veya bir ana grafi\u011fin i\u00e7ine k\u00fc\u00e7\u00fck bir \u00f6zet grafik eklemek isteyebiliriz. Matplotlib'de bu, \"inset\" veya \"i\u00e7 i\u00e7e\" grafikler olarak bilinir ve genellikle <code>fig.add_axes()<\/code> veya <code>ax.inset_axes()<\/code> fonksiyonlar\u0131 ile yap\u0131l\u0131r. <code>ax.inset_axes()<\/code>, mevcut bir Axes nesnesine ba\u011f\u0131l olarak konumland\u0131r\u0131ld\u0131\u011f\u0131 i\u00e7in daha kullan\u0131\u015fl\u0131d\u0131r.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Ana grafik i\u00e7in Figure ve Axes olu\u015ftural\u0131m\nfig, ax = plt.subplots(figsize=(10, 6))\n\n# Ana grafik verisi\nx = np.linspace(0, 10, 500)\ny = np.sin(x) + x\/5\n\nax.plot(x, y, label='Ana Veri E\u011filimi', color='darkcyan', linewidth=2)\nax.set_title('Ana Grafik ve Detayl\u0131 B\u00f6lge', fontsize=16)\nax.set_xlabel('X Ekseni')\nax.set_ylabel('Y Ekseni')\nax.grid(True, linestyle='--', alpha=0.6)\nax.legend()\n\n# \u0130\u00e7 i\u00e7e (inset) grafik olu\u015ftural\u0131m\n# [x, y, width, height] format\u0131nda konum ve boyutlar (ana eksenlere g\u00f6re oranlar)\ninset_ax = ax.inset_axes([0.6, 0.6, 0.35, 0.35]) \n\n# Inset grafik i\u00e7in daha dar bir X aral\u0131\u011f\u0131 belirleyelim (ana grafi\u011fin bir k\u0131sm\u0131)\nx_zoom = x[(x > 3) & (x < 5)]\ny_zoom = y[(x > 3) & (x < 5)]\n\ninset_ax.plot(x_zoom, y_zoom, color='red', linewidth=1.5)\ninset_ax.set_title('Yak\u0131nla\u015ft\u0131r\u0131lm\u0131\u015f B\u00f6lge', fontsize=10)\ninset_ax.set_xlim(3, 5) # Inset grafi\u011fin kendi eksen limitleri\ninset_ax.set_ylim(0.5, 2.5)\ninset_ax.grid(True, linestyle=':', alpha=0.5)\n\n# Ana grafikte yak\u0131nla\u015ft\u0131r\u0131lan b\u00f6lgeyi belirtmek i\u00e7in dikd\u00f6rtgen ekleyelim\nax.indicate_inset_zoom(inset_ax, edgecolor=\"black\", alpha=0.8)\n\nplt.tight_layout()\nplt.show()\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nBu \u00f6rnekte, ana grafi\u011fin i\u00e7ine, belirli bir X aral\u0131\u011f\u0131n\u0131n daha detayl\u0131 g\u00f6r\u00fcn\u00fcm\u00fcn\u00fc sunan k\u00fc\u00e7\u00fck bir grafik yerle\u015ftirdik. <code>ax.inset_axes([x_konum, y_konum, geni\u015flik, y\u00fckseklik])<\/code> ile inset grafi\u011fin konumunu ve boyutunu ana Axes nesnesine g\u00f6re oran olarak ayarlad\u0131k. Ayr\u0131ca <code>ax.indicate_inset_zoom()<\/code> fonksiyonu ile ana grafikte hangi b\u00f6lgenin yak\u0131nla\u015ft\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rsel olarak belirten bir dikd\u00f6rtgen de ekledik. Bu teknik, veri biliminde belirli anormallikleri veya ilgi \u00e7ekici noktalar\u0131 vurgulamak i\u00e7in s\u0131k\u00e7a kullan\u0131l\u0131r.\n<\/p>\n<h2>Mobil Cihazlarda Matplotlib Grafikleri: Duyarl\u0131 Tasar\u0131m \u0130pu\u00e7lar\u0131<\/h2>\n<p>\nG\u00fcn\u00fcm\u00fczde veri g\u00f6rselle\u015ftirmeleri sadece masa\u00fcst\u00fc bilgisayarlarda de\u011fil, tabletler ve ak\u0131ll\u0131 telefonlar gibi \u00e7e\u015fitli ekran boyutlar\u0131na sahip mobil cihazlarda da g\u00f6r\u00fcnt\u00fclenmektedir. Bu nedenle, Matplotlib ile olu\u015fturdu\u011funuz grafiklerin farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flayabilmesi (duyarl\u0131 tasar\u0131m) kritik \u00f6neme sahiptir. Matplotlib'in kendisi do\u011frudan \"duyarl\u0131\" HTML \u00e7\u0131kt\u0131lar\u0131 \u00fcretmez, ancak \u00e7izilen grafikleri web sayfalar\u0131na g\u00f6merken veya interaktif web uygulamalar\u0131 geli\u015ftirirken, CSS ve JavaScript ile bu duyarl\u0131l\u0131\u011f\u0131 sa\u011flayabiliriz.\n<\/p>\n<h3>Fig\u00fcr Boyutunu ve \u00c7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fc Ayarlama<\/h3>\n<p>\nMatplotlib'de duyarl\u0131 bir yakla\u015f\u0131m\u0131n ilk ad\u0131m\u0131, grafi\u011fin genel boyutunu ve \u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fcn\u00fc uygun \u015fekilde ayarlamakt\u0131r. <code>plt.figure(figsize=(geni\u015flik, y\u00fckseklik), dpi=\u00e7\u00f6z\u00fcn\u00fcrl\u00fck)<\/code> parametreleri bu konuda size yard\u0131mc\u0131 olur. Geni\u015flik ve y\u00fckseklik genellikle in\u00e7 cinsindendir.\n<\/p>\n<pre><code class=\"language-python\">\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n# Daha k\u00fc\u00e7\u00fck bir fig\u00fcr boyutu tan\u0131mlayarak mobil uyumlu bir ba\u015flang\u0131\u00e7 yapabiliriz\n# Ya da y\u00fczde baz\u0131nda ayarlamalar i\u00e7in sonraki CSS ad\u0131mlar\u0131na ge\u00e7ebiliriz.\nfig, ax = plt.subplots(figsize=(6, 4), dpi=100) # \u00d6rne\u011fin, daha k\u00fc\u00e7\u00fck bir varsay\u0131lan boyut\nax.plot(np.sin(np.linspace(0, 10, 100)))\nax.set_title(\"Mobil Dostu Grafik \u00d6rne\u011fi\")\nplt.tight_layout()\nplt.savefig('mobil_grafik.png', bbox_inches='tight') # PNG olarak kaydedelim\nplt.close(fig) # Figure'\u00fc kapat\n\n<\/pre>\n<p><\/code><\/p>\n<p>\nWeb i\u00e7in statik bir g\u00f6r\u00fcnt\u00fc olu\u015fturuyorsan\u0131z, daha y\u00fcksek bir <code>dpi<\/code> de\u011feri, g\u00f6r\u00fcnt\u00fcn\u00fcn daha az pikselli g\u00f6r\u00fcnmesini sa\u011flar, ancak dosya boyutunu da art\u0131r\u0131r. Mobil cihazlar i\u00e7in ideal olan, hem okunabilirli\u011fi koruyan hem de h\u0131zl\u0131 y\u00fcklenen bir denge bulmakt\u0131r.\n<\/p>\n<h3>Web Sayfalar\u0131na G\u00f6mme ve CSS ile Duyarl\u0131l\u0131k<\/h3>\n<p>\nMatplotlib grafi\u011fini bir web sayfas\u0131na g\u00f6md\u00fc\u011f\u00fcn\u00fczde (genellikle bir PNG veya SVG dosyas\u0131 olarak), CSS kullanarak duyarl\u0131 hale getirebilirsiniz. SVG format\u0131, vekt\u00f6r tabanl\u0131 oldu\u011fu i\u00e7in kalite kayb\u0131 olmadan yeniden boyutland\u0131r\u0131labilir ve bu nedenle web i\u00e7in daha \u00e7ok tercih edilebilir.\n<\/p>\n<pre><code class=\"language-html\">\n<!DOCTYPE html>\n<html lang=\"tr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Duyarl\u0131 Matplotlib Grafi\u011fi<\/title>\n    <style>\n        body {\n            font-family: Arial, sans-serif;\n            margin: 20px;\n        }\n        .chart-container {\n            width: 90%; \/* Konteyner geni\u015fli\u011fi ekran\u0131n %90'\u0131 *\/\n            max-width: 800px; \/* Maksimum geni\u015flik belirleyerek b\u00fcy\u00fck ekranlarda \u00e7ok b\u00fcy\u00fcmesini engelle *\/\n            margin: 0 auto; \/* Ortala *\/\n            box-shadow: 0 0 10px rgba(0,0,0,0.1);\n            padding: 15px;\n            border-radius: 8px;\n            text-align: center; \/* Resmi ortala *\/\n        }\n        .responsive-chart {\n            max-width: 100%; \/* \u0130\u00e7indeki grafik, konteynerin %100'\u00fcn\u00fc kaplas\u0131n *\/\n            height: auto; \/* Oran\u0131 koruyarak y\u00fcksekli\u011fi otomatik ayarla *\/\n            display: block; \/* Etraf\u0131ndaki bo\u015fluklar\u0131 kald\u0131r *\/\n        }\n\n        \/* K\u00fc\u00e7\u00fck ekranlar i\u00e7in \u00f6zel ayarlamalar (media query) *\/\n        @media (max-width: 768px) {\n            .chart-container {\n                width: 95%; \/* Daha k\u00fc\u00e7\u00fck ekranlarda daha fazla geni\u015flik kullan *\/\n                padding: 10px;\n            }\n            h2 {\n                font-size: 1.2em;\n            }\n        }\n        @media (max-width: 480px) {\n            .chart-container {\n                width: 100%; \/* En k\u00fc\u00e7\u00fck ekranlarda tam geni\u015flik *\/\n                padding: 5px;\n            }\n            .responsive-chart {\n                border-radius: 0; \/* K\u00f6\u015feleri yuvarlamay\u0131 kald\u0131rabiliriz *\/\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"chart-container\">\n        <h2>Fiyat ve Hacim Analizi (Duyarl\u0131)<\/h2>\n        <img decoding=\"async\" src=\"mobil_grafik.png\" alt=\"Matplotlib Duyarl\u0131 Grafik\" class=\"responsive-chart\">\n        <p>Bu grafik, hisse senedi performans\u0131n\u0131 ve i\u015flem hacmini g\u00f6stermektedir.<\/p>\n    <\/div>\n<\/body>\n<\/html>\n<\/pre>\n<p><\/code><\/p>\n<p>\nYukar\u0131daki HTML ve CSS kodunda, <code>.responsive-chart<\/code> s\u0131n\u0131f\u0131na uygulanan <code>max-width: 100%; height: auto;<\/code> \u00f6zellikleri, resmin i\u00e7inde bulundu\u011fu konteynerin geni\u015fli\u011fine g\u00f6re otomatik olarak boyutlanmas\u0131n\u0131 ve en boy oran\u0131n\u0131 korumas\u0131n\u0131 sa\u011flar. <code>@media<\/code> kurallar\u0131 ise farkl\u0131 ekran boyutlar\u0131 i\u00e7in (\u00f6rne\u011fin, 768px ve 480px alt\u0131nda) \u00f6zel stil ayarlamalar\u0131 yaparak grafi\u011fin daha da optimize edilmesini sa\u011flar. Bu y\u00f6ntemlerle, Matplotlib ile olu\u015fturdu\u011funuz g\u00f6rselle\u015ftirmelerinizi mobil dostu hale getirebilir ve geni\u015f bir kullan\u0131c\u0131 kitlesine ula\u015fabilirsiniz. Unutmay\u0131n ki, e\u011fer interaktif grafikler istiyorsan\u0131z Plotly veya Bokeh gibi k\u00fct\u00fcphaneleri kullanmak daha do\u011fru bir yakla\u015f\u0131m olabilir, ancak Matplotlib'in statik \u00e7\u0131kt\u0131lar\u0131 bile do\u011fru CSS ile duyarl\u0131 hale getirilebilir.\n<\/p>\n<h2>Sonu\u00e7: Matplotlib subplot() ile G\u00f6rselle\u015ftirmelerinizi G\u00fc\u00e7lendirin<\/h2>\n<p>\nMatplotlib'in <code>subplot()<\/code> ve <code>subplots()<\/code> fonksiyonlar\u0131, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemek i\u00e7in vazge\u00e7ilmez ara\u00e7lard\u0131r. Bu makale boyunca, bu fonksiyonlar\u0131n temel kullan\u0131m\u0131ndan, <code>GridSpec<\/code> ile karma\u015f\u0131k d\u00fczenlemelere, finansal veri analizi gibi ger\u00e7ek d\u00fcnya senaryolar\u0131na ve hatta mobil cihazlarda duyarl\u0131 grafik tasar\u0131m\u0131na kadar geni\u015f bir yelpazeyi ele ald\u0131k. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, alt grafikler sadece estetik bir d\u00fczenleme sa\u011flamakla kalmaz, ayn\u0131 zamanda veriler aras\u0131ndaki ili\u015fkileri daha net bir \u015fekilde anlaman\u0131za ve kar\u015f\u0131la\u015ft\u0131rmal\u0131 analizler yapman\u0131za olanak tan\u0131r.\n<\/p>\n<p>\n<code>plt.subplot()<\/code> basit, tekil alt grafikler i\u00e7in yeterliyken, <code>plt.subplots()<\/code> daha modern ve kontroll\u00fc bir yakla\u015f\u0131m sunarak Figure ve Axes nesnelerine do\u011frudan eri\u015fim imkan\u0131 sa\u011flar. <code>GridSpec<\/code> ise, farkl\u0131 boyutlardaki grafikleri ayn\u0131 fig\u00fcr \u00fczerinde esnek bir \u015fekilde konumland\u0131rma ihtiyac\u0131n\u0131z oldu\u011funda devreye girer. Eksenleri payla\u015fma ve i\u00e7 i\u00e7e grafikler gibi ileri d\u00fczey teknikler, g\u00f6rselle\u015ftirmelerinize derinlik katarken, mobil uyumlu tasar\u0131m ipu\u00e7lar\u0131 da \u00e7al\u0131\u015fmalar\u0131n\u0131z\u0131n daha geni\u015f kitlelere ula\u015fmas\u0131n\u0131 sa\u011flar. Matplotlib'in bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131n\u0131 ustaca kullanarak, veri hikayelerinizi daha etkili ve anla\u015f\u0131l\u0131r bir \u015fekilde anlatabilir, b\u00f6ylece analizlerinizin etkisini art\u0131rabilirsiniz. Veri biliminde ve g\u00f6rselle\u015ftirmede ba\u015far\u0131l\u0131 olmak i\u00e7in bu fonksiyonlar\u0131 pratik yaparak i\u00e7selle\u015ftirmeniz \u015fiddetle tavsiye edilir.\n<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>A\u015fa\u011f\u0131da Matplotlib'deki alt grafiklerle ilgili s\u0131k\u00e7a sorulan baz\u0131 sorular\u0131 ve cevaplar\u0131n\u0131 bulabilirsiniz:<\/p>\n<ol>\n<li>\n        <strong><code>plt.subplot()<\/code> ve <code>plt.subplots()<\/code> aras\u0131nda ne fark vard\u0131r?<\/strong><br \/>\n        <code>plt.subplot(nrows, ncols, index)<\/code>, her \u00e7a\u011fr\u0131da aktif alt grafi\u011fi belirleyerek tek tek alt grafikler olu\u015fturur. Mevcut bir fig\u00fcr yoksa yeni bir fig\u00fcr yarat\u0131r. Buna kar\u015f\u0131l\u0131k, <code>plt.subplots(nrows, ncols)<\/code> hem bir Figure nesnesi hem de bir veya daha fazla Axes nesnesi d\u00f6nd\u00fcr\u00fcr, bu da \u00f6zellikle birden fazla alt grafik \u00fczerinde d\u00f6ng\u00fc yaparak veya toplu i\u015flemler yaparak daha kontroll\u00fc ve modern bir yakla\u015f\u0131m sunar. Genellikle <code>plt.subplots()<\/code> tercih edilir.\n    <\/li>\n<li>\n        <strong>Alt grafiklerimin eksen etiketleri veya ba\u015fl\u0131klar\u0131 \u00fcst \u00fcste biniyor, bunu nas\u0131l d\u00fczeltirim?<\/strong><br \/>\n        Bu yayg\u0131n bir sorundur. Genellikle <code>plt.tight_layout()<\/code> fonksiyonunu kullanarak grafi\u011finizdeki bo\u015fluklar\u0131 otomatik olarak ayarlayabilirsiniz. Daha karma\u015f\u0131k durumlarda, <code>fig.subplots_adjust()<\/code> ile manuel olarak kenar bo\u015fluklar\u0131n\u0131 ve alt grafikler aras\u0131 bo\u015fluklar\u0131 kontrol edebilirsiniz.\n    <\/li>\n<li>\n        <strong>Bir alt grafi\u011fin boyutunu di\u011ferlerinden farkl\u0131 yapmak m\u00fcmk\u00fcn m\u00fcd\u00fcr?<\/strong><br \/>\n        Evet, bu <code>matplotlib.gridspec.GridSpec<\/code> s\u0131n\u0131f\u0131n\u0131 kullanarak m\u00fcmk\u00fcnd\u00fcr. <code>GridSpec<\/code>, bir fig\u00fcr i\u00e7indeki alt grafiklerin konumlar\u0131n\u0131 ve boyutlar\u0131n\u0131 daha esnek bir \u015fekilde tan\u0131mlaman\u0131za olanak tan\u0131r. Belirli alt grafikleri birden fazla sat\u0131r veya s\u00fctun kaplayacak \u015fekilde ayarlayabilirsiniz.\n    <\/li>\n<li>\n        <strong>Alt grafikler aras\u0131nda X veya Y eksenini nas\u0131l payla\u015fabilirim?<\/strong><br \/>\n        <code>plt.subplots()<\/code> fonksiyonunu kullan\u0131rken <code>sharex=True<\/code> veya <code>sharey=True<\/code> parametrelerini ayarlayarak eksenleri payla\u015fabilirsiniz. Bu, ilgili eksen limitlerinin ve kayd\u0131rma\/yak\u0131nla\u015ft\u0131rma i\u015flemlerinin t\u00fcm payla\u015f\u0131lan eksenlerde senkronize olmas\u0131n\u0131 sa\u011flar, g\u00f6rsel tutarl\u0131l\u0131\u011f\u0131 art\u0131r\u0131r ve gereksiz etiketleri gizler.\n    <\/li>\n<li>\n        <strong>Matplotlib grafikleri mobil cihazlarda duyarl\u0131 olacak \u015fekilde nas\u0131l tasarlan\u0131r?<\/strong><br \/>\n        Matplotlib do\u011frudan duyarl\u0131 HTML \u00fcretmese de, grafi\u011fi bir PNG veya SVG dosyas\u0131 olarak kaydedip bir web sayfas\u0131na g\u00f6md\u00fckten sonra CSS (Cascading Style Sheets) kullanarak duyarl\u0131 hale getirebilirsiniz. \u00d6zellikle <code>max-width: 100%; height: auto;<\/code> gibi CSS \u00f6zellikleri ve <code>@media<\/code> sorgular\u0131 ile farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flayacak stiller tan\u0131mlayabilirsiniz.\n    <\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Matplotlib&#8217;in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-31266","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma<\/title>\n<meta name=\"description\" content=\"Matplotlib&#039;in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, subplot() d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma\" \/>\n<meta property=\"og:description\" content=\"Matplotlib&#039;in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, subplot() d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-07T23:31:12+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma\",\"datePublished\":\"2025-10-07T23:31:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\"},\"wordCount\":3168,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\",\"name\":\"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-07T23:31:12+00:00\",\"description\":\"Matplotlib'in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, subplot() d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma","description":"Matplotlib'in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, subplot() d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/","og_locale":"tr_TR","og_type":"article","og_title":"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma","og_description":"Matplotlib'in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, subplot() d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-07T23:31:12+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma","datePublished":"2025-10-07T23:31:12+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/"},"wordCount":3168,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/","url":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/","name":"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-07T23:31:12+00:00","description":"Matplotlib'in subplot() fonksiyonu, Python ile veri g\u00f6rselle\u015ftirme yaparken birden fazla grafi\u011fi tek bir fig\u00fcr \u00fczerinde d\u00fczenlemenin anahtar\u0131d\u0131r. Bu g\u00fc\u00e7l\u00fc ara\u00e7 sayesinde, karma\u015f\u0131k veri setlerini kar\u015f\u0131la\u015ft\u0131rmal\u0131 olarak inceleyebilir, farkl\u0131 de\u011fi\u015fkenler aras\u0131ndaki ili\u015fkileri net bir \u015fekilde ortaya koyabilirsiniz. Peki, bu fonksiyonu en verimli \u015fekilde nas\u0131l kullanabilir ve g\u00f6rselle\u015ftirmelerinizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz? Bu makalede, subplot() d\u00fcnyas\u0131na derinlemesine bir yolculuk yaparak temel prensiplerden ileri d\u00fczey uygulamalara kadar her \u015feyi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/matplotlib-subplot-fonksiyonu-veri-gorsellestirmede-ustalasma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Matplotlib subplot() Fonksiyonu: Veri G\u00f6rselle\u015ftirmede Ustala\u015fma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=31266"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31266\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}