6.4. Assignments¶
"""
* Assignment: Trigonometry
* Complexity: medium
* Lines of code: 15 lines
* Time: 21 min
English:
TODO: English Translation
X. Run doctests - all must succeed
Polish:
1. Dla `x` z przedziału od 0.0 do 1.0 z próbkowaniem co 0.01 przedstaw przebiegi funkcji `sin`, `cos` dla parametrów `2 * np.pi * x`
2. Stwórz dwa osobne obrazki (figure):
a. Każdy z przebiegów na osobnym subplot
b. Na jednym plot dwa przebiegi funkcji
3. Wykresy (`subplot`) mają być jeden nad drugim
4. Wykresy podpisz nazwą funkcji trygonometrycznej
5. Tekst etykiety osi `y` ustaw na "Wartość funkcji"
6. Pokoloruj nazwy tików `x` dla wykresu `sin` na czerwono
7. Pokoloruj nazwę (label) dla `cos` na kolor zielony
8. Na obu wykresach pokaż grid
9. Narysuj drugi obrazek z nałożonymi na jeden plot wykresami obu funkcji
10. Uruchom doctesty - wszystkie muszą się powieść
Hints:
* `np.sin()`
* `np.cos()`
"""
import matplotlib.pyplot as plt
import numpy as np
"""
* Assignment: Iris Scatter
* Complexity: medium
* Lines of code: 20 lines
* Time: 21 min
English:
TODO: English Translation
X. Run doctests - all must succeed
Polish:
1. Z podanego powyżej adresu URL pobierz dane
2. Dla każdego gatunku
3. Dane stosunku `sepal_length` do `sepal_width` zwizualizuj w formie `scatter` za pomocą `matplotlib`
4. Każdy gatunek powinien mieć inny kolor
5. Uruchom doctesty - wszystkie muszą się powieść
Hints:
* `pd.groupby()`
"""
import matplotlib.pyplot as plt
import pandas as pd
DATA = 'https://python.astrotech.io/_static/iris.csv'
"""
* Assignment: Random Points
* Complexity: medium
* Lines of code: 15 lines
* Time: 21 min
English:
TODO: English Translation
X. Run doctests - all must succeed
Polish:
1. Wygeneruj 100 losowych punktów:
a. rozkład gaussa o średniej 0
b. o odchyleniu standardowym równym 0.2
2. Punkty muszą być wylosowane wokół dwóch wybranych punktów (`A = (0, 1)`, `B = (2, 4)`).
3. Funkcja musi przechodzić `doctest`
4. Wyrysuj te punkty na wykresie (możesz użyć funkcji `plt.axis('equal')` żeby osie wykresu były w tej samej skali).
5. Punkt A i punkty wygenerowane na jego podstawie wyrysuj kolorem czerwonym
6. punkt B i punkty wygenerowane na jego podstawie wyrysuj kolorem niebieskim
7. Możesz do tego celu napisać funkcję `plot_point(point, color)`, która przyjmuje punkt (dwuelementowy tuple, lub listę, z czego pierwszy element to współrzędna x, a druga to y), i kolor i doda ten punkt do aktualnie aktywnego rysunku.
8. Korzystając z funkcji napisanej w ćwiczeniu powyżej oblicz odległość od każdego z punktów do punktów A i B
9. Na podstawie tej odległości zaklasyfikuj te punkty
a. jeżeli punkt jest bliżej punktu A to należy do zbioru A
b. jeżeli jest bliżej do zbioru B to należy do zbioru B
10. Narysuj nowy wykres, na którym:
a. punkty ze zbioru A będą narysowane kolorem czerwonym,
b. punkty ze zbioru B będą narysowane kolorem niebieskim.
11. Czy dwa wykresy są takie same?
12. Co się stanie jeżeli będziemy zwiększali odchylenie standardowe przy generacji punktów?
13. Albo przybliżymy do siebie punkty A i B?
14. Uruchom doctesty - wszystkie muszą się powieść
Hints:
* argument `color='red'` w funkcji `plt.plot`
Tests:
>>> import sys; sys.tracebacklimit = 0
>>> import numpy as np
>>> np.random.seed(0)
>>> result((0,0), std=0.2) # doctest: +SKIP
(0.2576369506310926, 0.2898891217399542)
>>> result((0,0)) # doctest: +SKIP
(0.2576369506310926, 0.2898891217399542)
>>> result((2,5), std=10) # doctest: +SKIP
(14.881847531554628, 19.494456086997708)
>>> result((2,5), std=(0.1, 12)) # doctest: +SKIP
(2.1288184753155464, 22.393347304397253)
TODO: Doctests
"""
"""
* Assignment: Color Graph
* Complexity: medium
* Lines of code: 15 lines
* Time: 21 min
English:
TODO: English Translation
X. Run doctests - all must succeed
Polish:
1. Dokonano pomiarów z urządzeń temperatury
2. Wygeneruj listę `dict` z datami z ostatniego miesiąca oraz wartością pomiarów losowo 10-15 plus szum na poziomie 0.5 stopnia celsiusza (wykorzystaj `np.gauss()`)
3. Mając do dyspozycji szereg czasowy, gdzie dla każdego dnia wykonano pomiar temperatury
4. Przedstaw na wykresie dane szeregu czasowego
5. Oś z datami przedstaw przekrzywioną o 45 stopni
6. Na osi y przedstawiaj tylko pełne `int`
7. Dodaj Colorbar ze skalą temperatur zimno-ciepło
8. Użyj kolorów niebieski (zimno), czerwony (ciepło)
9. Wykres ma mieć grid
10. Uruchom doctesty - wszystkie muszą się powieść
"""