Przejdź do treści

#017 Wykres kołowy (pie chart)

  • Wykresy
  • 3 min read

Wykres kołowy jest jednym z najczęściej spotykanych (po wykresie kolumnowym) wykresów w mediach i prezentacjach biurowych.

Wykres ten pokazuje proporcje i wartości procentowe między prezentowanymi kategoriami dzieląc okrąg na proporcjonalne segmenty. Długość każdego łuku reprezentuje poszczególne kategorie, a pełne koło przedstawia całkowitą sumę wszystkich danych równą 100%.

Wykresy kołowe wydają się idealne, aby dać czytelnikowi szybkie wyobrażenie o proporcjonalnym rozkładzie danych. Jednak źle użyty wykres to same problemy…

Wykres kołowy – problem

Wykresy kołowe są bardzo krytykowane i w miarę możliwości należy ich unikać. Problem polega na tym, że ludzie bardzo słabo czytają pod kątem. Spójrz na poniższy prosty przykład, gdzie pokazujemy kto ile zdobył bezwartościowych punktów w konkursie wiedzy o misiach polarnych:

wykres kołowy / pie chart / matplotlib python

Czy potrafisz na podstawie powyższego wykresu kołowego odpowiedzieć na pytanie, kto zdobył najwięcej punktów a kto najmniej? Prawdopodobnie będziesz miał z tym problem. Dlatego należy unikać wykresów kołowych!

Jeśli nadal nie jesteś przekonany, spróbujmy porównać kilka wykresów kołowych. Jeszcze raz spróbuj powiedzieć, kto ma najwyższą wartość punktów w tych 3 grafikach. Ponadto super jakbyś umiał porównać pozostałe osoby pomiędzy sobą.

wykres kołowy / pie chart / matplotlib python

A wykorzystajmy do tego samego zadania wykres kolumnowy:

wykres kolumnowy/ bar chart / matplotlib python

Na wykresie słupkowym od razu widać ukryte wzory, których na pewno nie chcesz przegapić, opowiadając swoją historię.

Poprawnie przygotowany wykres kołowy

Jeśli już bardzo chcesz wykorzystać wykres kołowy, to proszę trzymaj się tych 4 zasad:

  1. Zawsze dodaj wartość dla danych prezentowanych na wykresie.
  2. Nigdy nie pokazuj tylko wartości liczbowych.
  3. Zadbaj, by wartości sumowały się do 100%.
  4. Najlepiej nie pokazywać więcej niż 5 wartości (ja staram się trzymać zasady do 3, ale w ramach przykładu we wpisie zrobię 5 grup)

Kod w Python

Polecam używać pakietu plotly, ponieważ domyślnie sam dodaje wartości do wykresu.

import plotly.express as px

labels = ['Mirek','Jagoda','Otylka','Elwira', 'Ty :)']
values = [45, 40, 42, 39, 46]

fig = px.pie(values=values, names=labels, 
             color_discrete_sequence=px.colors.sequential.RdBu)

fig.show()
wykres kołowy / pie chart / plotly python

W prosty sposób można jeszcze zmodyfikować wykres, aby wyświetlały się informacje, czy dodać linie podziału wykresu:

fig = px.pie(values=values, names=labels, 
             color_discrete_sequence=px.colors.sequential.RdBu)

fig.update_traces(textposition='inside', 
                  textinfo='percent+label+value',
                  marker=dict(line=dict(color='#FFFFFF', width=2)),
                  textfont_size=12)

fig.show()
wykres kołowy / pie chart / plotly python

Wykres pączkowy (ang. donat chart)

Jest to tak naprawdę wykres kołowy z wyciętym kołem w środku. Możesz zmodyfikować powyższy wykres jednym parametrem hole.

fig = px.pie(values=values, names=labels, 
             color_discrete_sequence=px.colors.sequential.RdBu,
             hole=0.5)

fig.update_traces(textposition='inside', 
                  textinfo='percent+label+value',
                  marker=dict(line=dict(color='#FFFFFF', width=2)),
                  textfont_size=12)

fig.show()
wykres pączkowy / donat chart / plotly python

Powodzenia w sprawnym posługiwaniu się wykresami kołowymi, które mają mnóstwo wrogów!

Pozdrawiam z całego serducha,

podpis Mirek

3 komentarze do “#017 Wykres kołowy (pie chart)”

  1. Pingback: #022 Wykres sunburst - Mirosław Mamczur

  2. Jak ja nienawidzę wykresów kołowych, one zaciemniają obraz. Trochę jak słupki 3D, które są kolejnym pomysłem z kosmosu raportach. Zwykłe słupki z sortowaniem lub bez, z dodatkową osią jak coś jeszcze ma być podkreślone, wystarczą dla większości prezentacji danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Spodobało Ci się? Udostępnij ten post w social mediach! ❤️❤️❤️