umz21/lab/02_Wczytywanie_i_prezentowanie_danych.ipynb

863 lines
538 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Uczenie maszynowe 2019/2020 laboratoria\n",
"### 17 marca 2021\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": 1,
"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": 2,
"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": 3,
"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": 4,
"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": 5,
"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": 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.tsv', sep='\\t')\n",
"print(data)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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": [
"print(data.to_numpy()) # dane z Pandas DataFrame można przekonwertować na tablicę NumPy"
]
},
{
"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": 8,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 18,
"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], 'gx') # \"gx\" to kolor i kształt znaczników - tu: zielone (Green) krzyżyki (x)\n",
"plt.axis([0, 5, 0, 20]) # opis osi wykresu\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "code",
"execution_count": 25,
"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.to_numpy()\n",
"\n",
"# Wybór kolumn do przedstawienia na wykresie\n",
"x = data_array[:, 0]\n",
"y = data_array[:, 5]\n",
"\n",
"plt.plot(x, y, 'ro') # \"ro\" - czerwone (Red) kółka (o)\n",
"plt.axis([0, 600000, 0, 100]) # opis osi wykresu\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEICAYAAACwDehOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de7xVc/7H8den000kl0K3UYhRbpnkPhMzRgxlzKDcQkOIwbiFYQy5ZBiT+2Q0Qsb90ojJaDAYt0oSSbmNlAqT9IujOp/fH5916sg5p33qrL322fv9fDzOY6+99tp7ffbatT97re/3+/mauyMiIgLQKOsARESkcCgpiIjIckoKIiKynJKCiIgsp6QgIiLLKSmIiMhySgoiKzGz75nZIjMryzoWkXwzjVMQEZFKOlMQEZHllBSkqJjZEDN718y+NLO3zOzntWzb08wmmNlCM5trZn9M1ncyMzezxsn9Z8zsUjN7IXndJ82sdZXX2cXM/mNmC8zsdTPrVcP+jjWzv1e5P9PM7qty/yMz2yFZHp7cX2hmE81sz2R9OzP7ysw2qPK87mb2qZk1Se4fZ2bTzOx/ZjbOzDZdzcMpJUhJQYrNu8CeQCvg98BdZta2hm2HA8PdfV1gc+C+GrYDOBw4FtgIaAqcBWBm7YGxwFBgg2T9g2bWpprXeBbY08waJTE1AXZPXmczYB1gSrLtq8AOyWveDdxvZs3dfTbwIvCLlWJ7wN2XmNlBwPnAwUAb4Dngb7W8L5FvUVKQouLu97v7bHevcPd7gRlAzxo2XwJsYWat3X2Ru79Uy0v/1d3fcfeviOSxQ7L+SOBxd3882ec/gQnA/tXE9h7wZfLcHwHjgI/N7PvJ/efcvSLZ9i53/8zdl7r7NUAzYKvkpe4G+gOYmQH9knUAg4Ar3H2auy8FLgd20NmC5EpJQYqKmR1tZpOTSzkLgG2A1jVsPhDYEnjbzF41swNqeelPqiwvJn7VA2wKHFK5v2SfewA1nZ08C/QCfpgsP0MkhB8l9yvfx5nJJaAvktdsVeV9PADsambtktdx4oygMp7hVWL5HDCgfS3vTWS5xlkHIFJfkl/DtwI/Bl5092VmNpn4UvwOd58B9DezRsTllgfMbMM67vYj4E53Pz7H7Z8FDgQ6E7/iFwBHALsCNyTvY0/g3OR9vOnuFWb2v8r34e4LzOxJ4FBga+BvvqIb4UfAZe4+uo7vQwTQmYIUl7WJX83zIRp2iTOFapnZkWbWJrlksyBZvayO+7wLONDM9jWzMjNrbma9zKxDDds/C+wFrOXus4hf+L2BDYHXkm1aAkuT99HYzC4C1l3pde4GjibaFu6usv4W4Dwz65a8x1Zmdkgd35OUMCUFKRru/hZwDdEQOxfYFnihlqf0Bt40s0VEo3M/d/+6jvv8COhLNO7OJ36pn00N/7fc/R1gEcnlHndfCLwHvODulQlpHPAE8A7wIfB18rpVjQG6AHPd/fUqr/8wMAy4x8wWAlOB/erynqS0afCaiIgspzMFERFZTklBRESWU1IQEZHlUksKZtbRzJ5O+lq/aWanJesvNrOPk77kk81s/yrPOS8Z+j/dzPZNKzYREaleag3NyTD+tu4+ycxaAhOBg4i+1Yvc/eqVtu9KDMfvCbQDngK2rNIj4ztat27tnTp1SiV+EZFiNXHixE/dvbpSLOkNXnP3OcCcZPlLM5tG7aMq+wL3uHs58L6ZzSQSxIs1PaFTp05MmDChHqMWESl+ZvZhTY/lpU3BzDoB3YGXk1WnmNkUMxtpZusn69rz7b7Ys6gmiZjZCUllywnz589PMWoRkdKTelIws3WAB4HTk4E6NxMVKXcgziSuqdy0mqd/59qWu49w9x7u3qNNm2rPfkREZDWlmhSS+u4PAqPd/SEAd5/r7suS0gK3sqKC5SygY5WndwBmpxmfiIh8W5q9jwy4DZjm7n+ssr5q9cifE8PwIYbt9zOzZmbWmRjC/0pa8YmIyHelWSV1d+Ao4I2kUiVEfZj+yexSDnxA1H/H3d9MZqF6iygGNri2nkciIlL/0ux99DzVtxM8XstzLgMuSysmERGpnUY0i4g0MBUV6b22koKISANSUQHdu8NJJ8EXX9T/6yspiIg0IGPHwpQp8I9/wDrrrHr7ulJSEBFpQP70p7g99VQoK6v/11dSEBFpIKZMgX/9K84QBg5MZx9KCiIiDcTw4XF77LHQqlU6+1BSEBFpAObNg9GjwSwuHaVFSUFEpAH485+hvBwOOAC6dElvP0oKIiIFrrwcbroplk8/Pd19KSmIiBS4++6DTz6BbbeFvfZKd19KCiIiBcx9RTfU00+PNoU0KSmIiBSwZ5+FSZOgTRs4/PD096ekICJSwK5OZrMfPBiaN09/f0oKIiIFatq0KGvRvDmcfHJ+9qmkICJSoP6YTE82YEBcPsoHJQURkQI0dy7ceWc0LJ9xRv72q6QgIlKAbrwxxif06QNbbZW//SopiIgUmMWLVwxWO/PM/O5bSUFEpMCMGgWffQY9e8Iee+R330oKIiIFZNmyFQ3MZ56Z/mC1lSkpiIgUkDFjYOZM6NQJDj44//tXUhARKSDXXBO3Z5wBjRvnf/9KCiIiBeKll+CFF2C99eC447KJQUlBRKRAVJ4lnHhiTLmZBSUFEZEC8N578NBD0KRJujOrrYqSgohIAbj6aqioiEqo7dplF4eSgohIxubOhZEjY/mcc7KNRUlBRCRjw4dHSYuDDoKuXbONRUlBRCRDX3wRdY4Azj0321hASUFEJFO33AILF0KvXrDLLllHk2JSMLOOZva0mU0zszfN7LRk/QZm9k8zm5Hcrl/lOeeZ2Uwzm25m+6YVm4hIIfj6a7j22lgeMiTbWCqleaawFDjT3bcGdgEGm1lXYAgw3t27AOOT+ySP9QO6Ab2Bm8ysLMX4REQyNWpUNDJ37w4//WnW0YTUkoK7z3H3Scnyl8A0oD3QFxiVbDYKOChZ7gvc4+7l7v4+MBPomVZ8IiJZWroUrroqlocMyX/hu5rkpU3BzDoB3YGXgY3dfQ5E4gA2SjZrD3xU5WmzknUrv9YJZjbBzCbMnz8/zbBFRFLz4IMxYG3zzeEXv8g6mhVSTwpmtg7wIHC6uy+sbdNq1vl3VriPcPce7t6jTb4mLRURqUfucOWVsXzOOVBWQBfKU00KZtaESAij3f2hZPVcM2ubPN4WmJesnwV0rPL0DsDsNOMTEcnCuHEweTJssgkcfXTW0Xxbmr2PDLgNmObuf6zy0BhgQLI8AHi0yvp+ZtbMzDoDXYBX0opPRCQrlWcJv/kNNG+ebSwrS7Na9+7AUcAbZjY5WXc+cCVwn5kNBP4LHALg7m+a2X3AW0TPpcHuvizF+ERE8u6ll+DZZ6FVKxg0KOtoviu1pODuz1N9OwHAj2t4zmXAZWnFJCKStcuSb7iTT4Z11802lupoRLOISJ689ho89hi0aBEzqxUiJQURkTwZOjRuTzwRCrXzpJKCiEgeTJ0ak+g0awZnnZV1NDVTUhARyYPKtoTjj4e2bbONpTZKCiIiKXv7bbj33phqM+tJdFZFSUFEJGWXXx6jmI89Fjp2XPX2WVJSEBFJ0bvvwt13RymLQimPXRslBRGRFF1xBSxbBkcdBZ07Zx3NqikpiIik5MMPY86ERo3g/POzjiY3SgoiIikZNizmTejXD7p0yTqa3CgpiIik4OOP4bbbYvKcCy7IOprcKSmIiKTgqqvgm29iAp2uXbOOJndKCiIi9ezjj+HPf47l3/4221jqSklBRKSeXX45lJfDL38J22+fdTR1o6QgIlKP/vtfuPXWaEu4+OKso6k7JQURkXp02WWwZEn0OOrWLeto6k5JQUSknrz/PowcGeMSLroo62hWj5KCiEg9GTo0xiUccQR8//tZR7N6lBREROrBzJkxermsrOGeJYCSgohIvbjkkqhxNGAAbLFF1tGsPiUFEZE19PbbMHo0NG7c8MYlrExJQURkDV1yCVRUwMCBDaMSam2UFERE1sCbb8I990DTpg2nEmptlBRERNbARRfFrGrHHw/f+17
"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",
"ax.set_ylabel('volts') # opis osi y\n",
"ax.set_title('a sine wave') # tytuł wykresu\n",
"\n",
"x = np.arange(-10.0, 10.0, 0.01) # \n",
"\n",
"# zdefiniowanie wartości y w zależności od x\n",
"y = 2 * x**2 + 5 * x - 10\n",
"# spróbuj też inne funkcje:\n",
"# y = np.sin(2*np.pi*x)\n",
"# y = np.sqrt(x)\n",
"\n",
"line = ax.plot(x, y, color='blue', lw=2) # \"lw\" oznacza grubość linii (Line Width)\n",
"\n",
"plt.show() # pokaż wykres"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Style wykresów"
]
},
{
"cell_type": "code",
"execution_count": 26,
"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",
"t = np.arange(0.0, 1.0, 0.01)\n",
"s = np.sin(2*np.pi*t)\n",
"\n",
"# pierwszy wykres\n",
"ax1 = fig.add_subplot(3,1,1)\n",
"ax1.set_ylabel('volts')\n",
"ax1.set_title('a sine wave')\n",
"\n",
"line1 = ax1.plot(t, s+5.0, color='blue', lw=2)\n",
"line2 = ax1.plot(t, s+2.5, color='red', lw=2)\n",
"line3 = ax1.plot(t, s, color='orange', lw=2)\n",
"\n",
"# drugi wykres\n",
"ax2 = fig.add_subplot(3,1,2)\n",
"ax2.set_ylabel('volts')\n",
"ax2.set_title('a sine wave')\n",
"\n",
"line1 = ax2.plot(t, s+5.0, color='black', lw=2,linestyle=\"--\")\n",
"line2 = ax2.plot(t, s+2.5, color='black', lw=2,linestyle=\"-.\")\n",
"line3 = ax2.plot(t, s, color='#000000', lw=2,linestyle=\":\")\n",
"\n",
"# trzeci wykres\n",
"ax3 = fig.add_subplot(3,1,3)\n",
"ax3.set_ylabel('volts')\n",
"ax3.set_title('a sine wave')\n",
"\n",
"line1 = ax3.plot(t,s+5.0, color='blue', marker=\"+\")\n",
"line2 = ax3.plot(t,s+2.5, color='red', marker=\"o\")\n",
"line3 = ax3.plot(t,s, color='orange', marker=\"^\")\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",
"execution_count": 12,
"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 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",
"ax.plot(x, y, z, label='parametric curve')\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": 38,
"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",
"execution_count": 14,
"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",
"execution_count": 15,
"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",
"execution_count": 16,
"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",
"Stwórz trójwymiarowy (pownierzchniowy) 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.8.3"
},
"livereveal": {
"start_slideshow_at": "selected",
"theme": "amu"
}
},
"nbformat": 4,
"nbformat_minor": 4
}