Rysowanie wykresów jest niezbędnym środkiem do rozumienia danych. W tym przykładzie zrozumiemy mechanizm tworzenia wykresów za pomocą popularnej biblioteki matplotlib, która jest podstawą do innych bibliotek takich jak seaborn.

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']

Narysujmy pierwszy podstawowy wykres bez żadnych atrybutów.

plt.plot(x,y)

Jak widzimy za pomocą jednej linijki kody byliśmy w stanie narysować i z wizualizować dane czasowe. Co możemy zrobić dalej ?

Możemy dodawać tytuły, kategorię, wstawiać oznaczenia na wykresie, tworzyć wiele różnych rodzai wykresów, rysować wykresy obok siebie, bądź jeden w drugim.

Natomiast, aby to osiągnąć musimy najpierw zrozumieć kilka pojęć z których budowany jest wykres:

  • Figure – pole figury na które będą rysowane nasze wykresy.
  • Axes – Jest naszym wykresem. Może mieć tytuł, przypis do osi x i y, może być dwu wymiarowy ale jest też możliwość trójwymiarowych wykresów.
  • Axis – Osie na wykresie. Mogą mieć oznaczenia miejsc w danych, możemy jej określić zakresy wyświetlania danych, można je formatować.

2 – Kolejne sposoby rysowania wykresu

Rysowanie wykresu wykorzystując figure and axes

Podstawowym rodzajem wykresu jest wykres liniowy który widzieliśmy we wstępie, w tej części zobaczycie kilka innych sposobów rysowania tego samego wykresu, które pozwalają na jego dalsze modyfikacje 🙂

Ten sam wykres możemy stworzyć tworząc najpierw figurę o konkretnym rozmiarze (10,4). W tym przypadku widzimy 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ę „plot” na już istniejącym obiekcie ax, który reprezentuje miejsce na nasz wykres.

fig, ax = plt.subplots(figsize=(10,4))
ax.plot(x, y)

dzięki czemu otrzymamy taki sam wykres jak powyżej ale szerszy:

Rysowanie wykresu bezpośrednio z pandas

Kolejnym przykładem jest rysowanie tego samego wykresu, ale wykorzystując bezpośrednio metodę plot na obiekcie dataframe. Pokazuje to kolejny przykład tego jak ważne jest poznanie biblioteki Pandas

df.plot(x='date',y='Close', legend=False)

Zauważmy,  że nie korzystamy teraz z plt i metody plot, ale wywołujemy ją bezpośrednio na naszych danych df. Ułatwia nam to szybkie rysowanie wykresów, kiedy nie jest niezbędne tworzenie wielopoziomowych wykresów, a zależy nam na szybkiej wizualizacji informacji z dataframe. W tym wypadku podajemy w parametrze x, nazwę kolumny z której chcemy skorzystać na osi x, a w nazwę kolumny do wykorzystania na osi y. Dodatkowo możemy dodać wiele innych parametrów takich jak legend, która pokazuje nam legendę w rogu wykresu.  Pandas równolegle ma w sobie zdefiniowany swój sposób wyświetlenia wykresu stąd pewne różnice w wyświetlaniu daty na osi x. Więcej parametrów znaleźć można w dokumentacji.

3 – Podsumowanie

Jak zauważyliśmy rysowanie wykresów za pomocą języka python może być bardzo proste i powtarzalne. Istnieje kilka możliwości tworzenia wykresów wywołując jedynie jedną linijkę kodu. Dodatkowo istnieje możliwość dodawania kolejnych informacji na wykresie takich jak legenda. Następnym etapem jest rozpoczęcie pracy z wieloma wykresami na jednej figurze oraz tworzenie bardziej skomplikowanych wizualizacji, bądź edycji stylów.

Cały kod programy znaleźć możecie oczywiście na naszym profilu na githubie

Facebook Comments