umz21/lab/02_Wczytywanie_i_prezentowanie_danych.ipynb

882 lines
551 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
2021-05-19 07:49:54 +02:00
"## Uczenie maszynowe zastosowania\n",
"### Zajęcia laboratoryjne\n",
"# 2. Wczytywanie i prezentowanie danych"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przechowywanie danych w plikach w formatach CSV i TSV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**CSV** (*Comma-Separated Values*) i **TSV** (*Tab-Separated Values*) to proste formaty przechowywania danych tabelarycznych w postaci tekstowej.\n",
"\n",
"Każdy rekord zapisywany jest w osobnym wierszu, a poszczególne pola oddzielone są przecinkami (CSV) lub znakami tabulacji (TSV)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Przykład\n",
"\n",
"Następujące dane tabelaryczne:\n",
"\n",
"imię | nazwisko | rok ur. | adres\n",
":----|:----------|:--------|:----------------------\n",
"Jan | Nowak | 1999 | Poznańska 3, Warszawa\n",
"Anna | Kowalska | 2001 | Warszawska 9, Poznań\n",
"Ewa | Kaczmarek | 1990 | Wrocławska 123, Gdańsk\n",
"\n",
"możemy zapisać w formacie CSV jako:\n",
"\n",
" imię,nazwisko,rok ur.,adres\n",
" Jan,Nowak,1999,\"Poznańska 3, Warszawa\"\n",
" Anna,Kowalska,2001,\"Warszawska 9, Poznań\"\n",
" Ewa,Kaczmarek,1990,\"Wrocławska 123, Gdańsk\"\n",
"\n",
"lub w formacie TSV jako:\n",
"\n",
" imię nazwisko rok ur. adres\n",
" Jan Nowak 1999 Poznańska 3, Warszawa\n",
" Anna Kowalska 2001 Warszawska 9, Poznań\n",
" Ewa Kaczmarek 1990 Wrocławska 123, Gdańsk\n",
" \n",
"W formacie TSV poszczególne pola oddzielone są znakami tabulacji, a nie spacjami.\n",
"\n",
"Znak tabulacji to ten biały (tj. niedrukowalny) znak, który pojawia się po naciśnięciu klawisza **Tab** na klawiaturze."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Formaty CSV i TSV mają tę zaletę, że są proste, łatwe do przetorzenia przez komputer oraz czytelne dla człowieka."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wczytywanie danych z plików CSV i TSV"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Biblioteka `csv`"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['price', 'isNew', 'rooms', 'floor', 'location', 'sqrMetres']\n",
"['476118.0', 'False', '3', '1', 'Centrum', '78']\n",
"['459531.0', 'False', '3', '2', 'Sołacz', '62']\n",
"['411557.0', 'False', '3', '0', 'Sołacz', '15']\n",
"['496416.0', 'False', '4', '0', 'Sołacz', '14']\n",
"['406032.0', 'False', '3', '0', 'Sołacz', '15']\n",
"['450026.0', 'False', '3', '1', 'Naramowice', '80']\n",
"['571229.15', 'False', '2', '4', 'Wilda', '39']\n",
"['325000.0', 'False', '3', '1', 'Grunwald', '54']\n",
"['268229.0', 'False', '2', '1', 'Grunwald', '90']\n"
]
}
],
"source": [
"import csv\n",
"\n",
"with open('data1.csv') as data_file:\n",
" reader = csv.reader(data_file)\n",
" for row in reader:\n",
" print(row)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'price': '476118.0', 'isNew': 'False', 'rooms': '3', 'floor': '1', 'location': 'Centrum', 'sqrMetres': '78'}\n",
"{'price': '459531.0', 'isNew': 'False', 'rooms': '3', 'floor': '2', 'location': 'Sołacz', 'sqrMetres': '62'}\n",
"{'price': '411557.0', 'isNew': 'False', 'rooms': '3', 'floor': '0', 'location': 'Sołacz', 'sqrMetres': '15'}\n",
"{'price': '496416.0', 'isNew': 'False', 'rooms': '4', 'floor': '0', 'location': 'Sołacz', 'sqrMetres': '14'}\n",
"{'price': '406032.0', 'isNew': 'False', 'rooms': '3', 'floor': '0', 'location': 'Sołacz', 'sqrMetres': '15'}\n",
"{'price': '450026.0', 'isNew': 'False', 'rooms': '3', 'floor': '1', 'location': 'Naramowice', 'sqrMetres': '80'}\n",
"{'price': '571229.15', 'isNew': 'False', 'rooms': '2', 'floor': '4', 'location': 'Wilda', 'sqrMetres': '39'}\n",
"{'price': '325000.0', 'isNew': 'False', 'rooms': '3', 'floor': '1', 'location': 'Grunwald', 'sqrMetres': '54'}\n",
"{'price': '268229.0', 'isNew': 'False', 'rooms': '2', 'floor': '1', 'location': 'Grunwald', 'sqrMetres': '90'}\n"
]
}
],
"source": [
"import csv\n",
"\n",
"with open('data1.csv') as data_file:\n",
" reader = csv.DictReader(data_file)\n",
" for row in reader:\n",
" print(dict(row))"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['price', 'isNew', 'rooms', 'floor', 'location', 'sqrMetres']\n",
"['476118.0', 'False', '3', '1', 'Centrum', '78']\n",
"['459531.0', 'False', '3', '2', 'Sołacz', '62']\n",
"['411557.0', 'False', '3', '0', 'Sołacz', '15']\n",
"['496416.0', 'False', '4', '0', 'Sołacz', '14']\n",
"['406032.0', 'False', '3', '0', 'Sołacz', '15']\n",
"['450026.0', 'False', '3', '1', 'Naramowice', '80']\n",
"['571229.15', 'False', '2', '4', 'Wilda', '39']\n",
"['325000.0', 'False', '3', '1', 'Grunwald', '54']\n",
"['268229.0', 'False', '2', '1', 'Grunwald', '90']\n"
]
}
],
"source": [
"import csv\n",
"\n",
"with open('data1.tsv') as data_file:\n",
" reader = csv.reader(data_file, delimiter='\\t')\n",
" for row in reader:\n",
" print(row)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'price': '476118.0', 'isNew': 'False', 'rooms': '3', 'floor': '1', 'location': 'Centrum', 'sqrMetres': '78'}\n",
"{'price': '459531.0', 'isNew': 'False', 'rooms': '3', 'floor': '2', 'location': 'Sołacz', 'sqrMetres': '62'}\n",
"{'price': '411557.0', 'isNew': 'False', 'rooms': '3', 'floor': '0', 'location': 'Sołacz', 'sqrMetres': '15'}\n",
"{'price': '496416.0', 'isNew': 'False', 'rooms': '4', 'floor': '0', 'location': 'Sołacz', 'sqrMetres': '14'}\n",
"{'price': '406032.0', 'isNew': 'False', 'rooms': '3', 'floor': '0', 'location': 'Sołacz', 'sqrMetres': '15'}\n",
"{'price': '450026.0', 'isNew': 'False', 'rooms': '3', 'floor': '1', 'location': 'Naramowice', 'sqrMetres': '80'}\n",
"{'price': '571229.15', 'isNew': 'False', 'rooms': '2', 'floor': '4', 'location': 'Wilda', 'sqrMetres': '39'}\n",
"{'price': '325000.0', 'isNew': 'False', 'rooms': '3', 'floor': '1', 'location': 'Grunwald', 'sqrMetres': '54'}\n",
"{'price': '268229.0', 'isNew': 'False', 'rooms': '2', 'floor': '1', 'location': 'Grunwald', 'sqrMetres': '90'}\n"
]
}
],
"source": [
"import csv\n",
"\n",
"with open('data1.tsv') as data_file:\n",
" reader = csv.DictReader(data_file, delimiter='\\t')\n",
" for row in reader:\n",
" print(dict(row))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Biblioteka `pandas`"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" price isNew rooms floor location sqrMetres\n",
"0 476118.00 False 3 1 Centrum 78\n",
"1 459531.00 False 3 2 Sołacz 62\n",
"2 411557.00 False 3 0 Sołacz 15\n",
"3 496416.00 False 4 0 Sołacz 14\n",
"4 406032.00 False 3 0 Sołacz 15\n",
"5 450026.00 False 3 1 Naramowice 80\n",
"6 571229.15 False 2 4 Wilda 39\n",
"7 325000.00 False 3 1 Grunwald 54\n",
"8 268229.00 False 2 1 Grunwald 90\n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"data = pd.read_csv('data1.csv')\n",
"print(data)"
]
},
{
"cell_type": "code",
"execution_count": 7,
2021-03-17 13:20:09 +01:00
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" price isNew rooms floor location sqrMetres\n",
"0 476118.00 False 3 1 Centrum 78\n",
"1 459531.00 False 3 2 Sołacz 62\n",
"2 411557.00 False 3 0 Sołacz 15\n",
"3 496416.00 False 4 0 Sołacz 14\n",
"4 406032.00 False 3 0 Sołacz 15\n",
"5 450026.00 False 3 1 Naramowice 80\n",
"6 571229.15 False 2 4 Wilda 39\n",
"7 325000.00 False 3 1 Grunwald 54\n",
"8 268229.00 False 2 1 Grunwald 90\n"
]
}
],
"source": [
"import pandas as pd\n",
"\n",
"data = pd.read_csv('data1.tsv', sep='\\t')\n",
"print(data)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dane z Pandas DataFrame można przekonwertować na tablicę NumPy:\n",
"* za pomocą właściwości `values`\n",
"* za pomocą metody `to_numpy()` (od wersji Pandas 1.1.0)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[476118.0 False 3 1 'Centrum' 78]\n",
" [459531.0 False 3 2 'Sołacz' 62]\n",
" [411557.0 False 3 0 'Sołacz' 15]\n",
" [496416.0 False 4 0 'Sołacz' 14]\n",
" [406032.0 False 3 0 'Sołacz' 15]\n",
" [450026.0 False 3 1 'Naramowice' 80]\n",
" [571229.15 False 2 4 'Wilda' 39]\n",
" [325000.0 False 3 1 'Grunwald' 54]\n",
" [268229.0 False 2 1 'Grunwald' 90]]\n"
]
}
],
"source": [
"\n",
"print(data.to_numpy()) # Pandas w wersji >=1.1.0\n",
"# lub:\n",
"# print(data.values) # dla starszych wersji biblioteki Pandas"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wykresy biblioteka `matplotlib`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dokumentacja modułu `pyplot` biblioteki `matplotlib`: https://matplotlib.org/api/pyplot_api.html"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
2021-03-17 11:29:33 +01:00
"# Trochę jupyterowej magii, żeby wykresy wyświetlały się bezpośrednio pod kodem, który go wywołuje\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"# Prosty wykres punktowy\n",
"# Litery 'ro' oznaczają, że dane zostaną przedstawione za pomocą czerwonych kółek:\n",
"# 'r' ('red') czerwone\n",
"# 'o' kółko\n",
"# Zobacz też: https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plot\n",
"\n",
"plt.plot([1,2,3,4], [1,4,9,16], 'm^')\n",
2021-03-17 11:29:33 +01:00
"plt.axis([0, 5, 0, 20]) # opcjonalnie ustawiamy zakres osi wykresu\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Wykres danych wczytanych z pliku\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"# Wczytanie danych\n",
"data = pd.read_csv('data1.tsv', sep='\\t')\n",
"data_array = data.values\n",
"\n",
"# Wybór kolumn do przedstawienia na wykresie\n",
"x = data_array[:, 5]\n",
"y = data_array[:, 0]\n",
"\n",
2021-03-17 11:37:25 +01:00
"plt.plot(x, y, 'gx') # \"gx\" - zielone (Green) krzyżyki (x)\n",
"plt.axis([0, 100, 0, 600000]) # opcjonalnie ustawiamy zakres osi wykresu\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# inicjalizacja\n",
"fig = plt.figure()\n",
"# dodanie \"podwykresu\" (zobacz: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot )\n",
"ax = fig.add_subplot(111)\n",
"\n",
2021-03-17 11:37:25 +01:00
"ax.set_xlabel('x') # opis osi x\n",
"ax.set_ylabel('y') # opis osi y\n",
"ax.set_title('Wykres funkcji') # tytuł wykresu\n",
"\n",
2021-03-17 11:37:25 +01:00
"x = np.arange(0.0, 10.0, 0.01) # x przebiega zakres od 0 do 10 co 0.01\n",
"\n",
"# zdefiniowanie wartości y w zależności od x\n",
2021-03-17 11:37:25 +01:00
"y = np.sin(2*np.pi*x)\n",
"# spróbuj też inne funkcje:\n",
2021-03-17 11:37:25 +01:00
"# y = 2 * x**2 + 5 * x - 10\n",
"z = np.sqrt(x)\n",
"\n",
2021-03-17 11:29:33 +01:00
"ax.plot(x, y, color='blue', lw=2) # \"lw\" oznacza grubość linii (Line Width)\n",
"ax.plot(x, z, color='red', lw=1) # \"lw\" oznacza grubość linii (Line Width)\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Style wykresów"
]
},
{
"cell_type": "code",
2021-03-17 13:20:09 +01:00
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x576 with 3 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Umieszczanie kilku układów współrzędnych i kilku wykresów na jednym rysunku\n",
"\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# inicjalizacja zestawu wykresów\n",
"fig = plt.figure(figsize=(10,8))\n",
"\n",
"# wygenerowanie danych\n",
2021-03-17 11:29:33 +01:00
"x = np.arange(0.0, 1.0, 0.025)\n",
"y1 = np.sin(2*np.pi*x) + 5.0\n",
"y2 = np.sin(2*np.pi*x) + 2.5\n",
"y3 = np.sin(2*np.pi*x)\n",
"\n",
"# pierwszy wykres\n",
"ax1 = fig.add_subplot(3,1,1)\n",
2021-03-17 11:29:33 +01:00
"ax1.set_ylabel('y')\n",
"ax1.set_title('pierwszy wykres')\n",
"\n",
2021-03-17 11:29:33 +01:00
"ax1.plot(x, y1, color='red', lw=2) # pierwsza krzywa - czerwona\n",
"ax1.plot(x, y2, color='green', lw=2) # druga krzywa - zielona\n",
"ax1.plot(x, y3, color='#002d69', lw=2) # trzecia krzywa - kolor zdefiniowany szesnastkowo\n",
"\n",
"# drugi wykres\n",
"ax2 = fig.add_subplot(3,1,2)\n",
2021-03-17 11:29:33 +01:00
"ax2.set_ylabel('y')\n",
"ax2.set_title('drugi wykres')\n",
"\n",
2021-03-17 11:29:33 +01:00
"ax2.plot(x, y1, color='black', lw=2,linestyle=\"--\") # pierwsza krzywa - kreskowana\n",
"ax2.plot(x, y2, color='blue', lw=2,linestyle=\":\") # druga krzywa - kropkowana\n",
"ax2.plot(x, y3, color='#ff0000', lw=2,linestyle=\"-.\") # trzecia krzywa - kropkowano-kreskowana\n",
"\n",
"# trzeci wykres\n",
"ax3 = fig.add_subplot(3,1,3)\n",
2021-03-17 11:29:33 +01:00
"ax3.set_ylabel('y')\n",
"ax3.set_title('trzeci wykres')\n",
"\n",
2021-03-17 11:29:33 +01:00
"ax3.plot(x, y1, color='brown', marker=\"x\") # pierwsza krzywa - krzyżyki\n",
"ax3.plot(x, y2, color='purple', marker=\"o\") # druga krzywa - kółka\n",
"ax3.plot(x, y3, color='orange', marker=\"^\") # trzecia krzywa - trójkąty\n",
"\n",
"# dostosowanie odstępów pomiędzy wykresami\n",
"plt.subplots_adjust(wspace=0.2,hspace=.4)\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Wykresy trójwymiarowe  linie"
]
},
{
"cell_type": "code",
2021-03-17 13:20:09 +01:00
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjwAAAHBCAYAAABt62HAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOy9eZQc5X3v/e1teu/Z9xlpNs2mXSMxA0HY4BgcAsIgsx07xCFcjuwrR+AkfnNPHGznensTeEEYH4gxBmNjvAZjK+BriNG1AaENCYE03bPPdM/07EtX70vV+8fwlKp7eu/qru6Z53POHFBv9fRWz7d/21fGcRwoFAqFQqFQ1jNyqRdAoVAoFAqFkm2o4KFQKBQKhbLuoYKHQqFQKBTKuocKHgqFQqFQKOseKngoFAqFQqGse6jgoVAoFAqFsu5RJrie9qxTKBQKhUIpFGSxrqARHgqFQqFQKOseKngoFAqFQqGse6jgoVAoFAqFsu6hgodCoVAoFMq6J1HRMoVCoVAoGRMIBGCz2eD1eqVeCmUdoNFo0NDQAJVKlfR9ZAnMQ2mXFoVCoVAyZnR0FEajEeXl5ZDJYjbSUCgJ4TgOCwsLYBgGzc3NkVfTLi0KhUKhSIfX66VihyIKMpkM5eXlKUcLqeChUCgUSk6gYociFul8lqjgoVAoFMq6Z2xsDNu2bZN6GQXF8ePH8fbbb0u9DNGggodCoVAoFADBYFDqJaRMNtccT/AU4mtFu7QoFAqFsqEYGRnBwYMH8b3vfQ8XL17Ef/3Xf8Hr9cLlcuHqq6/Gb37zGwDA3Nwcrr/+ejQ0NKCiogJHjhwBAPzzP/8zqqurYTab8YlPfAIHDhzArbfeitLSUvzgBz/AM888g9HRUXz961/HJz/5SVitVni9Xhw5cgT333//mvU0NTXhzjvvxBtvvAEA+MlPfoK2tjb89re/xde//nX4/X6Ul5fjhRdeQHV1Nb761a9iamoKY2NjqKiowDe/+U381V/9FVwuFwDgiSeewFVXXYXjx4/jK1/5Cqqrq3H+/Hncdttt2L59O44ePQqPx4Nf//rXaG1txdzcHA4dOoSJiQkAwGOPPYb6+no89dRTUCgU+PGPf4zvfOc7eOaZZ1BWVoZz585h165dOHbsGN5++21UVlaCZVm0t7fjnXfeQSgUwqFDhzAyMgIAePLJJ3HhwgU89dRTAICVlRU0NTXhjTfegMFgwJEjR3Ds2DFotVq8/PLLqK6ujvncM4EKHgqFQqHklK/99iIuTTlEfczuOhO+cvPWhLezWCy466678Oyzz2LXrl24ePEiTpw4gQsXLqCsrAwA8K//+q9YWVnB/v37cfjwYZSXl+O2227DkSNHwLIsfvrTn+LUqVN47bXX8Kc//QkHDhzA5OQk7HY7AODNN9/EXXfdBQD4wQ9+gLKyMng8Huzbtw8HDx5EeXn5mnWZTCacOnUKzz//PB544AEcO3YMV199Nd555x3IZDJ8//vfx7/927/hkUceAQCcPXsWb775JrRaLdxuN1577TVoNBoMDg7i7rvvxpkzZwAA7733Hvr7+1FWVoaWlhbcd999OHXqFI4ePYrvfOc7eOyxx3DkyBE8+OCDuPrqqzExMYEbbrgB/f39OHToEAwGA/7hH/4BAPDMM89gYGAAr7/+OhQKBUpKSvDCCy/ggQcewOuvv46dO3eioqICd955Jz7ykY/gpZdeQigUgtPpxFVXXYVDhw4hEAjguuuuwxe/+EUAgMvlQl9fH77xjW/gS1/6Ep5++ml8+ctfjvvc04UKHgqFQqFsCObm5nDLLbfgV7/6FbZuvSyOPv7xj/NiB1hte/70pz+NBx98ED09PQCA8vJynDt3DjMzM9i9ezfKy8uxf/9+PPbYY7h06RK6u7uxtLQEu92OEydO4PHHHwcAPP7443jppZcAAFarFYODg1EFz913383/98EHHwQA2Gw23HnnnbDb7fD7/WEt2AcOHIBWqwWwOuPo8OHDOH/+PBQKBQYGBvjb7du3D7W1tQCA1tZWXH/99QCA7du38xGl119/HZcuXeLv43A4wDBM1Nfw9ttvh0KhAADce++9uOWWW/DAAw/gBz/4Af7mb/4GAPCHP/wBzz//PABAoVCguLiYv/+RI0dw3XXX4eabbwYAFBUV4aabbgIA9PT04LXXXkv43NOFCh4KhUKh5JRkIjHZoLi4GI2NjXjrrbfCBI9erw+73Ve/+lU0NDTwGzgA3HfffXjuuecwPT2Ne++9FwBQX1+PpaUl/O53v8M111yDxcVF/PznP4fBYIDRaMTx48fx+uuv48SJE9DpdPjoRz8as5Va2HVE/v8LX/gCvvjFL+LAgQM4fvw4vvrVr0Zd86OPPorq6mq89957YFkWGo2Gv06tVvP/L5fL+X/L5XK+DodlWZw4cYIXUPEQHrexsRHV1dX4wx/+gJMnT+KFF16Ie9/nnnsO4+PjeOKJJ/jLVCoV/3wVCgW/pnjPPV1o0TKFQqFQNgRFRUX49a9/jeeffx4/+clPot7m2LFjeO211/gIDeHWW2/F7373O5w+fRo33HADf/mVV16Jxx57DNdccw3279+Phx9+GPv37wewWqtSWloKnU4Hs9mMd955J+bafvazn/H/vfLKK/n719fXAwB++MMfxrzvysoKamtrIZfL8aMf/QihUCiJV+My119/fZgIOX/+PADAaDTGjPQQ7rvvPnzmM5/BHXfcwUd+Pvaxj+HJJ58EAIRCITgcDpw9exYPP/wwfvzjH0MuTyw9kn3uqUAFD4VCoVA2DHq9HseOHcOjjz6Kl19+ec31jzzyCKampnDFFVdg165deOihhwCsiqVrr702bGMHgP379yMYDKKtrQ179uzB4uIiL3g+8YlPIBgMYseOHfiXf/kX9PX1xVyXz+dDb28vjh49ikcffRTAaqTp9ttvx/79+1FRURHzvp///Ofxwx/+EH19fRgYGFgTsUrE448/jjNnzmDHjh3o7u7mi4tvvvlmvPTSS9i1axf+9Kc/Rb3vgQMH4HQ6w6JhR48exRtvvIHt27ejp6cHFy9exBNPPIHFxUVce+212LVrF+677764a0r2uacCtZagUCgUStbp7+9HV1eX1MtIG5ZlsWfPHvziF7/Ali1bRH3spqYmnDlzRrSNPZecOXMGDz74YExBlE1ifKaotQSFQqFQKOlw6dIltLW14WMf+5joYqeQ+fa3v42DBw/iW9/6ltRLSQoa4aFQKBRK1in0CA8l/6ARHgqFQqFQKJQIqOChUCgUSk5IkFGgUJImnc8SFTwUCoVCyToajQYLCwtU9FAyhuM4LCwshM0bSgZaw0OhUCiUrBMIBGCz2WIO3qNQUkGj0aChoQEqlSryqpg1PFTwUCgUCoVCWS/QomUKhUKhUCgbFyp4KBQKhUKhrHuo4KFQCgyO48CyLC3+pFAolBSgbukUSgHBsiwCgQA8Hg9kMhmUSiUUCgX/J5PJwlyXKRQKhbIKLVqmUAoAjuMQCAR4F2S/3w+ZTMZHe4jIkclkUCgUYUKIiiAKhbKBoF1aFEohwnEcgsEggsEgAPDChQieaLcnf+Tfcrk8TATJ5XLI5XIqgigUynok5omNprQolDyE4ziEQiEEg0FwHBcWpYn3IyVaNEf4WEIUCgVUKhUVQRQKZUNAIzwUSp5B6nRIqkooQliWhc1mw/T0NPR6PYxGI4xGI3Q6XUpihUSBpqenEQqFUFdXBwB8JEipVFIRRKFQChEa4aFQ8h2WZREMBhEKhXihIxQbCwsLGBgYQHl5OTo6OuDxeOBwODA/Pw+32w2lUgmj0QiDwQCTyRRXBEU+vkKh4OuBfD4fvF5v2HWRKTEqgigUSqFBIzwUisREq9MRCgqXywWLxQK5XI729nZotdqoNTyBQAAMw8DpdMLhcMDtdkOhUPBRIBIJkssvT6OYnp6G3+/Hpk2bYq5NWBNEkMvlfCSIiiAKhZJH0KJlCiXfiFenA6wKmOHhYSwvL6OjowOlpaX8/WIVLUcSDAbBMAz/53a7IZPJeAHk8/kgl8uxefPmlNa
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib as mpl\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"fig = plt.figure(figsize=(10,8))\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"\n",
"theta = np.linspace(-4 * np.pi, 4 * np.pi, 50)\n",
"z = np.linspace(-2, 2, 50)\n",
"r = z**2 + 1\n",
"x = r * np.sin(theta)\n",
"y = r * np.cos(theta)\n",
"\n",
2021-03-17 11:37:25 +01:00
"ax.plot(x, y, z, label='krzywa parametryczna')\n",
"ax.legend() # pokaż legendę wykresu\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Wykresy trójwymiarowe powierzchnie"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from mpl_toolkits.mplot3d import Axes3D # niezbędne do rysowania powierzchni w 3 wymiarach\n",
"from matplotlib import cm\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"fig = plt.figure(figsize=(10,8))\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"\n",
"X = np.arange(-5, 5, 0.25)\n",
"Y = np.arange(-5, 5, 0.25)\n",
"X, Y = np.meshgrid(X, Y) # wygenerowanie tablicy danych wejściowych dla wykresu trójwymiarowego\n",
"\n",
"# obliczenie wartości rzędnych\n",
"Z = np.sqrt(X**2 + Y**2) \n",
"# Spróbuj też innych funkcji\n",
"# Z = np.sin(np.sqrt(X**2 + Y**2)) \n",
"# Z = np.cos(X + Y) \n",
"# Z = X**2 * Y\n",
"\n",
"surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.jet,\n",
" linewidth=0, antialiased=True)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Wykresy kolumnowe"
]
},
{
"cell_type": "code",
2021-03-17 13:20:09 +01:00
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# data: scores in five groups for men and women\n",
"N = 5\n",
"menMeans = [18, 35, 30, 35, 27]\n",
"menStd = [2, 3, 4, 1, 2]\n",
"womenMeans = [25, 32, 34, 20, 25]\n",
"womenStd = [3, 5, 2, 3, 3]\n",
"\n",
"# start creating figure\n",
"fig = plt.figure(figsize=(10,8))\n",
"ax = fig.add_subplot(111)\n",
"\n",
"# necessary variables\n",
"LOCATIONS = np.arange(N) # the x locations for the groups\n",
"WIDTH = 0.35 # the width of the bars\n",
"\n",
"# the bars\n",
"rects_m = ax.bar(LOCATIONS, menMeans, WIDTH,\n",
" color='blue',\n",
" yerr=menStd,\n",
" error_kw=dict(elinewidth=2,ecolor='red'))\n",
"\n",
"rects_f = ax.bar(LOCATIONS+WIDTH, womenMeans, WIDTH,\n",
" color='red',\n",
" yerr=womenStd,\n",
" error_kw=dict(elinewidth=2,ecolor='blue'))\n",
"\n",
"# axes and labels\n",
"ax.set_xlim(-WIDTH, len(LOCATIONS))\n",
"ax.set_ylabel(\"Scores\")\n",
"ax.set_title(\"Scores by group and gender\")\n",
"xTickMarks = [\"Group {}\".format(i) for i in range(1,6)]\n",
"ax.set_xticks(LOCATIONS + WIDTH)\n",
"xtickNames = ax.set_xticklabels(xTickMarks)\n",
"plt.setp(xtickNames, rotation=45, fontsize=10)\n",
"\n",
"# add a legend\n",
"ax.legend( (rects_m[0], rects_f[0]), ('Men', 'Women') )\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Wykresy punktowe"
]
},
{
"cell_type": "code",
2021-03-17 13:20:09 +01:00
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1080x504 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"fig = plt.figure(figsize=(15,7))\n",
"\n",
"# left panel\n",
"N = 1000\n",
"ax1 = fig.add_subplot(121)\n",
"\n",
"x = np.random.randn(N)\n",
"y = np.random.randn(N)\n",
"ax1.scatter(x, y, color='blue', s=10, edgecolor='none')\n",
"# make axes square\n",
"ax1.set_aspect(1. / ax1.get_data_ratio()) \n",
"\n",
"# right panel\n",
"ax2 = fig.add_subplot(122)\n",
"props = dict(alpha=0.5, edgecolors='none')\n",
"\n",
"M = 200\n",
"colors = ['blue', 'green', 'magenta', 'cyan']\n",
"handles = []\n",
"\n",
"for color in colors:\n",
" x = np.random.randn(M)\n",
" y = np.random.randn(M)\n",
" size = np.random.randint(25,200)\n",
" handles.append(ax2.scatter(x, y, c=color, s=size, **props))\n",
"\n",
"#ax2.set_ylim([-5,10])\n",
"#ax2.set_xlim([-5,10])\n",
"\n",
"ax2.legend(handles, colors)\n",
"ax2.grid(True)\n",
"ax2.set_aspect(1./ax2.get_data_ratio())\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Histogramy"
]
},
{
"cell_type": "code",
2021-03-17 13:20:09 +01:00
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 720x576 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"fig = plt.figure(figsize=(10, 8))\n",
"ax = fig.add_subplot(111)\n",
"\n",
"x = np.random.normal(0, 1, 1000)\n",
"num_bins = 50\n",
"ax.hist(x, num_bins, color='green', alpha=0.8)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Zadania"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadania podstawowe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zadanie 2.1 (2 punkty)\n",
"\n",
"Wybierz dwie dowolne kolumny (z wyjątkiem pierwszej) z pliku *data2.csv*. Przedstaw zależność między tymi danymi na wykresie punktowym (wartości z jednej kolumny powinny znaleźć się na jednej osi, a wartości z drugiej kolumny na drugiej osi)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zadanie 2.2A (2 punkty)\n",
"\n",
"Wygeneruj wykres funkcji $y = f(x) = (a - 4) \\, x^2 + (b - 5) \\, x + (c - 6)$, gdzie $a, b, c$ to trzy ostatnie cyfry Twojego numeru indeksu. Pamiętaj o opisaniu osi wykresu ($x$ oraz $y$)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadania zaawansowane"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zadanie 2.2B (1 punkt)\n",
"\n",
"Na wykresie z zadania 2.2 przedstaw dodatkowo wykres funkcji $y = g(x) = \\frac{e^x}{e^x + 1}$. Linie przestawiające funkcje $y = f(x)$ i $y = g(x)$ powinny znaleźć się na tym samym wykresie, ale powinny różnić się kolorami. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zadanie 2.3 (2 punkty)\n",
"\n",
2021-03-17 13:20:09 +01:00
"Stwórz trójwymiarowy (powierzchniowy) wykres funkcji $f(x,y) = -(x^2 + y^3)$.\n",
"\n",
"Wykres powinien przedstawiać powierzchnię $z = -(x^2 + y^3)$."
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "amu"
}
},
"nbformat": 4,
"nbformat_minor": 4
}