Matplotlib - Działka barowa

Wykres słupkowy lub wykres słupkowy to wykres lub wykres przedstawiający dane jakościowe z prostokątnymi słupkami o wysokości lub długości proporcjonalnej do wartości, które reprezentują. Słupki można kreślić pionowo lub poziomo.

Wykres słupkowy przedstawia porównania między dyskretnymi kategoriami. Jedna oś wykresu przedstawia porównywane kategorie, a druga oś przedstawia zmierzoną wartość.

Matplotlib API udostępnia bar()funkcja, której można używać zarówno w stylu MATLAB, jak i obiektowym API. Podpis funkcji bar () używanej z obiektem axes jest następujący -

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

Funkcja tworzy wykres słupkowy z ograniczonym prostokątem o rozmiarze (szerokość x = 2; x + szerokość = 2; dół; dół + wysokość).

Parametry funkcji to -

x sekwencja skalarów reprezentujących współrzędne x słupków. wyrównaj kontroluje, czy x jest środkiem paska (domyślnie), czy lewą krawędzią.
wysokość skalar lub sekwencja skalarów reprezentujących wysokość (y) słupków.
szerokość skalarny lub podobny do tablicy, opcjonalny. szerokość (y) słupków domyślnie 0,8
Dolny skalarny lub podobny do tablicy, opcjonalny. współrzędna (y) y prętów domyślnie Brak.
wyrównać {'center', 'edge'}, opcjonalne, domyślne 'center'

Funkcja zwraca obiekt kontenera Matplotlib ze wszystkimi słupkami.

Poniżej znajduje się prosty przykład wykresu słupkowego Matplotlib. Pokazuje liczbę studentów zapisanych na różne kursy oferowane w instytucie.

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()

Porównując kilka wielkości i zmieniając jedną zmienną, możemy potrzebować wykresu słupkowego, na którym mamy słupki jednego koloru dla jednej wartości wielkości.

Możemy wykreślić wiele wykresów słupkowych, bawiąc się grubością i położeniem słupków. Zmienna data zawiera trzy serie po cztery wartości. Poniższy skrypt pokaże trzy wykresy słupkowe po cztery słupki. Pręty będą miały grubość 0,25 jednostki. Każdy wykres słupkowy zostanie przesunięty o 0,25 jednostki od poprzedniego. Obiekt danych to multidict zawierający liczbę studentów zdanych w trzech oddziałach uczelni inżynierskiej w ciągu ostatnich czterech lat.

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)

Skumulowany wykres słupkowy zawiera słupki, które reprezentują różne grupy jeden na drugim. Wysokość słupka wynikowego przedstawia połączony wynik grup.

Opcjonalny dolny parametr pliku pyplot.bar()Funkcja umożliwia określenie wartości początkowej dla pręta. Zamiast przechodzić od zera do wartości, przejdzie od dołu do wartości. Pierwsze wywołanie pyplot.bar () wyświetla niebieskie paski. Drugie wywołanie pyplot.bar () wykreśla czerwone słupki, z dolną częścią niebieskich słupków na górze czerwonych słupków.

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()