You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/pl/3-Data-Visualization/09-visualization-quantities/README.md

218 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "69b32b6789a91f796ebc7a02f5575e03",
"translation_date": "2025-09-04T14:45:20+00:00",
"source_file": "3-Data-Visualization/09-visualization-quantities/README.md",
"language_code": "pl"
}
-->
# Wizualizacja Ilości
|![ Sketchnote autorstwa [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/09-Visualizing-Quantities.png)|
|:---:|
| Wizualizacja Ilości - _Sketchnote autorstwa [@nitya](https://twitter.com/nitya)_ |
W tej lekcji dowiesz się, jak korzystać z jednej z wielu dostępnych bibliotek Pythona, aby tworzyć interesujące wizualizacje związane z pojęciem ilości. Korzystając z oczyszczonego zbioru danych o ptakach z Minnesoty, możesz odkryć wiele ciekawych faktów o lokalnej faunie.
## [Quiz przed wykładem](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16)
## Obserwacja rozpiętości skrzydeł za pomocą Matplotlib
Doskonałą biblioteką do tworzenia zarówno prostych, jak i zaawansowanych wykresów i diagramów jest [Matplotlib](https://matplotlib.org/stable/index.html). Ogólnie rzecz biorąc, proces tworzenia wykresów za pomocą tych bibliotek obejmuje identyfikację części ramki danych, które chcesz przeanalizować, wykonanie niezbędnych transformacji danych, przypisanie wartości osi x i y, wybór rodzaju wykresu oraz jego wyświetlenie. Matplotlib oferuje szeroką gamę wizualizacji, ale w tej lekcji skupimy się na tych najbardziej odpowiednich do wizualizacji ilości: wykresach liniowych, punktowych i słupkowych.
> ✅ Wybierz najlepszy wykres, który pasuje do struktury Twoich danych i historii, którą chcesz opowiedzieć.
> - Aby analizować trendy w czasie: linia
> - Aby porównywać wartości: słupek, kolumna, koło, wykres punktowy
> - Aby pokazać, jak części odnoszą się do całości: koło
> - Aby pokazać rozkład danych: wykres punktowy, słupek
> - Aby pokazać trendy: linia, kolumna
> - Aby pokazać relacje między wartościami: linia, wykres punktowy, bąbelkowy
Jeśli masz zbiór danych i chcesz dowiedzieć się, ile jest danego elementu, jednym z pierwszych kroków będzie inspekcja jego wartości.
✅ Dostępne są bardzo dobre „ściągi” dla Matplotlib [tutaj](https://matplotlib.org/cheatsheets/cheatsheets.pdf).
## Tworzenie wykresu liniowego dla wartości rozpiętości skrzydeł ptaków
Otwórz plik `notebook.ipynb` znajdujący się w głównym katalogu tej lekcji i dodaj komórkę.
> Uwaga: dane są przechowywane w głównym katalogu tego repozytorium w folderze `/data`.
```python
import pandas as pd
import matplotlib.pyplot as plt
birds = pd.read_csv('../../data/birds.csv')
birds.head()
```
Te dane to mieszanka tekstu i liczb:
| | Nazwa | NazwaNaukowa | Kategoria | Rząd | Rodzina | Rodzaj | StatusOchrony | MinDługość | MaxDługość | MinMasaCiała | MaxMasaCiała | MinRozpiętość | MaxRozpiętość |
| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: |
| 0 | Czarnobrzuchy gwizdacz | Dendrocygna autumnalis | Kaczki/Gęsi/Wodnoptaki| Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 |
| 1 | Płowy gwizdacz | Dendrocygna bicolor | Kaczki/Gęsi/Wodnoptaki| Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 |
| 2 | Śnieżna gęś | Anser caerulescens | Kaczki/Gęsi/Wodnoptaki| Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 |
| 3 | Gęś Rossa | Anser rossii | Kaczki/Gęsi/Wodnoptaki| Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 |
| 4 | Gęś białoczelna | Anser albifrons | Kaczki/Gęsi/Wodnoptaki| Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 |
Zacznijmy od wykreślenia niektórych danych liczbowych za pomocą podstawowego wykresu liniowego. Załóżmy, że chcesz zobaczyć maksymalną rozpiętość skrzydeł tych interesujących ptaków.
```python
wingspan = birds['MaxWingspan']
wingspan.plot()
```
![Max Rozpiętość](../../../../translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.pl.png)
Co zauważasz od razu? Wydaje się, że jest przynajmniej jeden odstający wynik to całkiem imponująca rozpiętość skrzydeł! Rozpiętość skrzydeł wynosząca 2300 centymetrów to 23 metry czy w Minnesocie latają pterodaktyle? Zbadajmy to.
Chociaż możesz szybko posortować dane w Excelu, aby znaleźć te odstające wartości, kontynuuj proces wizualizacji, pracując bezpośrednio na wykresie.
Dodaj etykiety do osi x, aby pokazać, o jakie ptaki chodzi:
```
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.xticks(rotation=45)
x = birds['Name']
y = birds['MaxWingspan']
plt.plot(x, y)
plt.show()
```
![rozpiętość z etykietami](../../../../translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.pl.png)
Nawet przy obrocie etykiet o 45 stopni jest ich zbyt wiele, aby były czytelne. Spróbujmy innej strategii: oznacz tylko te odstające wartości i umieść etykiety na wykresie. Możesz użyć wykresu punktowego, aby zrobić więcej miejsca na etykiety:
```python
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
x = birds['Name'][i]
y = birds['MaxWingspan'][i]
plt.plot(x, y, 'bo')
if birds['MaxWingspan'][i] > 500:
plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12)
plt.show()
```
Co tu się dzieje? Użyłeś `tick_params`, aby ukryć dolne etykiety, a następnie stworzyłeś pętlę nad swoim zbiorem danych o ptakach. Tworząc wykres z małymi niebieskimi kropkami za pomocą `bo`, sprawdziłeś, czy którykolwiek ptak ma maksymalną rozpiętość skrzydeł powyżej 500, i wyświetliłeś jego etykietę obok kropki, jeśli tak. Przesunąłeś etykiety nieco na osi y (`y * (1 - 0.05)`) i użyłeś nazwy ptaka jako etykiety.
Co odkryłeś?
![odstające wartości](../../../../translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.pl.png)
## Filtrowanie danych
Zarówno Bielik amerykański, jak i Sokół preriowy, choć prawdopodobnie bardzo duże ptaki, wydają się mieć błędnie oznaczone dane, z dodatkowym `0` w maksymalnej rozpiętości skrzydeł. Mało prawdopodobne, abyś spotkał Bielika o rozpiętości skrzydeł 25 metrów, ale jeśli tak, daj nam znać! Stwórzmy nową ramkę danych bez tych dwóch odstających wartości:
```python
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
x = birds['Name'][i]
y = birds['MaxWingspan'][i]
if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']:
plt.plot(x, y, 'bo')
plt.show()
```
Po odfiltrowaniu odstających wartości, Twoje dane są teraz bardziej spójne i zrozumiałe.
![wykres punktowy rozpiętości](../../../../translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.pl.png)
Teraz, gdy mamy czystszy zbiór danych przynajmniej pod względem rozpiętości skrzydeł, odkryjmy więcej o tych ptakach.
Chociaż wykresy liniowe i punktowe mogą przedstawiać informacje o wartościach danych i ich rozkładzie, chcemy zastanowić się nad wartościami zawartymi w tym zbiorze danych. Możesz stworzyć wizualizacje, aby odpowiedzieć na następujące pytania dotyczące ilości:
> Ile jest kategorii ptaków i jakie są ich liczby?
> Ile ptaków jest wymarłych, zagrożonych, rzadkich lub pospolitych?
> Ile jest różnych rodzajów i rzędów w terminologii Linneusza?
## Eksploracja wykresów słupkowych
Wykresy słupkowe są praktyczne, gdy chcesz pokazać grupowanie danych. Przyjrzyjmy się kategoriom ptaków w tym zbiorze danych, aby zobaczyć, która jest najliczniejsza.
W pliku notebooka stwórz podstawowy wykres słupkowy.
✅ Uwaga, możesz albo odfiltrować dwa odstające ptaki, które zidentyfikowaliśmy w poprzedniej sekcji, poprawić błąd w ich rozpiętości skrzydeł, albo pozostawić je w danych dla tych ćwiczeń, które nie zależą od wartości rozpiętości skrzydeł.
Jeśli chcesz stworzyć wykres słupkowy, możesz wybrać dane, na których chcesz się skupić. Wykresy słupkowe można tworzyć z surowych danych:
```python
birds.plot(x='Category',
kind='bar',
stacked=True,
title='Birds of Minnesota')
```
![pełne dane jako wykres słupkowy](../../../../translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.pl.png)
Ten wykres słupkowy jest jednak nieczytelny, ponieważ zawiera zbyt wiele niepogrupowanych danych. Musisz wybrać tylko dane, które chcesz przedstawić, więc przyjrzyjmy się długości ptaków w zależności od ich kategorii.
Przefiltruj swoje dane, aby uwzględnić tylko kategorię ptaka.
✅ Zauważ, że używasz Pandas do zarządzania danymi, a następnie pozwalasz Matplotlib na tworzenie wykresów.
Ponieważ istnieje wiele kategorii, możesz wyświetlić ten wykres pionowo i dostosować jego wysokość, aby uwzględnić wszystkie dane:
```python
category_count = birds.value_counts(birds['Category'].values, sort=True)
plt.rcParams['figure.figsize'] = [6, 12]
category_count.plot.barh()
```
![kategoria i długość](../../../../translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.pl.png)
Ten wykres słupkowy pokazuje dobry obraz liczby ptaków w każdej kategorii. Na pierwszy rzut oka widać, że największa liczba ptaków w tym regionie należy do kategorii Kaczki/Gęsi/Wodnoptaki. Minnesota to „kraina 10 000 jezior”, więc to nie jest zaskakujące!
✅ Wypróbuj inne liczenia na tym zbiorze danych. Czy coś Cię zaskakuje?
## Porównywanie danych
Możesz spróbować różnych porównań pogrupowanych danych, tworząc nowe osie. Spróbuj porównać MaxDługość ptaka w zależności od jego kategorii:
```python
maxlength = birds['MaxLength']
plt.barh(y=birds['Category'], width=maxlength)
plt.rcParams['figure.figsize'] = [6, 12]
plt.show()
```
![porównywanie danych](../../../../translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.pl.png)
Nic zaskakującego tutaj: kolibry mają najmniejszą MaxDługość w porównaniu do pelikanów czy gęsi. Dobrze, gdy dane mają logiczny sens!
Możesz tworzyć bardziej interesujące wizualizacje wykresów słupkowych, nakładając dane. Nałóżmy Minimalną i Maksymalną Długość na daną kategorię ptaków:
```python
minLength = birds['MinLength']
maxLength = birds['MaxLength']
category = birds['Category']
plt.barh(category, maxLength)
plt.barh(category, minLength)
plt.show()
```
Na tym wykresie możesz zobaczyć zakres dla każdej kategorii ptaków w odniesieniu do Minimalnej i Maksymalnej Długości. Możesz śmiało powiedzieć, że na podstawie tych danych, im większy ptak, tym większy zakres jego długości. Fascynujące!
![nałożone wartości](../../../../translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.pl.png)
## 🚀 Wyzwanie
Ten zbiór danych o ptakach oferuje bogactwo informacji o różnych typach ptaków w danym ekosystemie. Poszukaj w internecie innych zbiorów danych o ptakach. Ćwicz tworzenie wykresów i diagramów na ich podstawie, aby odkryć fakty, których wcześniej nie znałeś.
## [Quiz po wykładzie](https://ff-quizzes.netlify.app/en/ds/)
## Przegląd i samodzielna nauka
Ta pierwsza lekcja dostarczyła Ci informacji o tym, jak korzystać z Matplotlib do wizualizacji ilości. Poszukaj innych sposobów pracy ze zbiorami danych do wizualizacji. [Plotly](https://github.com/plotly/plotly.py) to narzędzie, którego nie omówimy w tych lekcjach, więc sprawdź, co może Ci zaoferować.
## Zadanie
[Linie, Punkty i Słupki](assignment.md)
---
**Zastrzeżenie**:
Ten dokument został przetłumaczony za pomocą usługi tłumaczeniowej AI [Co-op Translator](https://github.com/Azure/co-op-translator). Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.