MATPLOTLIB. WPROWADZENIE. WYKRESY 2D

Podobne dokumenty
Podstawy biblioteki Matplotlib

Wprowadzenie do Python

Uruchom polecenie z menu Wstaw Wykres lub ikonę Kreator wykresów na Standardowym pasku narzędzi.

Podstawy MATLABA, cd.

Excel wykresy niestandardowe

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

zajęcia 2 Definiowanie wektorów:

Grafika w Matlabie. Wykresy 2D

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Praktyczny Excel. Wykresy i grafika. w Excelu krok po kroku

Elementy okna MatLab-a

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

Podstawowe operacje graficzne.

Wizualizacja funkcji w programie MATLAB

3.7. Wykresy czyli popatrzmy na statystyki

ARKUSZ KALKULACYJNY komórka

Program szkoleniowy. 16 h dydaktycznych (12 h zegarowych) NAZWA SZCZEGÓŁY CZAS. Skróty dostępu do narzędzi

Praktyczny Excel. Wykresy i grafika. w Excelu krok po kroku

Metody numeryczne Laboratorium 2

WYKRESY ĆWICZENIE 5. Skorzystaj z wyznaczonej funkcji kalibracyjnej do określenia nadciśnienia przy podanych wskazaniach czujnika.

Temat: Graficzna ilustracja danych - wykresy

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

Ćwiczenie 6 MS EXCEL

Wprowadzenie do Scilab: funkcje i wykresy

BIBLIOTEKA NUMPY, CZĘŚĆ 1

Prezentacje multimedialne w Powerpoint

TABELE I WYKRESY W EXCELU I ACCESSIE

Materiał dotyczy generowania różnego typu wykresów w środowisku R.

Otwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students:

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Graficzna prezentacja wyników

Wymagania edukacyjne z informatyki w klasie VIII

Wykresy i interfejsy użytkownika

Skumulowane wykresy słupkowe: pokazują zależności zachodzące między indywidualnymi elementami i całością.

Tytuł: GRAPHER Podręcznik użytkownika ISBN: Autor: Zbigniew Galon Rok wydania: 2014 Stron: 500 Wydawca: Gambit COiS Sp. z o.o.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS

lekcja 8a Gry komputerowe MasterMind

Zastosowanie Excela na lekcjach informatyki w gimnazjum ćwiczenia

% sumy wiersza nadrzędnego. % sumy kolumny nadrzędnej. % sumy elementu nadrzędnego. Porządkuj od najmniejszych do największych.

7. Pętle for. Przykłady

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Programowanie obiektowe - zadania

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

> x <-seq(-2*pi, 2*pi, by=0.5) > plot(x, sin(x), type="b",main="wykres funkcji sin(x) i cos(x)", col="blue") > lines(x, cos(x), type="l",col="red")

TWORZENIE WYKRESÓW (1)

Po naciśnięciu przycisku Dalej pojawi się okienko jak poniżej,

FORMUŁY AUTOSUMOWANIE SUMA

TABELE I WYKRESY W EXCELU I ACCESSIE

1 Programowanie w matlabie - skrypty i funkcje

Matlab Składnia + podstawy programowania

Laboratorium 7b w domu wykresy w Excelu

Warsztaty dla nauczycieli

BIBLIOTEKA LOKALNE CENTRUM WIEDZY PRAKTYCZNEJ PRZEWODNIK PO NARZĘDZIACH WARSZTAT NR 1: ARKUSZE KALKULACYJNE - MINI SKRYPT

Współpraca FDS z arkuszem kalkulacyjnym

Tematy lekcji informatyki klasa 4a październik 2012

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Andrzej Frydrych SWSPiZ 1/8

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0

Szablony funkcji i klas (templates)

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

P&I Scout Pro Wygodne i proste tworzenie raportów

KATEGORIA OBSZAR WIEDZY

Scenariusz lekcji. zdefiniować elementy wykresu (zakres danych, serie danych, legenda, zakres wartości, etykiety osi);

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Wykresy. Informatyka Arkusz kalkulacyjny Excel dla WINDOWS. Excel. cz.4. Wykresy. Wykresy. Wykresy. Wykresy

PODSTAWOWE ANALIZY I WIZUALIZACJA Z WYKORZYSTANIEM MAP W STATISTICA

Laboratorium 7 Blog: dodawanie i edycja wpisów

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Maple i wykresy. 1.1 Najpierw należy się zalogować. Jak to zrobić zostało opisane w moim poprzednim tutorialu.

Lab 9 Podstawy Programowania

Dopasowywanie czasu dla poszczególnych zasobów

KATEGORIA OBSZAR WIEDZY

Rys. 1 Wdok z góry sali konferencyjnej

MapInfo Professional - 5

W języku C dostępne są trzy instrukcje, umożliwiające tworzenie pętli: for, while oraz do. for (w1;w2;w3) instrukcja

Środowisko R wprowadzenie c.d. Wykład R2; Struktury danych w R c.d.

Excel zadania sprawdzające 263

Dodawanie, edycja i usuwanie zbioru kolekcji

W tym celu korzystam z programu do grafiki wektorowej Inkscape 0.46.

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Gnuplot wprowadzenie v. 2.0

Załącznik I.31 Instrukcja użytkownika eregion

Wykorzystanie programów komputerowych do obliczeń matematycznych

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

Dodawanie i modyfikacja atrybutów zbioru

Instrukcja właściwego wykonania wykresów na zajęcia dydaktyczne.

Tworzenie i modyfikowanie wykresów

WYKRESY SPORZĄDZANE W UKŁADZIE WSPÓŁRZĘDNYCH:

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Tematy lekcji informatyki klasa 4a listopad 2012

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

W pustym arkuszu utwórz automatycznie tabliczkę mnożenia w zakresie od 1*1 do 25*25.

ECDL/ICDL Grafika menedżerska i prezentacyjna Moduł S2 Sylabus - wersja 5.0

Transkrypt:

1. WPROWADZENIE MATPLOTLIB. WPROWADZENIE. WYKRESY 2D Na początku warto zapoznać się z nazewnictwem (angielskim) elementów, z których składa się widok wykresu. Poniższa grafika pozwoli na ich identyfikację i możliwość dostosowania wykresu do założeń lub potrzeb danego zadania/problemu.

Listing 1 # bardzo prosty wykres liniowy plt.plot([1, 2, 3, 4]) plt.ylabel('jakieś liczby') Powyższy fragment kodu po jego uruchomieniu wygeneruje bardzo prosty wykres. Warto tutaj zwrócić uwagę na to, że wektor przekazanych wartości to oś Y a oś X została wygenerowana automatycznie i tutaj dla konkretnych wartości z wektora przyjmuje po prostu wartość indeksu z tej listy czyli dla wartości 1 z wektora przyjmuje wartość 0. Nie jest to zbyt przydatne w tym konkretnym przypadku. W wielu przypadkach matplotlib radzi sobie dobrze z wartościami dla poszczególnych osi, ale możemy to również zmodyfikować wedle uznania.

2. STYLE WYKRESÓW Listing 2 # przekazujemy dwa wektory wartości, najpierw dla wektora x, następnie y # dodatkowo mamy tutaj przekazany parametr w postaci stringa, który określa styl wykresu # dla pełnej listy sprawdź dokumentację pod adresem # https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.p yplot.plot plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro-') # tutaj określamy listę parametrów w postaci [xmin, xmax, ymin, ymax] plt.axis([0, 6, 0, 20]) # możemy też ustawiać różne kolory dla poszczególnych elementów nakładając na siebie dwa wykresy plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'r') plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'o') plt.axis([0, 6, 0, 20])

Listing 3 # bazowy wektor wartości t = np.arange(0., 5., 0.2) # za pomocą pojedynczego wywołania funkcji plot() możemy wygenerować wiele wykresów na jednym "płótnie" (ang. canvas) # każdorazowo podając niezbędne wartości: wartości dla osi x, wartości dla osi y, styl wykresu,... plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')

Listing 4 x = np.linspace(0, 2, 100) # wykresy mogą być też dodawane do płótna definicja po definicji zamiast w pojedynczym wywołaniu funkcji plot() # tutaj też mam parametr label, który określa nazwę danego wykresu w legendzie plt.plot(x, x, label='liniowa') plt.plot(x, x**2, label='kwadratowa') plt.plot(x, x**3, label='sześcienna') # etykiety osi plt.xlabel('etykieta x') plt.ylabel('etykieta y') # tytuł wykresu plt.title("prosty wykres") # włączamy pokazywanie legendy plt.legend()

Zadanie 1 Na wykresie wyświetl wykres liniowy funkcji f(x) = 1/x dla x ϵ [1, 20]. Dodaj etykietę do linii wykresu i wyświetl legendę. Dodaj odpowiednie etykiety do osi wykresu ( x, f(x) ) oraz ustaw zakres osi na (0, 1) oraz (1, długość wektora x). Zadanie 2 Zmodyfikuj wykres z zadania 1 tak, żeby styl wykresu wyglądał jak na poniższym zrzucie ekranu.

Listing 5 x = np.arange(0, 10, 0.1) s = np.sin(x) plt.plot(x, s, label='sin(x)') # etykiety osi plt.xlabel('x') plt.ylabel('sin(x)') # tytuł wykresu plt.title("wykres sin(x)") # włączamy pokazywanie legendy plt.legend() Wyświetlanie wykresów funkcji trygonometrycznych jest również proste przy wspomaganiu biblioteki numpy, która wykonuje operacja na wektorze nie wymagając używania pętli lub chociażby Python comprehensions. Przy odpowiednio dużej ilość próbek wykres będzie gładki. Poeksperymentuj z ilością wartości wektora funkcji sin(x).

Zadanie 3 Na jednym wykresie wygeneruj wykresy funkcji sin(x) oraz cos(x) dla x ϵ [0, 30] z krokiem 0.1. Dodaj etykiety i legendę do wykresu. Zadanie 4 Dodaj drugi wykres funkcji sinus do zadania 3 i zmodyfikuj parametry funkcji, tak aby osiągnąć efekt podobny do tego na poniższym zrzucie ekranu.

Listing 6 # dane w formie słownika, ale równie dobrze może to być Pandas DataFrame data = {'a': np.arange(50), 'c': np.random.randint(0, 50, 50), 'd': np.random.randn(50)} data['b'] = data['a'] + 10 * np.random.randn(50) data['d'] = np.abs(data['d']) * 100 # aby w ten sposób przekazać parametry wykresu należy dodać niezbędny parametr data, który zawiera dane dostępne poprzez etykiety # to oznacza, że 'a' jest równoważne data['a'] itd. Parametr c to skrót od color, tutaj przekazywany w formie wektora # wartości kolorów dla każdej kolejnej wartości wykresu. Parametr s to scale - określa rozmiar, w tym przypadku punktu, dla # każdej kolejnej wartości wektora wykresu. Reasumując dla pierwszego punktu wykresu będą brane poniższe wartości print(f"a={data['a'][0]}, b={data['b'][0]}, c={data['c'][0]}, d={data['d'][0]}") plt.scatter('a', 'b', c='c', s='d', data=data) plt.xlabel('wartość a') plt.ylabel('wartość b')

Zadanie 5 Korzystając ze zbioru danych Iris (https://archive.ics.uci.edu/ml/datasets/iris) wygeneruj wykres punktowy, gdzie wektor x to wartość sepal length a y to sepal width, dodaj paletę kolorów c na przykładzie listingu 6 a parametr s niech będzie wartością absolutną z różnicy wartości poszczególnych elementów wektorów x oraz y. 3. PODWYKRESY Pod-wykresy pozwalają na umieszczanie na jednym płótnie wiele wykresów zorganizowanych w formie gridu. Podajemy wymiary gridu czyli liczbę wierszy x liczbę kolumn. Służy to tego funkcja subplot, która przyjmuje 3 argumenty (nrows, ncols, index). Odpowiednio jest to ilość wierszy gridu, ilość kolumn oraz indeks definiowanego właśnie wykresu (indeksy rozpoczynają się od 1 i kończą na nrows*ncols). Listing 7 x1 = np.arange(0.0, 2.0, 0.02) x2 = np.arange(0.0, 2.0, 0.02) y1 = np.sin(2 * np.pi * x1) y2 = np.cos(2 * np.pi * x2) plt.subplot(2, 1, 1) plt.plot(x1, y1, '-') plt.title('dwa podwykresy') plt.ylabel('sin(x)') plt.subplot(2, 1, 2) plt.plot(x2, y2, 'r-') plt.xlabel('x') plt.ylabel('cos(x)')

Możemy również pomijać umieszczanie wykresu w danym miejscu siatki. Listing 8 x1 = np.arange(0.0, 2.0, 0.02) x2 = np.arange(0.0, 2.0, 0.02) y1 = np.sin(2 * np.pi * x1) y2 = np.cos(2 * np.pi * x2) # oznacza, że mamy tutaj do czynienia z gridem 3x2 (3 wiersze, 2 kolumny) i definiujemy wykres o indeksie 1 plt.subplot(3, 2, 1) plt.plot(x1, y1, '-') plt.title('dwa podwykresy') plt.ylabel('sin(x)') # możemy również pominąć przecinki, tu wykres o indeksie 4, więc pominęliśmy 2 oraz 3 plt.subplot(324) plt.plot(x2, y2, 'r-') plt.xlabel('x') plt.ylabel('cos(x)') plt.subplot(3, 2, 5) plt.plot(x2, y2, 'r-') plt.xlabel('x') plt.ylabel('cos(x)')

Poniższy listing przedstawia prosty przykład wykresu słupkowego. Listing 9 etykiety = ['K', 'M'] wartosci = [345, 435] plt.bar(etykiety, wartosci) # możemy również zmienić np. kierunek tekstu etykiet słupków plt.xticks(rotation=45) plt.ylabel('ilość narodzin') plt.xlabel('płeć') Zadanie 6 Korzystając z biblioteki pandas wczytaj zbiór danych z narodzinami dzieci przedstawiony w lekcji 8. Następnie na jednym płótnie wyświetl 3 wykresy (jeden wiersz i 3 kolumny). Dodaj do wykresów stosowne etykiety. Poustawiaj różne kolory dla wykresów. 1 wykres wykres słupkowy przedstawiający ilość narodzonych dziewczynek i chłopców w całym okresie.

2 wykres wykres liniowy, gdzie będą dwie linie, jedna dla ilości urodzonych kobiet, druga dla mężczyzn dla każdego roku z osobna. Czyli y to ilość narodzonych kobiet lub mężczyzn (dwie linie), x to rok. 3 wykres wykres słupkowy przedstawiający sumę urodzonych dzieci w każdym roku. Zadanie 7 Korzystając z tutoriala pod adresem https://towardsdatascience.com/matplotlib-tutorial-learn-basics-ofpythons-powerful-plotting-library-b5d1b8f67596 lub innego zmodyfikuj wykres 2 z zadania 6 tak, aby zamiast wykresu liniowego przedstawiał wykres łupkowy skumulowany (czyli jeden słupek dla kobiet i mężczyzn, ale składający się z dwóch nałożonych na siebie słupków). Przykład: Popularnym typem wykresów dla zaprezentowania rozkładów prawdopodobieństwa są histogramy. Listing 10 x = np.random.randn(10000) # bins oznacza ilość "koszy" czyli słupków, do których mają wpadać wartości z wektora x # facekolor oznacza kolor słupków # alpha to stopień przezroczystości wykresu # density oznacza czy suma ilości zostanie znormalizowana do rozkładu prawdopodobieństwa (czyli przedział 0, 1) plt.hist(x, bins=50, facecolor='g', alpha=0.75, density=true) plt.xlabel('wartości') plt.ylabel('prawdopodobieństwo') plt.title('histogram') # wyświatlanie siatki plt.grid(true)

Zadanie 8 Napisz funkcję, która losowo rzuca dwiema kostkami k6 n razy. Wynik rzutów zapisywany jest w postaci listy sum oczek z tych dwóch kostek. Np. rzucaj(6) generuje 6 rzutów kostkami i zwraca wektor 6 sum oczek każdego rzutu. Po zakończeniu funkcji wyświetlaj histogram sumy rzutów. Dodaj stosowne etykiety do wykresu. Listing 11 zawodnicy = ['Messi', 'Suarez', 'Dembele', 'Coutinho'] bramki = [48, 25, 13, 11] # pierwsza wersja wykresu wedges, texts, autotexts = plt.pie(bramki, labels=zawodnicy, autopct=lambda pct: "{:.1f}%".format(pct), textprops=dict(color="black")) plt.setp(autotexts, size=14, weight="bold") plt.title("pierwsza wersja wykresu") plt.legend(title='zawodnicy') # druga wersja wykresu def prepare_label(pct, br): absolute = int(np.ceil(pct / 100. * np.sum(br))) return "{:.1f}% \n({}/{})".format(pct, absolute, sum(bramki))

wedges, texts, autotexts = plt.pie(bramki, labels=zawodnicy, autopct=lambda pct: prepare_label(pct, bramki), textprops=dict(color="black")) plt.setp(autotexts, size=14, weight="bold") plt.title("druga wersja wykresu") plt.legend(title='zawodnicy')

Zadanie 9 Korzystając z pliku zamówienia.csv (Pandas) policz sumy zamówień dla każdego przedawcy i wyświetl wykres kołowy z procentowym udziałem każdego sprzedawcy w ogólnej sumie zamówień. Poszukaj w Internecie jak dodać cień do takiego wykresu i jak działa atrybut explode tego wykresu. Przetestuj ten atrybut na wykresie. Zadanie 10 Poszukaj w bibliotece wykresów (https://matplotlib.org/gallery/index.html) przykładów z adnotacjami (annotating plots) na wykresach i dodaj adnotacje do dwóch wybranych stworzonych wcześniej wykresów.