Istnieje wiele rodzajów wykresów które pokazują dane na swój specyficzny sposób, który jest wartościowy. W tym przykładzie zrozumiemy mechanizm tworzenia równych typó wykresów za pomocą popularnej biblioteki matplotlib, która jest podstawą do innych bibliotek takich jak seaborn czy pandas
1 – Wstęp
Biblioteka matplotlib pozwala na rysowanie wykresów 2D w przestrzeni notatnika jupyter. Korzystamy z tablic przechowywanych na przykład w formacie dataframe, z którego znana jest biblioteka pandas. Dokładny opis działania biblioteki pandas przedstawiony jest w dedykowany artykule. Na tym etapie nie będziemy skupiać się na samym działaniu tablic i ich przetwarzaniu, ale na ich wizualizacji.
Zacznijmy od zaimportowania niezbędnych modułów:
%matplotlib inline import matplotlib import matplotlib.pyplot as plt import pandas as pd
%matplotlib inline – pozwala na wyświetlania wykresów bezpośrednio w naszym notatniku, a nie w oddzielnym oknie.
Kolejne importy, wczytują samą bibliotekę matplotlib oraz jej podkomponenty. Dla ułatwienia nazywamy je skrótami „plt” dla metody pyplot. Dzięki temu będzie nam łatwiej operować w kodzie, jest to standard, więc warto się go nauczyć, gdyż z pewnością będziecie się z nim spotykać.
Przygotujemy sobie szybko dane tak, aby móc wyświetlać cenę kryptowaluty bitcoin i jej dziennej ceny. W zmiennej x będziemy mieć datę, a y będzie wartością na koniec dnia.
df = pd.read_csv(r'https://analityk.edu.pl/wp-content/uploads/2020/12/data.csv') df['date'] = pd.to_datetime(df.date, format='%d/%m/%Y') x=df['date'] y=df['Close']
Dla przypomnienia narysujmy sobie zwykły liniowy wykres ceny od daty wykorzystując poznany już sposób z materiału o pierwszym wykresie:
fig, ax = plt.subplots(figsize=(10,4)) ax.plot(x, y)
Narysowaliśmy wykres liniowy, który reprezentuje nasze dane w jeden konkretny sposób. Jak wiemy korzystając z Excela, istnieje wiele typów wykresów i kilka z nich poznamy w tym materiale.
2 – Kolejne sposoby rysowania wykresu
Wykres typu Bar
Podstawowym rodzajem wykresu jest wykres liniowy który widzieliśmy we wstępie, w tej części zobaczycie kilka innych podstawowych wykresów takich jak: kolumnowy, scatter czy znany wszystkim „tortowy” 🙂
Stworzenie wykresu kolumnowego z tych samych danych polega jedynie na wywołaniu metody „bar”. W tym przypadku zobaczycie już wykorzystanie wspomnianych powyżej obiektów takich jak figura i axes. Najpierw za pomocą metody plt.subplots, w nawiasie podając rozmiar figury stworzymy sobie obiekt, a następnie wywołamy metodę „bar” na obiekcie ax, który reprezentuje miejsce na nasz wykres.
fig, ax = plt.subplots(figsize=(10,4)) ax.bar(x, y)
dzięki czemu otrzymamy taki o to wykres:
Wykres typu Scatter
Kolejnym przykładem jest wykres typu scatter, który może nie jest najlepszym wykresem do danych typu czasowego, lepiej sprawdza się do pokazania zależności między dwoma danymi i ich wartościami nie czasowymi ( będzie to pokazane w dedykowany materiale o danych współzależnych).
fig, ax = plt.subplots(figsize=(10,8)) ax.scatter(x, y, marker='o', alpha=.5)
W przypadku wykresu typu scatter, podajemy dodatkowe atrybuty takie jak typ markera czyli pojedynczego punktu na wykresie. Jeśli zmienimy go na 'x’, zamiast kółek zobaczymy krzyżyki. Dodatkowo widzimy parametr alpha, który mówi o transparentności punktów. Będzie to bardzo przydatne w przypadku wizualizacji ilości danych w danym punkcie wykresu.
Wykres typu Pie
Ostatnim przykładem w tym artykule, będzie wykres typu tortowego 🙂 (idealny na święta). Wywołujemy go zupełnie w ten sam sposób jak w przypadku poprzednich wykresów wywołując metodę „pie”.
fig, ax = plt.subplots(figsize=(10,8)) _=ax.pie([10, 5], labels=['10', '5']) _=ax.legend()
W tym przykładzie, zauważyć można dwie zmiany, jedną jest przypisanie obiektu ax.pie do zmiennej, powoduje to brak wypisania tekstu u góry wykresu. Wywołanie .legend() , domyślnie w prawym górnym rogu wykresu pokazuje nam informację o etykietach. Jest to jeden ze sposób wzbogacania wykresów o informację które pomogą w lepszym jego zrozumieniu. W kolejnych artykułach zobaczymy więcej takich możliwości.
Kilka wykresów na jednej figurze
Ostatnim przykładem w tym artykule, będzie pokazanie możliwości narysowania tych samych wykresów na jednej figurze. Wykorzystamy do tego metodę subplots, która generuje nam obiekt axs. Na których kolejno wywołamy metody rysujące kolejne wykresy.
Podając w metodzie subplots parametry (2,2, figsize=(10,10)) mówimy bibliotece matplotlib, że będziemy chcieli z wizualizować 2 wykresy w rzędzie i 2 w kolumnie, a każdy z nich o wielkości 10 na 10.
Następnie odwołując się do indexu w obiekcie ax, na każdej z pozycji w kwadracie 2×2 stworzymy inny rodzaj wykresu.
na końcu pokazując całość metodą plt.show()
fig, axs = plt.subplots(2, 2, figsize=(10, 10)) axs[0, 0].plot(x,y) axs[1, 0].bar(x,y) axs[0, 1].scatter(x, y, marker='o', alpha=.5) axs[1, 1].pie([10, 5], labels=['10', '5']) plt.show()
Dzięki temu możemy tworzyć całe tablice wykresów za jednym rzutem, tak jak na poniżej.
3 – Podsumowanie
Jak zauważyliśmy rysowanie wykresów za pomocą języka python może być bardzo proste. Istnieje możliwość tworzenia różnego rodzaju wykresów wywołując jedynie jedną linijkę kodu. Dodatkowo istnieje możliwość dodawania kolejnych informacji na wykresie takich jak legenda. Wiemy też, że możemy tworzyć wiele wykresów naraz na jednej figurze.
Cały kod programy znaleźć możecie oczywiście na naszym profilu na githubie