From c175d40b1a481cfbfce4219e78639d39f9945644 Mon Sep 17 00:00:00 2001 From: miguel5612 Date: Mon, 1 Jul 2019 22:07:36 -0500 Subject: [PATCH] Created graph for MQ4 --- .../MQ3_Regression-checkpoint.ipynb | 533 ++- .../MQ4_Regression-checkpoint.ipynb | 2010 +++++++++++ Experiments/MQ3.eps | 2 +- Experiments/MQ3.svg | 478 +-- Experiments/MQ3_Regression.ipynb | 533 ++- Experiments/MQ4.eps | 2967 +++++++++++++++++ Experiments/MQ4.png | Bin 0 -> 136766 bytes Experiments/MQ4.svg | 1671 ++++++++++ Experiments/MQ4_Regression.ipynb | 2010 +++++++++++ 9 files changed, 9424 insertions(+), 780 deletions(-) create mode 100644 Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb create mode 100644 Experiments/MQ4.eps create mode 100644 Experiments/MQ4.png create mode 100644 Experiments/MQ4.svg create mode 100644 Experiments/MQ4_Regression.ipynb diff --git a/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb b/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb index 94b706c..3375f49 100644 --- a/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb +++ b/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -10,29 +10,22 @@ "output_type": "stream", "text": [ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n", - "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n", "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n", "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n", + "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n", "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n", "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", - "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.20.3)\n", - "Requirement already satisfied: scipy>=0.13.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n", - "Requirement already satisfied: numpy>=1.8.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n", - "Collecting imblearn\n", - " Using cached https://files.pythonhosted.org/packages/81/a7/4179e6ebfd654bd0eac0b9c06125b8b4c96a9d0a8ff9e9507eb2a26d2d7e/imblearn-0.0-py2.py3-none-any.whl\n", - "Collecting imbalanced-learn (from imblearn)\n", - " Using cached https://files.pythonhosted.org/packages/e6/62/08c14224a7e242df2cef7b312d2ef821c3931ec9b015ff93bb52ec8a10a3/imbalanced_learn-0.5.0-py3-none-any.whl\n", - "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n", - "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n", - "Collecting scikit-learn>=0.21 (from imbalanced-learn->imblearn)\n", - " Using cached https://files.pythonhosted.org/packages/75/14/fde90de4fc6722303ddbc183ec253c288dae8c7e4eb5a069ac49f14c9a0f/scikit_learn-0.21.2-cp37-cp37m-win_amd64.whl\n", + "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n", + "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n", + "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n", + "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", + "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n", "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n", - "Installing collected packages: scikit-learn, imbalanced-learn, imblearn\n", - " Found existing installation: scikit-learn 0.20.3\n", - " Uninstalling scikit-learn-0.20.3:\n", - " Successfully uninstalled scikit-learn-0.20.3\n", - "Successfully installed imbalanced-learn-0.5.0 imblearn-0.0 scikit-learn-0.21.2\n" + "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n", + "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n" ] } ], @@ -45,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -67,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 72, "metadata": {}, "outputs": [ { @@ -105,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ @@ -120,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 74, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 75, "metadata": {}, "outputs": [], "source": [ @@ -145,7 +138,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 76, "metadata": { "scrolled": false }, @@ -193,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 77, "metadata": {}, "outputs": [], "source": [ @@ -212,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 78, "metadata": {}, "outputs": [], "source": [ @@ -231,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ @@ -250,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 80, "metadata": {}, "outputs": [], "source": [ @@ -269,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 81, "metadata": {}, "outputs": [], "source": [ @@ -288,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 82, "metadata": {}, "outputs": [], "source": [ @@ -307,7 +300,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 83, "metadata": {}, "outputs": [ { @@ -347,10 +340,10 @@ " \r\n", " \r\n", + "\" id=\"md0e3683457\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -408,7 +401,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -423,7 +416,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -437,7 +430,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", @@ -445,262 +438,262 @@ " \r\n", " \r\n", + "\" id=\"md63d1a0a53\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -955,10 +948,10 @@ " \r\n", " \r\n", + "\" id=\"mc1bcec9881\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -973,7 +966,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -988,7 +981,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1028,7 +1021,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", @@ -1036,286 +1029,286 @@ " \r\n", " \r\n", + "\" id=\"mc49a650fd5\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1397,7 +1390,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"meebf1fc7a9\" style=\"stroke:#1f77b4;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"m4f70cb6133\" style=\"stroke:#ff7f0e;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"m33cbaacdb3\" style=\"stroke:#2ca02c;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"mf17cc4d4af\" style=\"stroke:#d62728;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"me809331671\" style=\"stroke:#9467bd;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"m55067d34b2\" style=\"stroke:#8c564b;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1769,7 +1762,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1832,7 +1825,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1897,7 +1890,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1948,7 +1941,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1985,7 +1978,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -2038,7 +2031,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -2273,7 +2266,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", diff --git a/Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb b/Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb new file mode 100644 index 0000000..5fcf942 --- /dev/null +++ b/Experiments/.ipynb_checkpoints/MQ4_Regression-checkpoint.ipynb @@ -0,0 +1,2010 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n", + "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n", + "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n", + "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n", + "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", + "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n", + "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", + "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n", + "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n", + "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n", + "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", + "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n", + "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n", + "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n", + "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install xlrd\n", + "!pip install sklearn\n", + "!pip install imblearn" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "import xlrd\n", + "book = xlrd.open_workbook(\"Datasheets info.xlsx\")\n", + "sheetMQ2 = book.sheet_by_name(\"MQ2 - Pololulu\")\n", + "sheetMQ3 = book.sheet_by_name(\"MQ3 - Sparkfun\")\n", + "sheetMQ4 = book.sheet_by_name(\"MQ4 - Sparkfun\")\n", + "sheetMQ5 = book.sheet_by_name(\"MQ5 - Sparkfun\")\n", + "sheetMQ6 = book.sheet_by_name(\"MQ6 - Sparkfun\")\n", + "sheetMQ7 = book.sheet_by_name(\"MQ7 - Sparkfun\")\n", + "sheetMQ8 = book.sheet_by_name(\"MQ8 - Sparkfun\")\n", + "sheetMQ9 = book.sheet_by_name(\"MQ9 - Haoyuelectronics\")\n", + "sheetMQ131 = book.sheet_by_name(\"MQ131- Sensorsportal\")\n", + "sheetMQ135 = book.sheet_by_name(\"MQ135 - HANWEI\")\n", + "sheetMQ303A = book.sheet_by_name(\"MQ303A - HANWEI\")\n", + "sheetMQ309A = book.sheet_by_name(\"MQ309A - HANWEI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 \t \t \t \t \n", + "0.2 \t \t \t \t \n", + "0.3 \t \t \t \t \n", + "0.4 \t \t \t \t \n", + "0.5 \t \t \t \t \n", + "0.6 \t \t \t \t \n", + "0.7 \t \t \t \t \n", + "0.8 \t \t \t \t \n", + "0.9 \t 5000.0 \t \t \t \n", + "1.0 \t \t 1000.0 \t \t \n", + "2.0 \t 1000.0 \t 200.0 \t \t \n", + "3.0 \t 200.0 \t \t 1000.0 \t 5000.0\n", + "4.0 \t \t \t 200.0 \t 200.0\n", + "5.0 \t \t 4000.0 \t \t \n", + "6.0 \t \t \t \t \n", + "7.0 \t \t \t \t \n", + "8.0 \t \t \t \t \n", + "9.0 \t \t \t \t \n", + "10.0 \t \t \t \t \n" + ] + } + ], + "source": [ + "for row_index in range(1,20): #reading first columns\n", + " RsR0, CH4, CO, H2, Alcohol = sheetMQ4.row_values(row_index, start_colx=0, end_colx=5)\n", + " print(RsR0, \"\t\", CH4, \"\t\", CO, \"\t\", H2, \"\t\", Alcohol)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "x_MQ4 = sheetMQ3.col_values(0)[2:]\n", + "MQ4_CH4 = sheetMQ3.col_values(1)[2:]\n", + "MQ4_CO = sheetMQ3.col_values(2)[2:]\n", + "MQ4_H2 = sheetMQ3.col_values(3)[2:]\n", + "MQ4_Alcohol = sheetMQ3.col_values(4)[2:]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "def zero_to_nan(values):\n", + " \"\"\"Replace every 0 with 'nan' and return a copy.\"\"\"\n", + " return [float('nan') if x==0 else x for x in values]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "MQ4_CH4 =zero_to_nan(MQ4_CH4)\n", + "MQ4_CO =zero_to_nan(MQ4_CO)\n", + "MQ4_H2 =zero_to_nan(MQ4_H2)\n", + "MQ4_Alcohol =zero_to_nan(MQ4_Alcohol)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.datasets import load_iris\n", + "#from sklearn.cross_validation import train_test_split\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn import datasets\n", + "from sklearn import linear_model\n", + "\n", + "dataCH4 = {'RsRo': x_MQ4, 'CH4': MQ4_CH4}\n", + "dataCO = {'RsRo': x_MQ4, 'CO': MQ4_CO}\n", + "dataH2 = {'RsRo': x_MQ4, 'H2': MQ4_H2}\n", + "dataAlcohol = {'RsRo': x_MQ4, 'Alcohol': MQ4_Alcohol}\n", + "\n", + "dfMQ4_CH4 = pd.DataFrame(dataCH4)\n", + "dfMQ4_CO = pd.DataFrame(dataCO)\n", + "dfMQ4_H2 = pd.DataFrame(dataH2)\n", + "dfMQ4_Alcohol = pd.DataFrame(dataAlcohol)\n", + "\n", + "dfMQ4_CH4['CH4'] = pd.to_numeric(dfMQ4_CH4['CH4'])\n", + "dfMQ4_CO['CO'] = pd.to_numeric(dfMQ4_CO['CO'])\n", + "dfMQ4_H2['H2'] = pd.to_numeric(dfMQ4_H2['H2'])\n", + "dfMQ4_Alcohol['Alcohol'] = pd.to_numeric(dfMQ4_Alcohol['Alcohol'])\n", + "\n", + "dfMQ4_CH4['CH4'] = dfMQ4_CH4['CH4'].replace('',None, regex=True)\n", + "dfMQ4_CO['CO'] = dfMQ4_CO['CO'].replace('',None, regex=True)\n", + "dfMQ4_H2['H2'] = dfMQ4_H2['H2'].replace('',None, regex=True)\n", + "dfMQ4_Alcohol['Alcohol'] = dfMQ4_Alcohol['Alcohol'].replace('',None, regex=True)\n", + "\n", + "#Global X_Predict variable\n", + "X_Predict = dfMQ4_Alcohol.RsRo.apply(lambda x: [x]).tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CH4\n", + "dataset2TrainCH4 = dfMQ4_CH4.copy()\n", + "dataset2TrainCH4.dropna(inplace=True)\n", + "X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainCH4, y_trainCH4)\n", + "#Predict\n", + "CH4_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_CH4 = CH4_Predicted\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CO\n", + "dataset2TrainCO = dfMQ4_CO.copy()\n", + "dataset2TrainCO.dropna(inplace=True)\n", + "X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainCO = dataset2TrainCO['CO'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainCO, y_trainCO)\n", + "#Predict\n", + "CO_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_CO = CO_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train H2\n", + "dataset2TrainH2 = dfMQ4_H2.copy()\n", + "dataset2TrainH2.dropna(inplace=True)\n", + "X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainH2 = dataset2TrainH2['H2'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainH2, y_trainH2)\n", + "#Predict\n", + "H2_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_H2 = H2_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train Alcohol\n", + "dataset2TrainAlcohol = dfMQ4_Alcohol.copy()\n", + "dataset2TrainAlcohol.dropna(inplace=True)\n", + "X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainAlcohol, y_trainAlcohol)\n", + "#Predict\n", + "Alcohol_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_Alcohol = Alcohol_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\r\n", + "\r\n", + "\r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%config InlineBackend.figure_formats = ['svg']\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.lines as mlines\n", + "import matplotlib.transforms as mtransforms\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "fig.set_size_inches(9, 5.5, forward=True)\n", + "fig.set_dpi(200)\n", + "\n", + "# only these two lines are calibration curves\n", + "plt.plot(MQ4_CH4, x_MQ4, marker='o', linewidth=1, label='CH4')\n", + "plt.plot(MQ4_CO, x_MQ4, marker='o', linewidth=1, label='CO')\n", + "plt.plot(MQ4_H2, x_MQ4, marker='o', linewidth=1, label='H2')\n", + "plt.plot(MQ4_Alcohol, x_MQ4, marker='o', linewidth=1, label='Alcohol')\n", + "\n", + "# reference line, legends, and axis labels\n", + "#line = mlines.Line2D([0, 1], [0, 1], color='black')\n", + "#transform = ax.transAxes\n", + "#line.set_transform(transform)\n", + "#ax.add_line(line)\n", + "plt.yscale('log')\n", + "plt.xscale('log')\n", + "plt.legend()\n", + "\n", + "plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n", + "\n", + "fig.suptitle('Calibration plot for MQ-4 data')\n", + "ax.set_xlabel('PPM Concentration')\n", + "ax.set_ylabel('Rs/Ro')\n", + "\n", + "\n", + "#Save image\n", + "plt.savefig('MQ4.svg', format = 'svg', dpi = 1200)\n", + "plt.savefig('MQ4.png')\n", + "plt.savefig('MQ4.eps', format = 'eps', dpi = 1200)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Experiments/MQ3.eps b/Experiments/MQ3.eps index 83f9428..f691d65 100644 --- a/Experiments/MQ3.eps +++ b/Experiments/MQ3.eps @@ -1,7 +1,7 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Title: MQ3.eps %%Creator: matplotlib version 3.0.3, http://matplotlib.org/ -%%CreationDate: Mon Jul 1 21:44:55 2019 +%%CreationDate: Mon Jul 1 22:07:09 2019 %%Orientation: portrait %%BoundingBox: -18 198 630 594 %%EndComments diff --git a/Experiments/MQ3.svg b/Experiments/MQ3.svg index a7673af..97681d7 100644 --- a/Experiments/MQ3.svg +++ b/Experiments/MQ3.svg @@ -32,10 +32,10 @@ z +" id="ma8165da9da" style="stroke:#000000;stroke-width:0.8;"/> - + @@ -93,7 +93,7 @@ z - + @@ -108,7 +108,7 @@ z - + @@ -122,7 +122,7 @@ z - @@ -130,262 +130,262 @@ L 80.767292 47.52 +" id="m53867a3613" style="stroke:#000000;stroke-width:0.6;"/> - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + @@ -640,10 +640,10 @@ z +" id="m90588ac6bb" style="stroke:#000000;stroke-width:0.8;"/> - + @@ -658,7 +658,7 @@ L -3.5 0 - + @@ -673,7 +673,7 @@ L -3.5 0 - + @@ -713,7 +713,7 @@ z - @@ -721,286 +721,286 @@ L 583.2 332.91 +" id="m39df2a3d4b" style="stroke:#000000;stroke-width:0.6;"/> - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + - - + @@ -1082,7 +1082,7 @@ z - +" id="m59b2da56e4" style="stroke:#1f77b4;"/> - - - - - - - - - - - + + + + + + + + + + + - +" id="mf35dbef7f7" style="stroke:#ff7f0e;"/> - - - - - - - - - - - - - - + + + + + + + + + + + + + + - +" id="m747d1af1aa" style="stroke:#2ca02c;"/> - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - +" id="ma727f64ea5" style="stroke:#d62728;"/> - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - +" id="m74ee734d67" style="stroke:#9467bd;"/> - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - +" id="mf2c7963712" style="stroke:#8c564b;"/> - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1454,7 +1454,7 @@ L 110 258.529688 - + @@ -1517,7 +1517,7 @@ L 110 273.207813 - + @@ -1582,7 +1582,7 @@ L 110 287.885938 - + @@ -1633,7 +1633,7 @@ L 110 302.564063 - + @@ -1670,7 +1670,7 @@ L 110 317.242188 - + @@ -1723,7 +1723,7 @@ L 110 331.920313 - + @@ -1958,7 +1958,7 @@ z - + diff --git a/Experiments/MQ3_Regression.ipynb b/Experiments/MQ3_Regression.ipynb index 94b706c..3375f49 100644 --- a/Experiments/MQ3_Regression.ipynb +++ b/Experiments/MQ3_Regression.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 70, "metadata": {}, "outputs": [ { @@ -10,29 +10,22 @@ "output_type": "stream", "text": [ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n", - "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n", "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n", "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n", + "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n", "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n", "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", - "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.20.3)\n", - "Requirement already satisfied: scipy>=0.13.3 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n", - "Requirement already satisfied: numpy>=1.8.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n", - "Collecting imblearn\n", - " Using cached https://files.pythonhosted.org/packages/81/a7/4179e6ebfd654bd0eac0b9c06125b8b4c96a9d0a8ff9e9507eb2a26d2d7e/imblearn-0.0-py2.py3-none-any.whl\n", - "Collecting imbalanced-learn (from imblearn)\n", - " Using cached https://files.pythonhosted.org/packages/e6/62/08c14224a7e242df2cef7b312d2ef821c3931ec9b015ff93bb52ec8a10a3/imbalanced_learn-0.5.0-py3-none-any.whl\n", - "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n", - "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n", - "Collecting scikit-learn>=0.21 (from imbalanced-learn->imblearn)\n", - " Using cached https://files.pythonhosted.org/packages/75/14/fde90de4fc6722303ddbc183ec253c288dae8c7e4eb5a069ac49f14c9a0f/scikit_learn-0.21.2-cp37-cp37m-win_amd64.whl\n", + "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n", + "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n", + "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n", + "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", + "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n", "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n", - "Installing collected packages: scikit-learn, imbalanced-learn, imblearn\n", - " Found existing installation: scikit-learn 0.20.3\n", - " Uninstalling scikit-learn-0.20.3:\n", - " Successfully uninstalled scikit-learn-0.20.3\n", - "Successfully installed imbalanced-learn-0.5.0 imblearn-0.0 scikit-learn-0.21.2\n" + "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n", + "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n" ] } ], @@ -45,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -67,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 72, "metadata": {}, "outputs": [ { @@ -105,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ @@ -120,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 74, "metadata": {}, "outputs": [], "source": [ @@ -131,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 75, "metadata": {}, "outputs": [], "source": [ @@ -145,7 +138,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 76, "metadata": { "scrolled": false }, @@ -193,7 +186,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 77, "metadata": {}, "outputs": [], "source": [ @@ -212,7 +205,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 78, "metadata": {}, "outputs": [], "source": [ @@ -231,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 79, "metadata": {}, "outputs": [], "source": [ @@ -250,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 80, "metadata": {}, "outputs": [], "source": [ @@ -269,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 81, "metadata": {}, "outputs": [], "source": [ @@ -288,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 82, "metadata": {}, "outputs": [], "source": [ @@ -307,7 +300,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 83, "metadata": {}, "outputs": [ { @@ -347,10 +340,10 @@ " \r\n", " \r\n", + "\" id=\"md0e3683457\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -408,7 +401,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -423,7 +416,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -437,7 +430,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", @@ -445,262 +438,262 @@ " \r\n", " \r\n", + "\" id=\"md63d1a0a53\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -955,10 +948,10 @@ " \r\n", " \r\n", + "\" id=\"mc1bcec9881\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -973,7 +966,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -988,7 +981,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1028,7 +1021,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", @@ -1036,286 +1029,286 @@ " \r\n", " \r\n", + "\" id=\"mc49a650fd5\" style=\"stroke:#000000;stroke-width:0.6;\"/>\r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1397,7 +1390,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"meebf1fc7a9\" style=\"stroke:#1f77b4;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"m4f70cb6133\" style=\"stroke:#ff7f0e;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"m33cbaacdb3\" style=\"stroke:#2ca02c;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"mf17cc4d4af\" style=\"stroke:#d62728;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"me809331671\" style=\"stroke:#9467bd;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", - " \r\n", + "\" id=\"m55067d34b2\" style=\"stroke:#8c564b;\"/>\r\n", " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", - " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1769,7 +1762,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1832,7 +1825,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1897,7 +1890,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1948,7 +1941,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -1985,7 +1978,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -2038,7 +2031,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", @@ -2273,7 +2266,7 @@ " \r\n", " \r\n", " \r\n", - " \r\n", + " \r\n", " \r\n", " \r\n", " \r\n", diff --git a/Experiments/MQ4.eps b/Experiments/MQ4.eps new file mode 100644 index 0000000..9c19ddf --- /dev/null +++ b/Experiments/MQ4.eps @@ -0,0 +1,2967 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: MQ4.eps +%%Creator: matplotlib version 3.0.3, http://matplotlib.org/ +%%CreationDate: Mon Jul 1 22:07:15 2019 +%%Orientation: portrait +%%BoundingBox: -18 198 630 594 +%%EndComments +%%BeginProlog +/mpldict 8 dict def +mpldict begin +/m { moveto } bind def +/l { lineto } bind def +/r { rlineto } bind def +/c { curveto } bind def +/cl { closepath } bind def +/box { +m +1 index 0 r +0 exch r +neg 0 r +cl +} bind def +/clipbox { +box +clip +newpath +} bind def +%!PS-Adobe-3.0 Resource-Font +%%Title: DejaVu Sans +%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain +%%Creator: Converted from TrueType to type 3 by PPR +25 dict begin +/_d{bind def}bind def +/_m{moveto}_d +/_l{lineto}_d +/_cl{closepath eofill}_d +/_c{curveto}_d +/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d +/_e{exec}_d +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix[.001 0 0 .001 0 0]def +/FontBBox[-1021 -463 1793 1232]def +/FontType 3 def +/Encoding [ /space /hyphen /slash /zero /one /two /four /A /C /H /M /O /P /Q /R /a /b /c /d /e /f /h /i /l /n /o /p /r /s /t /minus ] def +/FontInfo 10 dict dup begin +/FamilyName (DejaVu Sans) def +/FullName (DejaVu Sans) def +/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def +/Weight (Book) def +/Version (Version 2.35) def +/ItalicAngle 0.0 def +/isFixedPitch false def +/UnderlinePosition -130 def +/UnderlineThickness 90 def +end readonly def +/CharStrings 32 dict dup begin +/.notdef 0 def +/space{318 0 0 0 0 0 _sc +}_d +/hyphen{361 0 49 234 312 314 _sc +49 314 _m +312 314 _l +312 234 _l +49 234 _l +49 314 _l +_cl}_d +/slash{337 0 0 -92 337 729 _sc +254 729 _m +337 729 _l +83 -92 _l +0 -92 _l +254 729 _l +_cl}_d +/zero{636 0 66 -13 570 742 _sc +318 664 _m +267 664 229 639 203 589 _c +177 539 165 464 165 364 _c +165 264 177 189 203 139 _c +229 89 267 64 318 64 _c +369 64 407 89 433 139 _c +458 189 471 264 471 364 _c +471 464 458 539 433 589 _c +407 639 369 664 318 664 _c +318 742 _m +399 742 461 709 505 645 _c +548 580 570 486 570 364 _c +570 241 548 147 505 83 _c +461 19 399 -13 318 -13 _c +236 -13 173 19 130 83 _c +87 147 66 241 66 364 _c +66 486 87 580 130 645 _c +173 709 236 742 318 742 _c +_cl}_d +/one{636 0 110 0 544 729 _sc +124 83 _m +285 83 _l +285 639 _l +110 604 _l +110 694 _l +284 729 _l +383 729 _l +383 83 _l +544 83 _l +544 0 _l +124 0 _l +124 83 _l +_cl}_d +/two{{636 0 73 0 536 742 _sc +192 83 _m +536 83 _l +536 0 _l +73 0 _l +73 83 _l +110 121 161 173 226 239 _c +290 304 331 346 348 365 _c +380 400 402 430 414 455 _c +426 479 433 504 433 528 _c +433 566 419 598 392 622 _c +365 646 330 659 286 659 _c +255 659 222 653 188 643 _c +154 632 117 616 78 594 _c +78 694 _l +118 710 155 722 189 730 _c +223 738 255 742 284 742 _c +}_e{359 742 419 723 464 685 _c +509 647 532 597 532 534 _c +532 504 526 475 515 449 _c +504 422 484 390 454 354 _c +446 344 420 317 376 272 _c +332 227 271 164 192 83 _c +_cl}_e}_d +/four{636 0 49 0 580 729 _sc +378 643 _m +129 254 _l +378 254 _l +378 643 _l +352 729 _m +476 729 _l +476 254 _l +580 254 _l +580 172 _l +476 172 _l +476 0 _l +378 0 _l +378 172 _l +49 172 _l +49 267 _l +352 729 _l +_cl}_d +/A{684 0 8 0 676 729 _sc +342 632 _m +208 269 _l +476 269 _l +342 632 _l +286 729 _m +398 729 _l +676 0 _l +573 0 _l +507 187 _l +178 187 _l +112 0 _l +8 0 _l +286 729 _l +_cl}_d +/C{{698 0 56 -13 644 742 _sc +644 673 _m +644 569 _l +610 599 575 622 537 638 _c +499 653 460 661 418 661 _c +334 661 270 635 226 584 _c +182 533 160 460 160 364 _c +160 268 182 194 226 143 _c +270 92 334 67 418 67 _c +460 67 499 74 537 90 _c +575 105 610 128 644 159 _c +644 56 _l +609 32 572 15 534 4 _c +496 -7 455 -13 412 -13 _c +302 -13 215 20 151 87 _c +}_e{87 154 56 246 56 364 _c +56 481 87 573 151 641 _c +215 708 302 742 412 742 _c +456 742 497 736 535 725 _c +573 713 610 696 644 673 _c +_cl}_e}_d +/H{752 0 98 0 654 729 _sc +98 729 _m +197 729 _l +197 430 _l +555 430 _l +555 729 _l +654 729 _l +654 0 _l +555 0 _l +555 347 _l +197 347 _l +197 0 _l +98 0 _l +98 729 _l +_cl}_d +/M{863 0 98 0 765 729 _sc +98 729 _m +245 729 _l +431 233 _l +618 729 _l +765 729 _l +765 0 _l +669 0 _l +669 640 _l +481 140 _l +382 140 _l +194 640 _l +194 0 _l +98 0 _l +98 729 _l +_cl}_d +/O{787 0 56 -13 731 742 _sc +394 662 _m +322 662 265 635 223 582 _c +181 528 160 456 160 364 _c +160 272 181 199 223 146 _c +265 92 322 66 394 66 _c +465 66 522 92 564 146 _c +606 199 627 272 627 364 _c +627 456 606 528 564 582 _c +522 635 465 662 394 662 _c +394 742 _m +496 742 577 707 639 639 _c +700 571 731 479 731 364 _c +731 248 700 157 639 89 _c +577 21 496 -13 394 -13 _c +291 -13 209 21 148 89 _c +86 157 56 248 56 364 _c +56 479 86 571 148 639 _c +209 707 291 742 394 742 _c +_cl}_d +/P{603 0 98 0 569 729 _sc +197 648 _m +197 374 _l +321 374 _l +367 374 402 385 427 409 _c +452 433 465 467 465 511 _c +465 555 452 588 427 612 _c +402 636 367 648 321 648 _c +197 648 _l +98 729 _m +321 729 _l +402 729 464 710 506 673 _c +548 636 569 582 569 511 _c +569 439 548 384 506 348 _c +464 311 402 293 321 293 _c +197 293 _l +197 0 _l +98 0 _l +98 729 _l +_cl}_d +/Q{{787 0 56 -128 731 742 _sc +394 662 _m +322 662 265 635 223 582 _c +181 528 160 456 160 364 _c +160 272 181 199 223 146 _c +265 92 322 66 394 66 _c +465 66 522 92 564 146 _c +606 199 627 272 627 364 _c +627 456 606 528 564 582 _c +522 635 465 662 394 662 _c +532 13 _m +662 -128 _l +543 -128 _l +435 -11 _l +424 -11 416 -12 410 -12 _c +404 -12 399 -13 394 -13 _c +291 -13 209 21 148 89 _c +}_e{86 157 56 248 56 364 _c +56 479 86 571 148 639 _c +209 707 291 742 394 742 _c +496 742 577 707 639 639 _c +700 571 731 479 731 364 _c +731 279 714 206 680 146 _c +646 86 596 41 532 13 _c +_cl}_e}_d +/R{{695 0 98 0 666 729 _sc +444 342 _m +465 334 486 319 506 296 _c +526 272 546 240 566 199 _c +666 0 _l +560 0 _l +467 187 _l +443 235 419 268 397 284 _c +374 300 343 308 304 308 _c +197 308 _l +197 0 _l +98 0 _l +98 729 _l +321 729 _l +404 729 466 711 507 677 _c +548 642 569 589 569 519 _c +569 473 558 434 537 404 _c +515 374 484 353 444 342 _c +197 648 _m +197 389 _l +321 389 _l +}_e{368 389 404 400 428 422 _c +452 444 465 476 465 519 _c +465 561 452 593 428 615 _c +404 637 368 648 321 648 _c +197 648 _l +_cl}_e}_d +/a{{613 0 60 -13 522 560 _sc +343 275 _m +270 275 220 266 192 250 _c +164 233 150 205 150 165 _c +150 133 160 107 181 89 _c +202 70 231 61 267 61 _c +317 61 357 78 387 114 _c +417 149 432 196 432 255 _c +432 275 _l +343 275 _l +522 312 _m +522 0 _l +432 0 _l +432 83 _l +411 49 385 25 355 10 _c +325 -5 287 -13 243 -13 _c +187 -13 142 2 109 33 _c +76 64 60 106 60 159 _c +}_e{60 220 80 266 122 298 _c +163 329 224 345 306 345 _c +432 345 _l +432 354 _l +432 395 418 427 391 450 _c +364 472 326 484 277 484 _c +245 484 215 480 185 472 _c +155 464 127 453 100 439 _c +100 522 _l +132 534 164 544 195 550 _c +226 556 256 560 286 560 _c +365 560 424 539 463 498 _c +502 457 522 395 522 312 _c +_cl}_e}_d +/b{{635 0 91 -13 580 760 _sc +487 273 _m +487 339 473 390 446 428 _c +418 466 381 485 334 485 _c +286 485 249 466 222 428 _c +194 390 181 339 181 273 _c +181 207 194 155 222 117 _c +249 79 286 61 334 61 _c +381 61 418 79 446 117 _c +473 155 487 207 487 273 _c +181 464 _m +199 496 223 520 252 536 _c +281 552 316 560 356 560 _c +422 560 476 533 518 481 _c +559 428 580 359 580 273 _c +}_e{580 187 559 117 518 65 _c +476 13 422 -13 356 -13 _c +316 -13 281 -5 252 10 _c +223 25 199 49 181 82 _c +181 0 _l +91 0 _l +91 760 _l +181 760 _l +181 464 _l +_cl}_e}_d +/c{{550 0 55 -13 488 560 _sc +488 526 _m +488 442 _l +462 456 437 466 411 473 _c +385 480 360 484 334 484 _c +276 484 230 465 198 428 _c +166 391 150 339 150 273 _c +150 206 166 154 198 117 _c +230 80 276 62 334 62 _c +360 62 385 65 411 72 _c +437 79 462 90 488 104 _c +488 21 _l +462 9 436 0 410 -5 _c +383 -10 354 -13 324 -13 _c +242 -13 176 12 128 64 _c +}_e{79 115 55 185 55 273 _c +55 362 79 432 128 483 _c +177 534 244 560 330 560 _c +358 560 385 557 411 551 _c +437 545 463 537 488 526 _c +_cl}_e}_d +/d{{635 0 55 -13 544 760 _sc +454 464 _m +454 760 _l +544 760 _l +544 0 _l +454 0 _l +454 82 _l +435 49 411 25 382 10 _c +353 -5 319 -13 279 -13 _c +213 -13 159 13 117 65 _c +75 117 55 187 55 273 _c +55 359 75 428 117 481 _c +159 533 213 560 279 560 _c +319 560 353 552 382 536 _c +411 520 435 496 454 464 _c +148 273 _m +148 207 161 155 188 117 _c +215 79 253 61 301 61 _c +}_e{348 61 385 79 413 117 _c +440 155 454 207 454 273 _c +454 339 440 390 413 428 _c +385 466 348 485 301 485 _c +253 485 215 466 188 428 _c +161 390 148 339 148 273 _c +_cl}_e}_d +/e{{615 0 55 -13 562 560 _sc +562 296 _m +562 252 _l +149 252 _l +153 190 171 142 205 110 _c +238 78 284 62 344 62 _c +378 62 412 66 444 74 _c +476 82 509 95 541 113 _c +541 28 _l +509 14 476 3 442 -3 _c +408 -9 373 -13 339 -13 _c +251 -13 182 12 131 62 _c +80 112 55 181 55 268 _c +55 357 79 428 127 481 _c +175 533 241 560 323 560 _c +397 560 455 536 498 489 _c +}_e{540 441 562 377 562 296 _c +472 322 _m +471 371 457 410 431 440 _c +404 469 368 484 324 484 _c +274 484 234 469 204 441 _c +174 413 156 373 152 322 _c +472 322 _l +_cl}_e}_d +/f{352 0 23 0 371 760 _sc +371 760 _m +371 685 _l +285 685 _l +253 685 230 678 218 665 _c +205 652 199 629 199 595 _c +199 547 _l +347 547 _l +347 477 _l +199 477 _l +199 0 _l +109 0 _l +109 477 _l +23 477 _l +23 547 _l +109 547 _l +109 585 _l +109 645 123 690 151 718 _c +179 746 224 760 286 760 _c +371 760 _l +_cl}_d +/h{634 0 91 0 549 760 _sc +549 330 _m +549 0 _l +459 0 _l +459 327 _l +459 379 448 417 428 443 _c +408 469 378 482 338 482 _c +289 482 251 466 223 435 _c +195 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 760 _l +181 760 _l +181 462 _l +202 494 227 519 257 535 _c +286 551 320 560 358 560 _c +420 560 468 540 500 501 _c +532 462 549 405 549 330 _c +_cl}_d +/i{278 0 94 0 184 760 _sc +94 547 _m +184 547 _l +184 0 _l +94 0 _l +94 547 _l +94 760 _m +184 760 _l +184 646 _l +94 646 _l +94 760 _l +_cl}_d +/l{278 0 94 0 184 760 _sc +94 760 _m +184 760 _l +184 0 _l +94 0 _l +94 760 _l +_cl}_d +/n{634 0 91 0 549 560 _sc +549 330 _m +549 0 _l +459 0 _l +459 327 _l +459 379 448 417 428 443 _c +408 469 378 482 338 482 _c +289 482 251 466 223 435 _c +195 404 181 362 181 309 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +202 494 227 519 257 535 _c +286 551 320 560 358 560 _c +420 560 468 540 500 501 _c +532 462 549 405 549 330 _c +_cl}_d +/o{612 0 55 -13 557 560 _sc +306 484 _m +258 484 220 465 192 427 _c +164 389 150 338 150 273 _c +150 207 163 156 191 118 _c +219 80 257 62 306 62 _c +354 62 392 80 420 118 _c +448 156 462 207 462 273 _c +462 337 448 389 420 427 _c +392 465 354 484 306 484 _c +306 560 _m +384 560 445 534 490 484 _c +534 433 557 363 557 273 _c +557 183 534 113 490 63 _c +445 12 384 -13 306 -13 _c +227 -13 165 12 121 63 _c +77 113 55 183 55 273 _c +55 363 77 433 121 484 _c +165 534 227 560 306 560 _c +_cl}_d +/p{{635 0 91 -207 580 560 _sc +181 82 _m +181 -207 _l +91 -207 _l +91 547 _l +181 547 _l +181 464 _l +199 496 223 520 252 536 _c +281 552 316 560 356 560 _c +422 560 476 533 518 481 _c +559 428 580 359 580 273 _c +580 187 559 117 518 65 _c +476 13 422 -13 356 -13 _c +316 -13 281 -5 252 10 _c +223 25 199 49 181 82 _c +487 273 _m +487 339 473 390 446 428 _c +418 466 381 485 334 485 _c +}_e{286 485 249 466 222 428 _c +194 390 181 339 181 273 _c +181 207 194 155 222 117 _c +249 79 286 61 334 61 _c +381 61 418 79 446 117 _c +473 155 487 207 487 273 _c +_cl}_e}_d +/r{411 0 91 0 411 560 _sc +411 463 _m +401 469 390 473 378 476 _c +366 478 353 480 339 480 _c +288 480 249 463 222 430 _c +194 397 181 350 181 288 _c +181 0 _l +91 0 _l +91 547 _l +181 547 _l +181 462 _l +199 495 224 520 254 536 _c +284 552 321 560 365 560 _c +371 560 378 559 386 559 _c +393 558 401 557 411 555 _c +411 463 _l +_cl}_d +/s{{521 0 54 -13 472 560 _sc +443 531 _m +443 446 _l +417 458 391 468 364 475 _c +336 481 308 485 279 485 _c +234 485 200 478 178 464 _c +156 450 145 430 145 403 _c +145 382 153 366 169 354 _c +185 342 217 330 265 320 _c +296 313 _l +360 299 405 279 432 255 _c +458 230 472 195 472 151 _c +472 100 452 60 412 31 _c +372 1 316 -13 246 -13 _c +216 -13 186 -10 154 -5 _c +}_e{122 0 89 8 54 20 _c +54 113 _l +87 95 120 82 152 74 _c +184 65 216 61 248 61 _c +290 61 323 68 346 82 _c +368 96 380 117 380 144 _c +380 168 371 187 355 200 _c +339 213 303 226 247 238 _c +216 245 _l +160 257 119 275 95 299 _c +70 323 58 356 58 399 _c +58 450 76 490 112 518 _c +148 546 200 560 268 560 _c +301 560 332 557 362 552 _c +391 547 418 540 443 531 _c +}_e{_cl}_e}_d +/t{392 0 27 0 368 702 _sc +183 702 _m +183 547 _l +368 547 _l +368 477 _l +183 477 _l +183 180 _l +183 135 189 106 201 94 _c +213 81 238 75 276 75 _c +368 75 _l +368 0 _l +276 0 _l +206 0 158 13 132 39 _c +106 65 93 112 93 180 _c +93 477 _l +27 477 _l +27 547 _l +93 547 _l +93 702 _l +183 702 _l +_cl}_d +/minus{838 0 106 272 732 355 _sc +106 355 _m +732 355 _l +732 272 _l +106 272 _l +106 355 _l +_cl}_d +end readonly def + +/BuildGlyph + {exch begin + CharStrings exch + 2 copy known not{pop /.notdef}if + true 3 1 roll get exec + end}_d + +/BuildChar { + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec +}_d + +FontName currentdict end definefont pop +end +%%EndProlog +mpldict begin +-18 198 translate +648 396 0 0 clipbox +gsave +0 0 m +648 0 l +648 396 l +0 396 l +cl +1.000 setgray +fill +grestore +gsave +81 49.5 m +583.2 49.5 l +583.2 348.48 l +81 348.48 l +cl +1.000 setgray +fill +grestore +0.800 setlinewidth +1 setlinejoin +0 setlinecap +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +121.567 49.5 o +grestore +gsave +109.566941 34.578125 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.064063 moveto +/one glyphshow + +6.362305 0.064063 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 3.892188 moveto +/minus glyphshow + +18.685547 3.892188 moveto +/one glyphshow + + +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +305.474 49.5 o +grestore +gsave +296.474439 33.578125 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/zero glyphshow + + +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -3.5 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +489.382 49.5 o +grestore +gsave +480.381938 34.578125 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.064063 moveto +/one glyphshow + +6.362305 0.064063 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 3.892188 moveto +/one glyphshow + + +grestore +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +80.767292 49.5 m +80.767292 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +80.7673 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +93.079309 49.5 m +93.079309 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +93.0793 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +103.744463 49.5 m +103.744463 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +103.744 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +113.151795 49.5 m +113.151795 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +113.152 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +176.928614 49.5 m +176.928614 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +176.929 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +209.313117 49.5 m +209.313117 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +209.313 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +232.290288 49.5 m +232.290288 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +232.29 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +250.112766 49.5 m +250.112766 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +250.113 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +264.674791 49.5 m +264.674791 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +264.675 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +276.986807 49.5 m +276.986807 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +276.987 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +287.651961 49.5 m +287.651961 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +287.652 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +297.059294 49.5 m +297.059294 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +297.059 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +360.836113 49.5 m +360.836113 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +360.836 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +393.220616 49.5 m +393.220616 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +393.221 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +416.197786 49.5 m +416.197786 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +416.198 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +434.020264 49.5 m +434.020264 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +434.02 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +448.582289 49.5 m +448.582289 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +448.582 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +460.894306 49.5 m +460.894306 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +460.894 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +471.559459 49.5 m +471.559459 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +471.559 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +480.966792 49.5 m +480.966792 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +480.967 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +544.743611 49.5 m +544.743611 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +544.744 49.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +577.128114 49.5 m +577.128114 348.48 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +0 -2 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +577.128 49.5 o +grestore +/DejaVuSans findfont +10.000 scalefont +setfont +gsave +284.771875 19.906250 translate +0.000000 rotate +0.000000 0.000000 m /P glyphshow +6.030273 0.000000 m /P glyphshow +12.060547 0.000000 m /M glyphshow +20.688477 0.000000 m /space glyphshow +23.867188 0.000000 m /C glyphshow +30.849609 0.000000 m /o glyphshow +36.967773 0.000000 m /n glyphshow +43.305664 0.000000 m /c glyphshow +48.803711 0.000000 m /e glyphshow +54.956055 0.000000 m /n glyphshow +61.293945 0.000000 m /t glyphshow +65.214844 0.000000 m /r glyphshow +69.326172 0.000000 m /a glyphshow +75.454102 0.000000 m /t glyphshow +79.375000 0.000000 m /i glyphshow +82.153320 0.000000 m /o glyphshow +88.271484 0.000000 m /n glyphshow +grestore +0.800 setlinewidth +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 133.48 o +grestore +gsave +56.000000 129.018895 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/zero glyphshow + + +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 234.185 o +grestore +gsave +56.000000 230.223979 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.064063 moveto +/one glyphshow + +6.362305 0.064063 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 3.892188 moveto +/one glyphshow + + +grestore +gsave +/o { +gsave +newpath +translate +0.8 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-3.5 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 334.89 o +grestore +gsave +56.000000 330.429062 translate +0.000000 rotate +/DejaVuSans findfont +10.0 scalefont +setfont +0.000000 0.976562 moveto +/one glyphshow + +6.362305 0.976562 moveto +/zero glyphshow + +/DejaVuSans findfont +7.0 scalefont +setfont +12.820312 4.804688 moveto +/two glyphshow + + +grestore +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 63.09 m +583.2 63.09 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 63.09 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 80.823285 m +583.2 80.823285 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 80.8233 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 93.405251 m +583.2 93.405251 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 93.4053 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 103.164582 m +583.2 103.164582 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 103.165 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 111.138536 m +583.2 111.138536 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 111.139 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 117.880418 m +583.2 117.880418 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 117.88 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 123.720502 m +583.2 123.720502 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 123.721 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 128.871821 m +583.2 128.871821 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 128.872 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 163.795084 m +583.2 163.795084 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 163.795 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 181.528369 m +583.2 181.528369 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 181.528 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 194.110335 m +583.2 194.110335 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 194.11 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 203.869665 m +583.2 203.869665 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 203.87 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 211.843619 m +583.2 211.843619 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 211.844 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 218.585502 m +583.2 218.585502 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 218.586 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 224.425585 m +583.2 224.425585 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 224.426 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 229.576904 m +583.2 229.576904 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 229.577 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 264.500167 m +583.2 264.500167 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 264.5 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 282.233452 m +583.2 282.233452 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 282.233 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 294.815418 m +583.2 294.815418 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 294.815 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 304.574749 m +583.2 304.574749 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 304.575 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 312.548703 m +583.2 312.548703 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 312.549 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 319.290585 m +583.2 319.290585 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 319.291 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 325.130669 m +583.2 325.130669 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 325.131 o +grestore +0.800 setlinewidth +[2.96 1.28] 0 setdash +0.827 setgray +gsave +502.2 299 81 49.5 clipbox +81 330.281988 m +583.2 330.281988 l +stroke +grestore +0.600 setlinewidth +[] 0 setdash +0.000 setgray +gsave +/o { +gsave +newpath +translate +0.6 setlinewidth +1 setlinejoin +0 setlinecap +0 0 m +-2 0 l + +gsave +0.000 setgray +fill +grestore +stroke +grestore +} bind def +81 330.282 o +grestore +gsave +49.921875 184.677500 translate +90.000000 rotate +0.000000 0.000000 m /R glyphshow +6.948242 0.000000 m /s glyphshow +12.158203 0.000000 m /slash glyphshow +15.527344 0.000000 m /R glyphshow +22.475586 0.000000 m /o glyphshow +grestore +1.000 setlinewidth +2 setlinecap +0.122 0.467 0.706 setrgbcolor +gsave +502.2 299 81 49.5 clipbox +392.948486 63.09 m +383.772523 80.823285 l +373.403862 93.405251 l +361.485466 103.164582 l +347.471271 111.138536 l +330.463555 117.880418 l +308.82612 123.720502 l +279.055499 128.871821 l +231.058335 133.479833 l +-1 133.518101 l +stroke +grestore +0 setlinecap +gsave +502.2 299 81 49.5 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0.122 0.467 0.706 setrgbcolor +fill +grestore +stroke +grestore +} bind def +392.948 63.09 o +383.773 80.8233 o +373.404 93.4053 o +361.485 103.165 o +347.471 111.139 o +330.464 117.88 o +308.826 123.721 o +279.055 128.872 o +231.058 133.48 o +-1 133.518 o +grestore +2 setlinecap +1.000 0.498 0.055 setrgbcolor +gsave +502.2 299 81 49.5 clipbox +464.779903 63.09 m +462.67343 80.823285 l +460.509892 93.405251 l +458.286113 103.164582 l +455.99864 111.138536 l +453.643718 117.880418 l +451.217247 123.720502 l +448.714743 128.871821 l +446.131288 133.479833 l +414.294532 163.795084 l +360.553916 181.528369 l +103.827273 194.110335 l +-1 194.115903 l +stroke +grestore +0 setlinecap +gsave +502.2 299 81 49.5 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +1.000 0.498 0.055 setrgbcolor +fill +grestore +stroke +grestore +} bind def +464.78 63.09 o +462.673 80.8233 o +460.51 93.4053 o +458.286 103.165 o +455.999 111.139 o +453.644 117.88 o +451.217 123.721 o +448.715 128.872 o +446.131 133.48 o +414.295 163.795 o +360.554 181.528 o +103.827 194.11 o +-1 194.116 o +grestore +2 setlinecap +0.173 0.627 0.173 setrgbcolor +gsave +502.2 299 81 49.5 clipbox +560.372727 63.09 m +560.212977 80.823285 l +560.052907 93.405251 l +559.892516 103.164582 l +559.731801 111.138536 l +559.570763 117.880418 l +559.409399 123.720502 l +559.247709 128.871821 l +559.085691 133.479833 l +557.44717 163.795084 l +555.774331 181.528369 l +554.065703 194.110335 l +552.319723 203.869665 l +550.534721 211.843619 l +548.708913 218.585502 l +546.840388 224.425585 l +544.927101 229.576904 l +542.966854 234.184916 l +520.15285 264.500167 l +488.093684 282.233452 l +433.700143 294.815418 l +136.128966 304.574749 l +-1 304.5807 l +stroke +grestore +0 setlinecap +gsave +502.2 299 81 49.5 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0.173 0.627 0.173 setrgbcolor +fill +grestore +stroke +grestore +} bind def +560.373 63.09 o +560.213 80.8233 o +560.053 93.4053 o +559.893 103.165 o +559.732 111.139 o +559.571 117.88 o +559.409 123.721 o +559.248 128.872 o +559.086 133.48 o +557.447 163.795 o +555.774 181.528 o +554.066 194.11 o +552.32 203.87 o +550.535 211.844 o +548.709 218.586 o +546.84 224.426 o +544.927 229.577 o +542.967 234.185 o +520.153 264.5 o +488.094 282.233 o +433.7 294.815 o +136.129 304.575 o +-1 304.581 o +grestore +2 setlinecap +0.839 0.153 0.157 setrgbcolor +gsave +502.2 299 81 49.5 clipbox +478.329351 63.09 m +478.148335 80.823285 l +477.966908 93.405251 l +477.785068 103.164582 l +477.602814 111.138536 l +477.420142 117.880418 l +477.237051 123.720502 l +477.05354 128.871821 l +476.869607 133.479833 l +475.00659 163.795084 l +473.099078 181.528369 l +471.144892 194.110335 l +469.141691 203.869665 l +467.086953 211.843619 l +464.977955 218.585502 l +462.811755 224.425585 l +460.585163 229.576904 l +458.294713 234.184916 l +430.836039 264.500167 l +388.655372 282.233452 l +293.621463 294.815418 l +-1 294.831054 l +stroke +grestore +0 setlinecap +gsave +502.2 299 81 49.5 clipbox +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0.839 0.153 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +478.329 63.09 o +478.148 80.8233 o +477.967 93.4053 o +477.785 103.165 o +477.603 111.139 o +477.42 117.88 o +477.237 123.721 o +477.054 128.872 o +476.87 133.48 o +475.007 163.795 o +473.099 181.528 o +471.145 194.11 o +469.142 203.87 o +467.087 211.844 o +464.978 218.586 o +462.812 224.426 o +460.585 229.577 o +458.295 234.185 o +430.836 264.5 o +388.655 282.233 o +293.621 294.815 o +-1 294.831 o +grestore +0.800 setlinewidth +0 setlinejoin +2 setlinecap +[] 0 setdash +0.000 setgray +gsave +81 49.5 m +81 348.48 l +stroke +grestore +gsave +583.2 49.5 m +583.2 348.48 l +stroke +grestore +gsave +81 49.5 m +583.2 49.5 l +stroke +grestore +gsave +81 348.48 m +583.2 348.48 l +stroke +grestore +1.000 setlinewidth +0 setlinecap +0.800 setgray +gsave +507.7 281.7925 m +576.2 281.7925 l +577.533333 281.7925 578.2 282.459167 578.2 283.7925 c +578.2 341.48 l +578.2 342.813333 577.533333 343.48 576.2 343.48 c +507.7 343.48 l +506.366667 343.48 505.7 342.813333 505.7 341.48 c +505.7 283.7925 l +505.7 282.459167 506.366667 281.7925 507.7 281.7925 c +cl +gsave +1.000 setgray +fill +grestore +stroke +grestore +1 setlinejoin +2 setlinecap +[] 0 setdash +0.122 0.467 0.706 setrgbcolor +gsave +509.7 335.38625 m +529.7 335.38625 l +stroke +grestore +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0.122 0.467 0.706 setrgbcolor +fill +grestore +stroke +grestore +} bind def +519.7 335.386 o +grestore +0.000 setgray +gsave +537.700000 331.886250 translate +0.000000 rotate +0.000000 0.000000 m /C glyphshow +6.982422 0.000000 m /H glyphshow +14.501953 0.000000 m /four glyphshow +grestore +2 setlinecap +1.000 0.498 0.055 setrgbcolor +gsave +509.7 320.714375 m +529.7 320.714375 l +stroke +grestore +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +1.000 0.498 0.055 setrgbcolor +fill +grestore +stroke +grestore +} bind def +519.7 320.714 o +grestore +0.000 setgray +gsave +537.700000 317.214375 translate +0.000000 rotate +0.000000 0.000000 m /C glyphshow +6.982422 0.000000 m /O glyphshow +grestore +2 setlinecap +0.173 0.627 0.173 setrgbcolor +gsave +509.7 306.0425 m +529.7 306.0425 l +stroke +grestore +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0.173 0.627 0.173 setrgbcolor +fill +grestore +stroke +grestore +} bind def +519.7 306.043 o +grestore +0.000 setgray +gsave +537.700000 302.542500 translate +0.000000 rotate +0.000000 0.000000 m /H glyphshow +7.519531 0.000000 m /two glyphshow +grestore +2 setlinecap +0.839 0.153 0.157 setrgbcolor +gsave +509.7 291.370625 m +529.7 291.370625 l +stroke +grestore +0 setlinecap +gsave +/o { +gsave +newpath +translate +1.0 setlinewidth +1 setlinejoin +0 setlinecap +0 -3 m +0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c +2.683901 -1.55874 3 -0.795609 3 0 c +3 0.795609 2.683901 1.55874 2.12132 2.12132 c +1.55874 2.683901 0.795609 3 0 3 c +-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c +-2.683901 1.55874 -3 0.795609 -3 0 c +-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c +-1.55874 -2.683901 -0.795609 -3 0 -3 c +cl + +gsave +0.839 0.153 0.157 setrgbcolor +fill +grestore +stroke +grestore +} bind def +519.7 291.371 o +grestore +0.000 setgray +gsave +537.700000 287.870625 translate +0.000000 rotate +0.000000 0.000000 m /A glyphshow +6.840820 0.000000 m /l glyphshow +9.619141 0.000000 m /c glyphshow +15.117188 0.000000 m /o glyphshow +21.235352 0.000000 m /h glyphshow +27.573242 0.000000 m /o glyphshow +33.691406 0.000000 m /l glyphshow +grestore +/DejaVuSans findfont +12.000 scalefont +setfont +gsave +234.562500 378.955000 translate +0.000000 rotate +0.000000 0.000000 m /C glyphshow +8.378906 0.000000 m /a glyphshow +15.732422 0.000000 m /l glyphshow +19.066406 0.000000 m /i glyphshow +22.400391 0.000000 m /b glyphshow +30.017578 0.000000 m /r glyphshow +34.951172 0.000000 m /a glyphshow +42.304688 0.000000 m /t glyphshow +47.009766 0.000000 m /i glyphshow +50.343750 0.000000 m /o glyphshow +57.685547 0.000000 m /n glyphshow +65.291016 0.000000 m /space glyphshow +69.105469 0.000000 m /p glyphshow +76.722656 0.000000 m /l glyphshow +80.056641 0.000000 m /o glyphshow +87.398438 0.000000 m /t glyphshow +92.103516 0.000000 m /space glyphshow +95.917969 0.000000 m /f glyphshow +100.142578 0.000000 m /o glyphshow +107.484375 0.000000 m /r glyphshow +112.417969 0.000000 m /space glyphshow +116.232422 0.000000 m /M glyphshow +126.585938 0.000000 m /Q glyphshow +136.031250 0.000000 m /hyphen glyphshow +140.361328 0.000000 m /four glyphshow +147.996094 0.000000 m /space glyphshow +151.810547 0.000000 m /d glyphshow +159.427734 0.000000 m /a glyphshow +166.781250 0.000000 m /t glyphshow +171.486328 0.000000 m /a glyphshow +grestore + +end +showpage diff --git a/Experiments/MQ4.png b/Experiments/MQ4.png new file mode 100644 index 0000000000000000000000000000000000000000..7230a7d7c2959a29bbd4eeaf64fd7e51c7441992 GIT binary patch literal 136766 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 z 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 O(RU^8qzgZO{=We76B;=H literal 0 HcmV?d00001 diff --git a/Experiments/MQ4.svg b/Experiments/MQ4.svg new file mode 100644 index 0000000..1c48e73 --- /dev/null +++ b/Experiments/MQ4.svg @@ -0,0 +1,1671 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Experiments/MQ4_Regression.ipynb b/Experiments/MQ4_Regression.ipynb new file mode 100644 index 0000000..5fcf942 --- /dev/null +++ b/Experiments/MQ4_Regression.ipynb @@ -0,0 +1,2010 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n", + "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n", + "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n", + "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n", + "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n", + "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n", + "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", + "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n", + "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n", + "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n", + "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n", + "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n", + "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n", + "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n", + "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n", + "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install xlrd\n", + "!pip install sklearn\n", + "!pip install imblearn" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "import xlrd\n", + "book = xlrd.open_workbook(\"Datasheets info.xlsx\")\n", + "sheetMQ2 = book.sheet_by_name(\"MQ2 - Pololulu\")\n", + "sheetMQ3 = book.sheet_by_name(\"MQ3 - Sparkfun\")\n", + "sheetMQ4 = book.sheet_by_name(\"MQ4 - Sparkfun\")\n", + "sheetMQ5 = book.sheet_by_name(\"MQ5 - Sparkfun\")\n", + "sheetMQ6 = book.sheet_by_name(\"MQ6 - Sparkfun\")\n", + "sheetMQ7 = book.sheet_by_name(\"MQ7 - Sparkfun\")\n", + "sheetMQ8 = book.sheet_by_name(\"MQ8 - Sparkfun\")\n", + "sheetMQ9 = book.sheet_by_name(\"MQ9 - Haoyuelectronics\")\n", + "sheetMQ131 = book.sheet_by_name(\"MQ131- Sensorsportal\")\n", + "sheetMQ135 = book.sheet_by_name(\"MQ135 - HANWEI\")\n", + "sheetMQ303A = book.sheet_by_name(\"MQ303A - HANWEI\")\n", + "sheetMQ309A = book.sheet_by_name(\"MQ309A - HANWEI\")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 \t \t \t \t \n", + "0.2 \t \t \t \t \n", + "0.3 \t \t \t \t \n", + "0.4 \t \t \t \t \n", + "0.5 \t \t \t \t \n", + "0.6 \t \t \t \t \n", + "0.7 \t \t \t \t \n", + "0.8 \t \t \t \t \n", + "0.9 \t 5000.0 \t \t \t \n", + "1.0 \t \t 1000.0 \t \t \n", + "2.0 \t 1000.0 \t 200.0 \t \t \n", + "3.0 \t 200.0 \t \t 1000.0 \t 5000.0\n", + "4.0 \t \t \t 200.0 \t 200.0\n", + "5.0 \t \t 4000.0 \t \t \n", + "6.0 \t \t \t \t \n", + "7.0 \t \t \t \t \n", + "8.0 \t \t \t \t \n", + "9.0 \t \t \t \t \n", + "10.0 \t \t \t \t \n" + ] + } + ], + "source": [ + "for row_index in range(1,20): #reading first columns\n", + " RsR0, CH4, CO, H2, Alcohol = sheetMQ4.row_values(row_index, start_colx=0, end_colx=5)\n", + " print(RsR0, \"\t\", CH4, \"\t\", CO, \"\t\", H2, \"\t\", Alcohol)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "x_MQ4 = sheetMQ3.col_values(0)[2:]\n", + "MQ4_CH4 = sheetMQ3.col_values(1)[2:]\n", + "MQ4_CO = sheetMQ3.col_values(2)[2:]\n", + "MQ4_H2 = sheetMQ3.col_values(3)[2:]\n", + "MQ4_Alcohol = sheetMQ3.col_values(4)[2:]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "def zero_to_nan(values):\n", + " \"\"\"Replace every 0 with 'nan' and return a copy.\"\"\"\n", + " return [float('nan') if x==0 else x for x in values]" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "MQ4_CH4 =zero_to_nan(MQ4_CH4)\n", + "MQ4_CO =zero_to_nan(MQ4_CO)\n", + "MQ4_H2 =zero_to_nan(MQ4_H2)\n", + "MQ4_Alcohol =zero_to_nan(MQ4_Alcohol)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.datasets import load_iris\n", + "#from sklearn.cross_validation import train_test_split\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn import datasets\n", + "from sklearn import linear_model\n", + "\n", + "dataCH4 = {'RsRo': x_MQ4, 'CH4': MQ4_CH4}\n", + "dataCO = {'RsRo': x_MQ4, 'CO': MQ4_CO}\n", + "dataH2 = {'RsRo': x_MQ4, 'H2': MQ4_H2}\n", + "dataAlcohol = {'RsRo': x_MQ4, 'Alcohol': MQ4_Alcohol}\n", + "\n", + "dfMQ4_CH4 = pd.DataFrame(dataCH4)\n", + "dfMQ4_CO = pd.DataFrame(dataCO)\n", + "dfMQ4_H2 = pd.DataFrame(dataH2)\n", + "dfMQ4_Alcohol = pd.DataFrame(dataAlcohol)\n", + "\n", + "dfMQ4_CH4['CH4'] = pd.to_numeric(dfMQ4_CH4['CH4'])\n", + "dfMQ4_CO['CO'] = pd.to_numeric(dfMQ4_CO['CO'])\n", + "dfMQ4_H2['H2'] = pd.to_numeric(dfMQ4_H2['H2'])\n", + "dfMQ4_Alcohol['Alcohol'] = pd.to_numeric(dfMQ4_Alcohol['Alcohol'])\n", + "\n", + "dfMQ4_CH4['CH4'] = dfMQ4_CH4['CH4'].replace('',None, regex=True)\n", + "dfMQ4_CO['CO'] = dfMQ4_CO['CO'].replace('',None, regex=True)\n", + "dfMQ4_H2['H2'] = dfMQ4_H2['H2'].replace('',None, regex=True)\n", + "dfMQ4_Alcohol['Alcohol'] = dfMQ4_Alcohol['Alcohol'].replace('',None, regex=True)\n", + "\n", + "#Global X_Predict variable\n", + "X_Predict = dfMQ4_Alcohol.RsRo.apply(lambda x: [x]).tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CH4\n", + "dataset2TrainCH4 = dfMQ4_CH4.copy()\n", + "dataset2TrainCH4.dropna(inplace=True)\n", + "X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainCH4, y_trainCH4)\n", + "#Predict\n", + "CH4_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_CH4 = CH4_Predicted\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CO\n", + "dataset2TrainCO = dfMQ4_CO.copy()\n", + "dataset2TrainCO.dropna(inplace=True)\n", + "X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainCO = dataset2TrainCO['CO'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainCO, y_trainCO)\n", + "#Predict\n", + "CO_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_CO = CO_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train H2\n", + "dataset2TrainH2 = dfMQ4_H2.copy()\n", + "dataset2TrainH2.dropna(inplace=True)\n", + "X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainH2 = dataset2TrainH2['H2'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainH2, y_trainH2)\n", + "#Predict\n", + "H2_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_H2 = H2_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train Alcohol\n", + "dataset2TrainAlcohol = dfMQ4_Alcohol.copy()\n", + "dataset2TrainAlcohol.dropna(inplace=True)\n", + "X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainAlcohol, y_trainAlcohol)\n", + "#Predict\n", + "Alcohol_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ4_Alcohol = Alcohol_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\r\n", + "\r\n", + "\r\n", + "\r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + "\r\n" + ], + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%config InlineBackend.figure_formats = ['svg']\n", + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib.lines as mlines\n", + "import matplotlib.transforms as mtransforms\n", + "\n", + "fig, ax = plt.subplots()\n", + "\n", + "fig.set_size_inches(9, 5.5, forward=True)\n", + "fig.set_dpi(200)\n", + "\n", + "# only these two lines are calibration curves\n", + "plt.plot(MQ4_CH4, x_MQ4, marker='o', linewidth=1, label='CH4')\n", + "plt.plot(MQ4_CO, x_MQ4, marker='o', linewidth=1, label='CO')\n", + "plt.plot(MQ4_H2, x_MQ4, marker='o', linewidth=1, label='H2')\n", + "plt.plot(MQ4_Alcohol, x_MQ4, marker='o', linewidth=1, label='Alcohol')\n", + "\n", + "# reference line, legends, and axis labels\n", + "#line = mlines.Line2D([0, 1], [0, 1], color='black')\n", + "#transform = ax.transAxes\n", + "#line.set_transform(transform)\n", + "#ax.add_line(line)\n", + "plt.yscale('log')\n", + "plt.xscale('log')\n", + "plt.legend()\n", + "\n", + "plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n", + "\n", + "fig.suptitle('Calibration plot for MQ-4 data')\n", + "ax.set_xlabel('PPM Concentration')\n", + "ax.set_ylabel('Rs/Ro')\n", + "\n", + "\n", + "#Save image\n", + "plt.savefig('MQ4.svg', format = 'svg', dpi = 1200)\n", + "plt.savefig('MQ4.png')\n", + "plt.savefig('MQ4.eps', format = 'eps', dpi = 1200)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}