DATAcademy

Jak budować wykresy kolumnowe w pythonie

Wykres kolumnowy (z ang. bar plot) jest jednym z najpopularniejszych wykresów używanych w analizie danych. Wykorzystywany jest on głównie do przedstawienia różnic między poszczególnymi kategoriami danej zmiennej.

Oś odciętych przedstawia porównywane kategorie, za to oś rzędnych obrazuje ilość obserwacji, posiadających wartość odpowiadających danej kategorii.

Głównym celem wykresów kolumnowych jest przedstawienie:

  • różnic między kategoriami,
  • pokazać która kategoria występuję najczęściej, a która najrzadziej,
  • wykryć możliwe wartości odstające,
  • odkryć kształtujący się trend.

Bar plot jest łudząco podobny do histogramów, lecz różnią się tym, że nie pokazują zachodzących zmian w określonym przedziale. Różnią się jeszcze zastosowaniem, mianowicie histogramy tworzy się głównie w celu poznania rozkładu zmiennej, za to wykres kolumnowy służy do porównania różnych kategorii lub zmiennych.

Do zalet wykresów kolumnowych należą między innymi:

  • prostota wykonania wykresu,
  • duża czytelność przy małej liczbie kategorii,
  • możliwość narysowania wykresu zarówno pionowo jak i poziomo,
  • potrafi zarówno wskazywać różnice występujące w jednej zmiennej, ale może również porównywać kilka zmiennych między sobą.

Do wad wykresów kolumnowych trzeba zaliczyć:

  • mała czytelność wykresów przy większej liczbie etykiet,
  • w wypadku mocno zróżnicowanych danych lepiej stosować wykres pudełkowy,
  • w łatwy sposób można zmanipulować wykres, aby dostać fałszywe rezultaty.

Implementacja w Pythonie

Wykres kolumnowy, przez swoją popularność znajduje się w każdej popularnej bibliotece służącej do wizualizacji, między innymi znajduje się w: matplotlib, Seaborn, plotly oraz bokeh.

Poniżej wykorzystamy najpopularniejszą bibliotekę matplotlib do pokazania kilku ciekawych sposobów na tworzenie wykresów kolumnowych.

Na początku zaimportujmy potrzebne biblioteki:

Zwykły, prosty wykres kolumnowy
Aby stworzyć najbardziej podstawowy wykres kolumnowy, wystarczy, że podamy wysokości poszczególnych słupków, oraz ich nazwy:

Powyższe dane prezentują cenę pewnego produktu A na przełomie stycznia i czerwca. Powyższy wykres był bardzo prosty do stworzenia, lecz warto byłoby stworzyć trochę bardziej elegancki wykres.

Bardziej elegancki wykres kolumnowy

Do naszego wykresu kolumnowego możemy dorzucić wiele elementów, między innymi możemy powiększyć nasz wykres, zmienić kolory słupków, lekko oddalić od siebie nazwy kolumn, dodać nazwy osi oraz nazwę wykresu.

Wykres odwrócony

Ciekawym sposobem na przedstawienie danych jest skorzystanie z horyzontalnego wykresu słupkowego. Aby go stworzyć zamiast pt.bar() musimy skorzystać z plt.barh(). Oprócz tego trzeba pamiętać, aby odpowiednio nazwać oś x i y.

Powyższe dane przedstawiają cenę produktu B również na przełomie stycznia i czerwca. Dane w odwróconym wykresie słupkowym są przedstawione w kolejności od góry do dołu.

Dwa wykresy słupkowe na raz

Wykresy słupkowe są bardzo często wykorzystywane w celu porównania dwóch różnych zmiennych. W naszym przypadku możemy porównać jak kształtowały się ceny produktu A oraz produktu B na przełomie stycznia i czerwca.

Aby dodać dwa różne wykresy słupkowe na jednym układzie współrzędnych wystarczy dwa razy skorzystać z plt.bar(). Trzeba jedynie pamiętać, aby nazwa osi y odnosiła się do obu zbiorów danych, więc musimy napisać „Ceny produktów” a nie „Cena produktu A”.

Spróbujmy porównać ceny obu produktów:

Możemy zauważyć, że cena produktu B była wyższa w styczniu i lutym, lecz w pozostałych miesiącach produkt A był droższy.