Python'da Matplotlib'e Giriş

Yayınlanan: 2022-10-04

Matplotlib, makine öğrenimi uzmanlarının çoğunlukla statik ve etkileşimli görselleştirmeler oluşturmak için kullandığı bir Python çizim kitaplığıdır.

Matplotlib nedir?

Mathplotlib, 2003 yılında John D. Hunter tarafından 8 Mayıs 2021'de piyasaya sürülen ve 3.4.2'nin güncel sürümüne sahip bir yaratımdır.

Bu kitaplık büyük ölçüde Python'da, geri kalanı ise C objektifi ve JavaScript'te yazılmıştır ve bu da onu platform uyumlu hale getirir.

Matplotlib, bir Python sayısal uzantısı olan NumPy'yi kullanır. NumPy ile uzantısı, açık kaynaklı bir alternatif olarak uygulanabilirliğini ekler ve MATLAB'dan daha iyi bir tercih olmasını sağlar.

Python GUI uygulamaları için Matplotlib, beraberinde gelen nesne yönelimli API'yi kullanarak üzerinde statik grafiklerin çizilmesine izin verir.

Kullanıcılar, dağılım grafikleri, histogramlar, çubuk grafikler, pasta grafikler, çizgi grafikleri ve kutu grafikleri dahil olmak üzere farklı grafikler kullanarak verilerini görselleştirmek için yalnızca birkaç yazılı Python kodu satırı kullanabilir.

Python kabuğu, Jupyter notebook, dahil olmak üzere ortamlarda grafikler oluşturmak için Matplotlib'i kullanabilirsiniz.
Jupyter laboratuvarı ve ayrıca Pycharm veya Anaconda kullanarak ve çeşitli platformlarda Flask ve Django gibi web uygulama sunucularında.

MATLAB'da olduğu gibi, grafikleri yazı tipleri, çizgiler, renkler ve stiller açısından kapsamlı bir şekilde kontrol edebilirsiniz.

Python'da Matplotib kütüphanesinin kısa tanıtımından sonra, onu sistemlerimizde nasıl kurabileceğimize bakalım.

Matplotlib ortamını ayarlama

Diğer herhangi bir Python paketi ve kütüphanesi gibi, önceden derlenmiş Matplotlib kütüphanesini ve paketlerini pip paket yöneticisi ile tüm işletim sistemlerine kurabilirsiniz.

Tabii ki önce Python ve pip paketini sisteminize kurmanız gerekiyor.

Aşağıdaki komutlar, bu araçların zaten kurulu olup olmadığını doğrulamak için Python ve pip sürümünü görüntüler.

Python'un kurulu olup olmadığını kontrol edin

 Python --version

pip'in kurulu olup olmadığını kontrol edin

 pip -V

Mathplotlib'i yükleyin

Aşağıdaki komut, Matplotlib paketini Python Paket Dizini'nden (PyPI) yükler.

 python -m pip install matplotlib

Bu komut, ilgili Matplotlib paketlerini indirir ve kurar. Kurulum tamamlandıktan sonra başarılı bir kurulum mesajı görmelisiniz.

Matplotlib'in başarıyla kurulduğundan emin olmak için, komut isteminizde Matplotlib'in sürümünü gösterecek olan aşağıdaki komutu yazın.

 import matplotlib matplotlib.__version__

Derlenmemiş Matplotlib paketini kurmak isteyen geliştiricilerin, bağımlılıklara, kurulum komut dosyalarına, yapılandırma dosyalarına ve yamalara ek olarak sistemlerinde doğru derleyiciye erişimi olmalıdır.

Ancak, bu özel derlenmemiş Matplolib kurulumu, özellikle Matplotlib acemi kullanıcıları için karmaşık olabilir. Bu nedenle, kitaplığı saniyeler içinde kurmak için neden tek satırlık bir komut kullanmıyorsunuz?

Matplotlib kurulumundan sonra, yardımcı programlarına erişmek için paketi ortamınıza aktarın.

Matplotlib çizim seçenekleri

Matplotlib, verileri görselleştirmek için çok sayıda çizim seçeneği sunar. Ayrıca, kullanıcının grafikleri işlemek için kullanabileceği farklı temalar, renkler ve palet seçenekleri sağlayarak grafiklerin özelleştirilmesine de olanak tanır.

Bu çizim seçenekleri şunları içerir:

#1. Çubuk Grafikler

Çubuk grafikler olarak bilinen çubuk grafikler, aynı kategorideki değerlerin nicel karşılaştırmasını görselleştirmek için uygun bir seçenektir.

çubuk grafik-1

Matplotlib, bu grafiği, uzunluklarının ve yüksekliklerinin orantılı değerlerini temsil ettiği dikdörtgen çubuklar kullanarak temsil eder. Çubuklar yatay veya dikey olabilir.

Matplotlib, çubuk grafiğini oluşturmak için plt.bar() işlevini kullanır.

Ek olarak, bu grafiği işlemek için daha fazla işlev kullanabilirsiniz. Örneğin, plt.xlabel() ve plt.ylabel() işlevleri , sırasıyla grafiğin x ve y eksenlerini etiketler.

plt.title() işlevi arsanıza bir başlık vermenizi sağlarken plt.savefig() işlevi arsa kaydeder. En önemli olan plot.show() işlevi grafiği görüntüler.

#2. pasta parselleri

Pasta grafikler dediğimiz dairesel bir istatistiksel çizim kullanarak aynı kategori içindeki öğelerin orantılı dağılımını görselleştirebilirsiniz.

Pasta grafikleri, verileri yüzde biçiminde görüntüler. Grafiğin tüm alanı, tüm verilerin yüzdesine karşılık gelirken, tek tek pasta dilimleri, verilerin yüzdesinin bölümlerini temsil eder.

yuvarlak diyagram

Matplotlib, pasta grafiğin parametrelerini çizen ve ayarlayan plt.pie() işlevini kullanır.
Pasta grafiği değerini 1 ondalık basamağa kadar autopct gibi daha fazla parametre, pasta grafiklerinin çizilmesinde yararlıdır.

Ticari kuruluşlar, operasyonlar, satışlar veya kaynaklar gibi ilgili bilgileri sunmada pasta grafiklerini faydalı bulur.

#3. histogram

Bir histogram, sayısal veri dağılımını görüntüler. Verileri farklı bölümlere ayırmak için sürekli aralıklar kullanır.

Bir histogram ve bir çubuk grafiği arasındaki temel fark, işledikleri veri türüdür. Histogramlar sürekli veri türünü işlerken, çubuk grafikler bunun yerine kategorik verileri işler.

histogram

Matplotlib, histogramı oluşturmak için bir dizi rastgele veya tanımlanmış değer kullanan hist() işlevini kullanır.

#4. Çizgi grafikleri

Bu grafikler sayısal ve kategorik olarak tanımladığımız iki veri değeri arasındaki ilişkiyi X ve Y bazında göstermede faydalıdır.

çizgi grafiği

Çizgi grafikleri, bir süre boyunca veri değerlerinin değişimini izlemede önemlidir.

#5. dağılım grafikleri

Dağılım grafikleri, verilerdeki değişkenler arasındaki korelasyon da dahil olmak üzere ilişkiyi gösterir. Aykırı değerlerin belirlenmesinde de yararlıdır.

dağılım grafiği

Dağılım grafikleri, veri değişkenlerinin ilişkisini ve bir değişkendeki değişikliğin diğerini nasıl etkileyebileceğini temsil etmek için noktalar kullanır.

Matplotlib'de araziler nasıl oluşturulur

Matplotlib, farklı grafikler oluşturmak için farklı işlevler kullanır. Ayrıca arsa oluşturmak için çok az kod satırı kullanır.

Aşağıda, Matplotlib'de farklı işlevleri kullanarak farklı çizim seçeneklerinin nasıl oluşturulacağını görüyoruz.

#1. Matplotlib'deki çubuk arsa

Çubuk grafikler, yukarıda açıklandığı gibi, bir eksende kategorilerin karşılaştırmasını ve diğer eksende kategorilerin karşılık gelen değerlerini temsil eden çubukları ve eksenleri kullanarak veri kategorilerini görüntüler.

Matplotlib'deki bar() işlevi, aşağıda gösterildiği gibi, çubukların düzenini tanımlamak için farklı argüman düzenleri alır.

 plt.bar(x, y, height, width, bottom, align)

x ve y parametreleri, çizimdeki çubuğun x koordinat değerlerini ve y koordinat değerlerini temsil eder. Genişlik parametresi çubuğun genişliğini, yükseklik parametresi ise çubuğun yüksekliğini temsil eder.

Örneğin, x adlı bir hayvan barınağındaki köpek ve kedi sayısını gösterelim.

 import matplotlib.pyplot as plt import numpy as np x = ["Cats", "Dogs"] plt.xlabel("Cats and Dogs in Shelter") plt.ylabel("No. of animals in Shelter") plt.title("Number of cats and dogs in shelter x") y = [300, 350] plt.bar(x, y, color ='black', width = 0.5)

Çıktı:

bar_plot
Mathplotlib'de Bar Grafiğinin Çıktısı

Yukarıdaki örneğimizde olduğu gibi, color niteliğini kullanarak çubukların rengini de belirtebilirsiniz. Ayrıca, plt.xlabel and p.ylabel name the x and y axes, plt.title ise arsayı adlandırır.

#2. Pasta grafiği nasıl oluşturulur

Matplotlib, bir pasta grafiği çizmek için pyplot modülüyle birlikte gelen pie() işlevini kullanır.
İşlev, dizi biçiminde çizilecek verileri temsil eder.

Sözdizimi:

 matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Renkler parametresi pasta dilimlerinin rengini ayarlar. Her dilim için bir renk belirtmek üzere bir dizi değer kullanabilirsiniz.

Pastadaki her dilimin ayrıntılarını daha fazla dahil etmek için autopct argümanı, Python'un String biçimlendirme notasyonunu kullanarak her dilimin temsil ettiği sayısal yüzdeleri ekler. Argüman olarak patlatma, dilimin pastanın merkezine olan mesafesini tanımlamak için 0,1'den başlayan bir değerler dizisini kabul eder.

Belirli bir proje için ayrılan yüzde olarak kaynakları görüntüleyen bir pasta grafiği çizelim.

 import matplotlib.pyplot as plt import numpy as np y = np.array([25, 10, 45, 20]) mylabels = ["w", "x", "y", "z"] explodevalues = [0.1, 0.2, 0, 0] colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red'] plt.title("Resources allocated for a random project") plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct='%1.1f%%', shadow = True) plt.show()

Çıktı:

pasta planı
Mathplotlib'de Pie grafiğinin çıktısı

Yukarıdaki grafik, sırasıyla w, x, y ve z olarak etiketlenmiş dört dilimli bir pasta grafiği görüntüler. Patlatma değerleri, dilimlerin pastanın merkezinden ne kadar uzağa yerleştirileceğini tanımlar.

Yukarıdaki tablodan x daha uzaktadır çünkü patlatma değeri diğerlerinden daha büyüktür. shadow özelliği, görüntüdeki gibi pasta grafiğine bir gölge eklerken, autopct , her dilimin temsil ettiği tüm pastanın göreli yüzdesini ayarlar.

#3. Histogram grafiği oluşturma

Bir histogramla, x ekseninde verilen değerlerin aralığını temsil etmek için bir dizi aralık kullanacağız.
Y ekseni ise frekans bilgisini temsil edecektir.

Diğer grafiklerden farklı olarak, Matplotlib'de bir histogram çizmek, grafiği oluşturmak için izlemeniz gereken önceden tanımlanmış bazı adımlar gerektirir.

Bu adımlar şunları içerir:

  1. Sahip olduğunuz veri değerleri kümesinden bir dizi aralık oluşturun. Sizin için rastgele değerler üretebilen np.random.normal() işlevini kullanabilirsiniz.
  2. Bir dizi aralık kullanarak değerleri bir dizi değere dağıtın.
  3. Her belirli aralığa düşen değerleri sayın.
  4. Şimdi histogramı oluşturmak için matplotlib.pyplot.hist() işlevini kullanın.

hist() işlevi , aşağıdakiler de dahil olmak üzere çeşitli parametreleri alır:

x – Bu dizi dizisini temsil eder

bins – Bu, tamsayılar veya bir String dizisi içerebilecek çakışmayan değişken aralıklarını temsil eden isteğe bağlı bir parametredir.

aralık – Kutuların üst ve alt aralığını tanımlar

hizala – Bu parametre, histogramın hizalamasını kontrol eder. İster sol, ister sağ veya orta.

color – Çubukların rengini tanımlar.

rwidth – Histogramdaki çubukların göreli genişliğini bölmenin genişliğine ayarlar.

log – log parametresi, bir histogramın ekseninde bir log ölçeği tanımlar.

Aşağıdaki örnek, tanımlanan değerlere sahip bir histogramı çizer.

 from matplotlib import pyplot as plt x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5, 50, 60, 70, 80] plt.hist(x) plt.title(Histogram plot example') plt.xlabel('x axis') plt.ylabel('frequency') plt.show()

Çıktı:

Histogram grafiğini gösteren resim
Mathplotlib'de histogram grafiğinin çıktısı

#4. Matplotlib'de çizgi grafiği

Matplotlib, uygulanmasına yardımcı olan çeşitli işlevlerle birlikte gelen pyplot adlı alt kitaplığını kullanır.

Çizgi çizimlerini ve eğri çizimler ve çoklu çizgi çizimleri dahil olmak üzere diğer farklı çizgi çizim türlerini çizmek için pyplot ile birlikte gelen genel bir işlev olan plot() işlevini kullanırız. Bu farklı türdeki çizimlerin oluşturulması, y eksenine ilettiğiniz değerlere bağlıdır.

Çizim yaparken, çizelgeleri çizen matplotlib.pyplot ve Numpy'yi içe aktarın. plot(x,y) yöntemi, x ve y bağımsız değişkenlerine rastgele değerler ileterek çizgi grafiğini oluşturur.

Ek olarak, grafiği etiketleyen bir etiket değişkeni iletebilirsiniz. Başlık işlevi ayrıca grafiğin başlığını, xlabel ve ylabel işlevleri ise eksenleri adlandırır. Son olarak, show() işlevi grafiği görüntüler.

Örneğin:

 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 5, 10) y = 3*x + 2 plt.title('Line plot example') plt.xlabel('x axis') plt.ylabel('y axis') plt.plot(x, y) plt.show()

Sonuç:

line_plot-1
Mathplotlib'de çizgi grafiği çıktısı

np.linspace özniteliği, x değerleri için belirli bir aralıkta eşit aralıklı sayılar kümesi olan çizimde döner. Bu, 0 and 5 aralığında 10 değerlik bir dizi oluşturacaktır. Y değerleri, x'in karşılık gelen değerlerini kullanan denklemden oluşturulur.

Dağılım grafikleri oluşturma

Matplotlib, bu grafiği oluşturmak için scatter() yöntemini kullanır.
Bu yöntem aşağıdaki parametreleri alır.

 matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None)

x_axis_data ve y_axis_data parametreleri, isteğe bağlı olabilen ve değerleri Yok olan diğer parametrelerin aksine boş bırakılamaz. x_axis_data argümanı, x ekseni için bir veri dizisini tanımlarken, y_axis_data, y ekseni için bir veri dizisini ayarlar.

Matplotlib'de bir dağılım grafiği örneği

 import matplotlib.pyplot as plt x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16] y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35] plt.title('Scatter plot example') plt.xlabel('x variable') plt.ylabel('y variable') plt.scatter(x, y, c ="green") # To show the plot plt.show()

Çıktısı şöyle olacaktır:

Matplotib'de dağılım grafiğini gösteren resim
Mathplotlib'de dağılım grafiği çıktısı

matplotlib'de subplot() nedir

subplot() işlevi, tek bir Matplotlib figürü üzerinde birden çok grafik çizmek için kullanılabilir. Bu, şekil içindeki birden çok grafiğin görüntülenmesine ve karşılaştırılmasına izin verir.

Bu işlev, üç bağımsız değişkenli bir tanımlama grubu döndürür; sırasıyla birinci ve ikinci argüman olarak satırlar ve sütunlar ve üçüncü argüman olarak da geçerli grafiğin indeksi.

Satırlar ve sütunlar, Matplotlib'in düzenini açıkça tanımlar.

Bu nedenle, plt.subplot(2, 1, 1) , iki satır ve bir sütunlu bir Matplotlib şekli çizecektir ve bu çizim ilk çizim olacaktır.

Öte yandan, plt.subplot(2, 1, 2) iki satır ve bir sütunlu ikinci bir çizim görüntüler.

Bu iki grafiğin çizilmesi, aşağıdaki örnekte olduğu gibi onları üst üste oluşturacaktır.

 import matplotlib.pyplot as plt import numpy as np #plot 1: x = np.array([2, 4, 6, 8]) y = np.array([3, 6, 9, 12]) plt.subplot(2, 1, 1) plt.plot(x,y) #plot 2: x = np.array([3, 6, 9, 12]) y = np.array([1, 2, 3, 4]) plt.subplot(2, 1, 2) plt.plot(x,y) plt.show()

Yukarıdaki örneğin çıktısı aşağıdaki resimdeki gibi olacaktır.

üst üste iki grafik oluşturmak için alt grafiği kullanma

Farklı bir örnek kullanarak, bir satır ve iki sütunlu iki şekil çizmek için alt grafik işlevini kullanalım. Bu, parselleri yan yana gösterecektir.

 import matplotlib.pyplot as plt import numpy as np #plot 1: x = np.array([2, 4, 6, 8]) y = np.array([3, 6, 9, 12]) plt.subplot(1, 2, 1) plt.plot(x,y) #plot 2: x = np.array([3, 6, 9, 12]) y = np.array([1, 2, 3, 4]) plt.subplot(1, 2, 2) plt.plot(x,y) plt.show()

Yukarıdaki örnek aşağıdaki sonucu gösterecektir.

alt konu2

Bu ilginç bir şekilde etkileşimliydi, sence de öyle değil mi?

Son sözler

Matplotlib, Python'da ünlü olarak kullanılan bir görselleştirme kütüphanesidir. Etkileşimi ve yeni başlayanlar için bile kullanım kolaylığı, onu Python'da çizim yapmak için kullanmak için daha da iyi bir araç haline getirir.

Bu makale, pasta grafikler, çubuk grafikler, histogramlar ve dağılım grafikleri dahil olmak üzere Matplotlib ile birlikte gelen işlevlerin oluşturabileceği çeşitli grafiklerin örneklerini ele aldı.

Elbette Python, makine öğrenimi uzmanlarının ve veri bilimcilerinin görselleştirmeler oluşturmak için kullanabileceği başka kitaplıklara da sahiptir.

Matplotlib ile oluşturabileceğiniz daha fazla grafiği ve grafiği oluşturmak için hangi işlevleri kullanacağınızı keşfedebilirsiniz.

Mutlu komplo!