Matplotlib - Çubuk Grafiği

Çubuk grafik veya çubuk grafik, kategorik verileri, temsil ettikleri değerlerle orantılı yükseklikleri veya uzunlukları olan dikdörtgen çubuklarla sunan bir grafik veya grafiktir. Çubuklar dikey veya yatay olarak çizilebilir.

Bir çubuk grafik, farklı kategoriler arasındaki karşılaştırmaları gösterir. Grafiğin bir ekseni, karşılaştırılan belirli kategorileri gösterir ve diğer eksen ölçülen bir değeri temsil eder.

Matplotlib API, bar()MATLAB stil kullanımının yanı sıra nesne yönelimli API'de kullanılabilen işlev. Axes nesnesiyle kullanılacak bar () fonksiyonunun imzası aşağıdaki gibidir -

ax.bar(x, height, width, bottom, align)

Fonksiyon, bağlı dikdörtgen boyutuyla (x −width = 2; x + width = 2; bottom; bottom + height) bir çubuk grafiği oluşturur.

Fonksiyonun parametreleri -

x çubukların x koordinatlarını temsil eden skaler dizisi. hizalama, x çubuk merkezi (varsayılan) veya sol kenarsa.
yükseklik çubukların yüksekliğini / yüksekliğini temsil eden skaler veya skaler dizisi.
Genişlik skaler veya dizi benzeri, isteğe bağlı. çubukların genişliği (s) varsayılan 0.8
alt skaler veya dizi benzeri, isteğe bağlı. varsayılan çubukların y koordinatları Yok.
hizalamak {'merkez', 'kenar'}, isteğe bağlı, varsayılan 'merkez'

İşlev, tüm çubuklarla bir Matplotlib konteyner nesnesi döndürür.

Aşağıda, Matplotlib çubuk grafiğinin basit bir örneği verilmiştir. Bir enstitüde sunulan çeşitli kurslara kayıtlı öğrenci sayısını gösterir.

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
ax.bar(langs,students)
plt.show()

Birkaç miktarı karşılaştırırken ve bir değişkeni değiştirirken, bir miktar değeri için tek renkli çubuklarımızın olduğu bir çubuk grafik isteyebiliriz.

Çubukların kalınlığı ve konumlarıyla oynayarak birden fazla çubuk grafiği çizebiliriz. Veri değişkeni üç dizi dört değer içerir. Aşağıdaki komut dosyası, dört çubuktan oluşan üç çubuk grafik gösterecektir. Çubukların kalınlığı 0,25 birim olacaktır. Her çubuk grafik, bir öncekinden 0.25 birim kaydırılacaktır. Veri nesnesi, son dört yıl içinde bir mühendislik kolejinin üç dalından geçen öğrencilerin sayısını içeren çoklu bir kimliktir.

import numpy as np
import matplotlib.pyplot as plt
data = [[30, 25, 50, 20],
[40, 23, 51, 17],
[35, 22, 45, 19]]
X = np.arange(4)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(X + 0.00, data[0], color = 'b', width = 0.25)
ax.bar(X + 0.25, data[1], color = 'g', width = 0.25)
ax.bar(X + 0.50, data[2], color = 'r', width = 0.25)

Yığılmış çubuk grafik, üst üste farklı grupları temsil eden çubukları yığınlar. Ortaya çıkan çubuğun yüksekliği, grupların birleşik sonucunu gösterir.

İsteğe bağlı alt parametre pyplot.bar()işlevi, bir çubuk için bir başlangıç ​​değeri belirlemenize izin verir. Sıfırdan bir değere koşmak yerine, en alttan değere gidecektir. Pyplot.bar () öğesine yapılan ilk çağrı mavi çubukları çizer. Pyplot.bar () 'a yapılan ikinci çağrı, mavi çubukların altı kırmızı çubukların üstünde olacak şekilde kırmızı çubukları çizer.

import numpy as np
import matplotlib.pyplot as plt
N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
ind = np.arange(N) # the x locations for the groups
width = 0.35
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.bar(ind, menMeans, width, color='r')
ax.bar(ind, womenMeans, width,bottom=menMeans, color='b')
ax.set_ylabel('Scores')
ax.set_title('Scores by group and gender')
ax.set_xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
ax.set_yticks(np.arange(0, 81, 10))
ax.legend(labels=['Men', 'Women'])
plt.show()