Matplotlib verileri görselleştirmek için kullanılan önemli bir python kütüphanesidir. Bu kütüphane ile iki veya üç boyutlu grafikler oluşturabilmekteyiz. Numpy ve Pandas kütüphanleri ile birliktede kullanılaktadır. Öncelikle İlgili kütüphanleri dahil edelim sonra pyplot sınıfını plt takma adını verip daha hızlı bir şekilde grafikler oluşturalım. x düzlemi ile y düzlemi üzerindeki noktalarımız belirleyelim.
1 2 3 4 5 6 | import matplotlib.pyplot as plt import numpy as np x=np.array([0,6]) #yatay düzlemi y=np.array([0,100]) #dikey düzlem plt.plot(x,y) #grafik oluşturuldu plt.show() #görüntülendi |

İstersek yatay ve dikey düzemde cizgi yerine noktlarda oluşturabiliriz. Bunun için plt.plot(x,y,’o’) sonuna küçük o karaterini gireceğiz
1 2 3 4 5 6 | import matplotlib.pyplot as plt import numpy as np x=np.array([0,6,7,9,10]) #yatay düzlemi y=np.array([0,60,65,90,100]) #dikey düzlem plt.plot(x,y,'o') #grafik oluşturuldu plt.show() #görüntülendi |

Şimdi ise farlı birden çok değerden oluşan bir diagram oluşturalım. Burada ki diagram (1,5) konumunda (2,8) uğrayarak (4,10) ulaşsın.
1 2 3 4 5 6 7 | import matplotlib import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4]) #yatay düzlemi y=np.array([5,8,10]) #dikey düzlem plt.plot(x,y) #grafik oluşturuldu plt.show() #görüntülendi |

Yine isterseniz sadece tek bir düzlem üzerindende grafik oluşturabilirsiniz. Yani iki farklı değerin olmadığı tek bir değerin kullanıldığı grafilerdir. Aşağıdaki örnek sadece bir x(Yatay) düzlemde verilen değerler varken y değerleri verilmemiştir. Bu durum sonucunda y düzlemi 1,2,3,4 gibi sıralı değer alacaktır.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) #yatay düzlemi plt.plot(x) #grafik oluşturuldu plt.show() #görüntülendi |

Plot Marker Kullanımı
Marker ile oluşturduğunuz grafikte notları aşağıdaki gibi gösterebilirsiniz. Saydece plot fonksinyonuna marker='o'
eklemeniz yeterli olacaktır.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x,marker='o') #marker eklendi plt.show() |

İsterseniz ‘o’,’*’,’.’,’,’,’x’,’^’ gibi karakterlerde kullanabilirsiniz.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x,marker='*') #marker eklendi plt.show() |

Çizgi rengini ve sitilin aynı zamanda notları belirtmek için aşağıdaki notasyonuda kullanabilirsiniz. Çizgiler için ‘-‘=>Solid Line,’:’=>Dotted Line, ‘–‘=>Dashed Line ve ‘-.’=>Dashed/Dotted Line notasyonlarınıda kullanabilirsiniz. Yine renklendireme için ‘r’ Red,’g’ Gree,’b’ Blue,’c’ Cyan,’m’ Magenta ,’y’ Yellow,’k’ Black,’w’ White notasyonları kullanabilirsiniz.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x,'o:g') #marker eklendi plt.show() |

Yine şekillendirme için aşağıdaki notasyonlarda işinizi görecektir.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x, marker='o',ms="20") #marker eklendi plt.show() |

Noktaların kenar rengini kırmızı yapalım.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x, marker='o',ms="20",mec="r") #marker eklendi plt.show() |

Şimdi de noktaların rengini değiştirelim
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x, marker='o',ms="20",mec="r",mfc="green") #marker eklendi plt.show() |

Yine aşağıdaki gibi hex koldarı ile kullanımlarıda mecuttur.
1 2 | plt.plot(x, marker = 'o', ms = 10, mec = 'r', mfc = 'r') plt.plot(x, marker = 'o', ms = 20, mec = '#4CAF50', mfc = '#4CAF50') |
Matplotlib Line Kullanımı
Grafik oluşturuken noktolara arasındaki çizgilerin desenlerinide belirte biliyoruz.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x, linestyle = 'dotted') #marker eklendi plt.show() |

Yine aşağıdaki gibi kullanımlarıda mevcuttur. Bu kulanımlarla grafiğinizi dahada belirgin hale getirebilirsiniz. Çizginin kısaltılmış halide aşağıda mevcuttur. (solid,’-‘),(dotted,’:’),(dashed,’–‘),(dashdot,’-.’),(None,” or ‘ ‘)
1 2 3 | plt.plot(x, linestyle = 'dashed') plt.plot(x, ls = ':') plt.plot(x, ls = '--') |
Grafik çizgisinin yine renginide belirleyebiliyoruz. Bu sayede grafik içersideki birden fazla farklı renklerde line kulanabiliriz.
1 2 3 4 5 6 7 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) x_2=np.array([2,3,7,10]) plt.plot(x,color="purple", linestyle = 'dotted') plt.plot(x_2,color="red", linestyle = 'dotted') plt.show() |

Yine aşağıda belirtildiği gibi matplotlib grafik çizgilerini renklendirebilirsiniz.
1 2 | plt.plot(x, c = '#4CAF50') plt.plot(x, c = 'hotpink') |
Matplotlib Linewith Kullanımı
Matplotlib tablolarında grafik çizgisini genişliğini linewidth
ile belirliyoruz. Aşağıdaki örenği inceleyelim
1 2 3 4 5 6 7 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) x_2=np.array([2,3,7,10]) plt.plot(x,color="purple", linewidth ='20') plt.plot(x_2,color="red", linewidth = '10') plt.show() |

Matplotlip Multiline Kullanımı
Matplotlib ile grafik oluştururken birden fazla line oluşturmanız gerekiyorsa aşağıdaki örneği inceleyiniz.
1 2 3 4 5 6 7 8 9 | import matplotlib.pyplot as plt import numpy as np x=np.array([0,3,4,7,9]) #yatay düzlemi y=np.array([0,2,3,4,7]) #dikey düzlem x_2=np.array([2,4,6,8,10]) #yatay düzlemi y_2=np.array([3,4,5,3,7]) #dikey düzlem plt.plot(x,y) #grafik oluşturuldu plt.plot(x_2,y_2) #grafik oluşturuldu plt.show() #görüntülendi |

Python Matplotli Grafik İçi Etkelter (Matplotlib Label)
Matplotlib grafiklerinde kullanıcıya bilgi vermek için x ve y düzleminde açıklma metinlerini girmemiz gerekmektedir. Aşağıdaki örneğimizi inceleyelim
1 2 3 4 5 6 7 8 9 | import matplotlib.pyplot as plt import numpy as np x=np.array([0,3,4,7,9]) #yatay düzlemi y=np.array([0,2,3,4,7]) #dikey düzlem plt.title("Tablo Açıklaması") plt.xlabel("Yata Düzlem Açıklamsı") plt.ylabel("Dikey Düzlem Açıklaması") plt.plot(x,y) plt.show() |

Yine python matplotlib ‘de bu etketlerin özelliklerini aşağıdaki gibi verilebiliriz. Aynı zamanda konumlarınıda loc
parametresi ile verebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 | import matplotlib.pyplot as plt import numpy as np x=np.array([0,3,4,7,9]) #yatay düzlemi y=np.array([0,2,3,4,7]) #dikey düzlem title={"font":"serif","color":"green","size":16} xtitle={"font":"serif","color":"blue","size":16} ytitle={"font":"serif","color":"red","size":16} plt.title("Tablo Açıklaması",fontdict=title,loc="right") plt.xlabel("Yata Düzlem Açıklamsı",fontdict=xtitle,loc="left") plt.ylabel("Dikey Düzlem Açıklaması",fontdict=ytitle,loc="bottom") plt.plot(x,y) plt.show() |

Python Matplotlib Grid Kullanımı
Matplotlib ile oluşturduğumuz grafiklerde x,y kordinatları arasında çizgiler oluşturabiliyoruz.
1 2 3 4 5 6 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x) #marker eklendi plt.grid(color = "red",linestyle = ":",linewidth = 1) plt.show() |

Yine aşağıdaki gibi matplotlib kütüphanesinde sadece x ve y konularında da grid oluşturulabilmektedir.
1 2 3 4 5 6 7 | import matplotlib.pyplot as plt import numpy as np x=np.array([1,2,4,2,8]) plt.plot(x) #marker eklendi plt.grid(axis='x') plt.grid(axis='y') plt.show() |

Python Matplotlib Subplot Kullanımı
Python matplotlib ile alt grafikler oluşturabilmektediyiz. Bunu matplotlib’de subplot
ile yapmaktayıdz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import matplotlib.pyplot as plt import numpy as np x_1=np.array([1,2,4,10]) y_1=np.array([50,79,80,100]) plt.subplot(3,3,1) #3 satır 3 sütuna sahib ve birinci plot plt.title("Birinci Plot") plt.plot(x_1,y_1) x_1=np.array([1,2,4,10]) y_1=np.array([10,29,30,40]) plt.subplot(3,3,2) #3 satır 3 sütuna sahib ve ikinci plot plt.title("İkinci Plot") plt.plot(x_1,y_1) x_1=np.array([2,4,6,10]) y_1=np.array([10,29,30,40]) plt.subplot(3,3,3) #3 satır 3 sütuna sahib ve Üçüncü plot plt.title("Üçüncü Plot") plt.plot(x_1,y_1) x_1=np.array([2,4,6,10]) y_1=np.array([10,29,30,40]) plt.subplot(3,3,4) #3 satır 3 sütuna sahib ve Dördüncü plot plt.title("Dördüncü Plot") #başlık plt.plot(x_1,y_1) plt.suptitle('Tablo Başlık') #genel Başlık plt.show() |

Burda kullanmış olduğumuz plt.subplot(3,3,1)
kullanımı üç satırlık ve üç sütunluk bir tablo içerisine
birinci brafik yerleşmiş oluyor. Bu sıralamada sonraki değerde üçüncü parametre plt.subplot(3,3,2)
2 değerini alıyor.
plt.subplot("Satır Adet","Sütun Adet","Grafik Sıra")
şeklinde oluşturulmaktadır.
Matplotlib Dağılım Grafikleri Oluşturma (Scatter Plots)
Python Matplotlib ile notkta dağılım grafikleri oluşturmak için plt.scatter()
fonksiyonu kullanılmaktadır.
Aşağıda buna örnek bir uygulama yapalım.
1 2 3 4 5 6 | import matplotlib.pyplot as plt import numpy as np x=np.array([12,13,15,17,19,20]) y=np.array([40,80,90,170,190,200]) plt.scatter(x,y) plt.show() |

Yine matplotlib kütüphanesinde istersek dağılım grafiklerinde iki grafiğin dağılımını farklı renkler ile gösterebiliriz.
1 2 3 4 5 6 7 8 9 10 11 | import matplotlib.pyplot as plt import numpy as np #Grafik 1 x=np.array([12,13,15,17,19,20]) y=np.array([40,80,90,170,190,200]) plt.scatter(x,y,color="#54aeff") #Grafik 2 x=np.array([14,15,17,19,21,23]) y=np.array([30,70,80,150,160,180]) plt.scatter(x,y,color="#2da44e") plt.show() |

Yine istersek noktaların her birini ayrı ayrı renkledir ve boyutlandırabiliriz. Aynı zamanda renk barınıda yanına ekleyebiliriz. Alpha ile opacity değeri verebiliriz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import matplotlib.pyplot as plt import numpy as np #Grafik 1 x=np.array([12,13,15,17,19,20]) y=np.array([40,80,90,170,190,200]) renk=np.array(["#54aeff","#22aeff","#99aeff","#54eeff","#54cccc","#54aedd"])#sıralı bir şekilde 0,100 arası renkler belirlendi boyut=np.array([1500,800,2800,70,320,30]) #sıralı bir şekilde noktaların boyutları verildi. plt.scatter(x,y,c=renk,s=boyut) #Boyut ve renkler dahil edildi. #Grafik 2 x=np.array([14,15,17,19,21,23]) y=np.array([30,70,80,150,160,180]) renk_1=np.array([20,40,50,70,80,100]) #sıralı bir şekilde 0,100 arası renkler belirlendi boyut=np.array([1000,2050,320,90,50,210]) #sıralı bir şekilde noktaların boyutları verildi. plt.scatter(x,y,c=renk_1,s=boyut,alpha=0.4) #alpha değeri ile opacity düşürüldü plt.colorbar() plt.show() |

Şimdi çok renkli bir grafik oluşturalım 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import matplotlib.pyplot as plt import numpy as np from random import randint #Grafik 1 x=np.array([randint(0,100) for i in range(40)]) y=np.array([randint(0,100) for i in range(40)]) renk=np.array([randint(0,500) for i in range(40)])#sıralı bir şekilde 0,100 arası renkler belirlendi boyut=np.array([randint(100,1000) for i in range(40)]) #sıralı bir şekilde noktaların boyutları verildi. plt.scatter(x,y,c=renk,s=boyut,cmap='Wistia_r') #Boyut ve renkler dahil edildi. cmap ile renk haritası eklendi #Grafik 2 x=np.array([randint(0,100) for i in range(40)]) y=np.array([randint(0,100) for i in range(40)]) renk=np.array([randint(0,500) for i in range(40)])#sıralı bir şekilde 0,100 arası renkler belirlendi boyut=np.array([randint(100,1000) for i in range(40)]) #sıralı bir şekilde noktaların boyutları verildi. plt.scatter(x,y,c=renk,s=boyut,alpha=0.4,cmap='bwr_r') #alpha değeri ile opacity düşürüldü cmap ile renk haritası eklendi plt.colorbar() plt.show() |

Matplotlib Bars Kullanımı (Matplotlib Çubuk Grafik)
Gelin Matplotlib ile dikey çubuklardan oluşan bir grafik daha düzenleyelim ve rengini mor yapalım
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import matplotlib.pyplot as plt import numpy as np x = np.array(["A", "B", "C", "D"]) y = np.array([40, 80, 100, 110]) plt.bar(x,y,color="purple") plt.show() <img width="200" src="https://caglarbostanci.com.tr/wp-content/uploads/2023/04/24.jpg"> <p> Şimdi yatay çubuklardan oluşan bir grafik düzenlemek için matplotlib <code>plt.barh</code> kullanalım </p> <pre>import matplotlib.pyplot as plt import numpy as np x = np.array(["A", "B", "C", "D"]) y = np.array([40, 80, 100, 110]) plt.barh(x,y,color="darkred") plt.show() |

Yine matplotlib yataylarda çubuk genişliği için width=0.1
değeri kullanılırken dikey barlarda height=0.1 değeri kullanılmaktadır.
Python Matplotlib Histogram Grafikği Oluşturma
Örneğin bir veri tabanında kayıtlı kullanıcılarımızın boy ortalamalarını çıkarmak için bir grafik düzenliyelim. Bu grafiğimiz de boylara göre dağılımlar barlar ile gösterilsin.
1 2 3 4 5 6 7 | import matplotlib.pyplot as plt import numpy as np #nampy modülünü kullanarak 170 değerinde 10 luk sapma ile toplam 250 adet random sayı ürettik #bunlar kullanıcılarımızın boy aralığı olmuş oluyor yani 170 e yoğunşarak 250 adet rakam alacağız. boy = np.random.normal(170, 10, 250) plt.hist(boy,color='green') plt.show() |

Python Matplotlib ile pasta grafiğide oluşturabilmekteyiz. Aşağıdaki örneğimizde bunu bir deneyelim.
1 2 3 4 5 | import matplotlib.pyplot as plt import numpy as np y = np.array([20,10,40,15,10]) plt.pie(y) plt.show() |

Örneğimizi detaylandıralım ve bir çok özellik ekleyelim.
1 2 3 4 5 6 7 8 9 10 | import matplotlib.pyplot as plt import numpy as np y = np.array([25,25,25,15,10]) isim=["Php","Python","Java",".NET","Ruby"] #pasta isimlerini veridik renk=["#7a86b8","#326c9d","#f29111","#00a4ef","#c92c23"] #Sırasıyla pastanın renklerini belirledik. aci=0 #başlangı açısını belirledik (saat yönünün tersine başlangıç 0 değeri ise saat 3 yönündedir) pay=[0.1,.1,0,0,0] #Pastayı payladık php ve python değerlerini pastadan ayırdık. plt.pie(y,labels=isim,startangle=aci,explode=pay,shadow=True,colors=renk) #golge ekledik plt.legend(title="Sunucu Dil Dağılımı :") #renk grafiğini ekledik plt.show() |

Bu dersimizde Python Matplotlib modülünü ve metolarını inceledik daha detalı bigi için Matplotlib adresini ziyaret edebilirsiniz. Başarılar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #python -m venv myenv # Windows cmd.exe # C:\> <venv>\Scripts\activate.bat # PowerShell # PS C:\> <venv>\Scripts\Activate.ps1 ######################################## #linux #python3 -m venv myenv #soruce env/bind/activate #pip modul list #pip freeze > requirements.txt #Pip içersindeki paketleri bir text dosyasına yazdırdık #pip list #Pip ile kurulu olan paketleri listeledik #pip install -r requirements.txt #requirements.txt dosyası içerisindeki pakteleri kurduk </venv></venv> |