diff --git a/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb b/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb new file mode 100644 index 0000000..0544be7 --- /dev/null +++ b/Experiments/.ipynb_checkpoints/MQ3_Regression-checkpoint.ipynb @@ -0,0 +1,2363 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "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: 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: 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: 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" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install xlrd\n", + "!pip install sklearn\n", + "!pip install imblearn" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "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": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 \t \t \t \t \t \t \n", + "0.2 \t 4.0 \t \t \t \t \t \n", + "0.3 \t \t \t \t \t \t \n", + "0.4 \t \t \t \t \t \t \n", + "0.5 \t 1.0 \t \t \t \t \t \n", + "0.6 \t \t \t \t \t \t \n", + "0.7 \t \t \t \t \t \t \n", + "0.8 \t \t 8.0 \t \t \t \t \n", + "0.9 \t \t \t \t \t \t \n", + "1.0 \t 0.4 \t 4.0 \t \t \t \t \n", + "2.0 \t \t \t \t \t \t \n", + "3.0 \t \t \t \t \t \t \n", + "4.0 \t \t 0.1 \t \t \t \t \n", + "5.0 \t \t \t \t \t \t \n", + "6.0 \t \t \t \t \t \t \n", + "7.0 \t \t \t \t \t \t \n", + "8.0 \t \t \t \t \t \t \n", + "9.0 \t \t \t \t \t \t \n", + "10.0 \t \t \t \t 8.0 \t \t \n" + ] + } + ], + "source": [ + "for row_index in range(1,20): #reading first columns\n", + " RsR0, Alcohol, Benzine, CH4, Hexane, LPG, CO = sheetMQ3.row_values(row_index, start_colx=0, end_colx=7)\n", + " print(RsR0, \"\t\", Alcohol, \"\t\", Benzine, \"\t\", CH4, \"\t\", Hexane, \"\t\", LPG, \"\t\", CO)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "x_MQ3 = sheetMQ3.col_values(0)[2:]\n", + "MQ3_Alcohol = sheetMQ3.col_values(1)[2:]\n", + "MQ3_Benzine = sheetMQ3.col_values(2)[2:]\n", + "MQ3_CH4 = sheetMQ3.col_values(3)[2:]\n", + "MQ3_Hexane = sheetMQ3.col_values(4)[2:]\n", + "MQ3_LPG = sheetMQ3.col_values(5)[2:]\n", + "MQ3_CO = sheetMQ3.col_values(6)[2:]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "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": 40, + "metadata": {}, + "outputs": [], + "source": [ + "MQ3_Alcohol =zero_to_nan(MQ3_Alcohol)\n", + "MQ3_Benzine =zero_to_nan(MQ3_Benzine)\n", + "MQ3_CH4 =zero_to_nan(MQ3_CH4)\n", + "MQ3_Hexane =zero_to_nan(MQ3_Hexane)\n", + "MQ3_LPG =zero_to_nan(MQ3_LPG)\n", + "MQ3_CO =zero_to_nan(MQ3_CO)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "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", + "dataAlcohol = {'RsRo': x_MQ3, 'Alcohol': MQ3_Alcohol}\n", + "dataBenzine = {'RsRo': x_MQ3, 'Benzine': MQ3_Benzine}\n", + "dataCH4 = {'RsRo': x_MQ3, 'CH4': MQ3_CH4}\n", + "dataHexane = {'RsRo': x_MQ3, 'Hexane': MQ3_Hexane}\n", + "dataLPG = {'RsRo': x_MQ3, 'LPG': MQ3_LPG}\n", + "dataCO = {'RsRo': x_MQ3, 'CO': MQ3_CO}\n", + "\n", + "dfMQ3_Alcohol = pd.DataFrame(dataAlcohol)\n", + "dfMQ3_Benzine = pd.DataFrame(dataBenzine)\n", + "dfMQ3_CH4 = pd.DataFrame(dataCH4)\n", + "dfMQ3_Hexane = pd.DataFrame(dataHexane)\n", + "dfMQ3_LPG = pd.DataFrame(dataLPG)\n", + "dfMQ3_CO = pd.DataFrame(dataCO)\n", + "\n", + "dfMQ3_Alcohol['Alcohol'] = pd.to_numeric(dfMQ3_Alcohol['Alcohol'])\n", + "dfMQ3_Benzine['Benzine'] = pd.to_numeric(dfMQ3_Benzine['Benzine'])\n", + "dfMQ3_CH4['CH4'] = pd.to_numeric(dfMQ3_CH4['CH4'])\n", + "dfMQ3_Hexane['Hexane'] = pd.to_numeric(dfMQ3_Hexane['Hexane'])\n", + "dfMQ3_LPG['LPG'] = pd.to_numeric(dfMQ3_LPG['LPG'])\n", + "dfMQ3_CO['CO'] = pd.to_numeric(dfMQ3_CO['CO'])\n", + "\n", + "dfMQ3_Alcohol['Alcohol'] = dfMQ3_Alcohol['Alcohol'].replace('',None, regex=True)\n", + "dfMQ3_Benzine['Benzine'] = dfMQ3_Benzine['Benzine'].replace('',None, regex=True)\n", + "dfMQ3_CH4['CH4'] = dfMQ3_CH4['CH4'].replace('',None, regex=True)\n", + "dfMQ3_Hexane['Hexane'] = dfMQ3_Hexane['Hexane'].replace('',None, regex=True)\n", + "dfMQ3_LPG['LPG'] = dfMQ3_LPG['LPG'].replace('',None, regex=True)\n", + "dfMQ3_CO['CO'] = dfMQ3_CO['CO'].replace('',None, regex=True)\n", + "\n", + "#Global X_Predict variable\n", + "X_Predict = dfMQ3_Alcohol.RsRo.apply(lambda x: [x]).tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train alcohol\n", + "dataset2TrainAlcohol = dfMQ3_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", + "MQ3_Alcohol = Alcohol_Predicted\n" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train Benzine\n", + "dataset2TrainBenzine = dfMQ3_Benzine.copy()\n", + "dataset2TrainBenzine.dropna(inplace=True)\n", + "X_trainBenzine = dataset2TrainBenzine.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainBenzine = dataset2TrainBenzine['Benzine'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainBenzine, y_trainBenzine)\n", + "#Predict\n", + "Benzine_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ3_Benzine = Benzine_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CH4\n", + "dataset2TrainCH4 = dfMQ3_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", + "MQ3_CH4 = CH4_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train Hexane\n", + "dataset2TrainHexane = dfMQ3_Hexane.copy()\n", + "dataset2TrainHexane.dropna(inplace=True)\n", + "X_trainHexane = dataset2TrainHexane.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainHexane = dataset2TrainHexane['Hexane'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainHexane, y_trainHexane)\n", + "#Predict\n", + "CO_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ3_Hexane = CO_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train LPG\n", + "dataset2TrainLPG = dfMQ3_LPG.copy()\n", + "dataset2TrainLPG.dropna(inplace=True)\n", + "X_trainLPG = dataset2TrainLPG.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainLPG = dataset2TrainLPG['LPG'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainLPG, y_trainLPG)\n", + "#Predict\n", + "LPG_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ3_LPG = LPG_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CO\n", + "dataset2TrainCO = dfMQ3_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", + "MQ3_CO = CO_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "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", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \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(MQ3_Alcohol, x_MQ3, marker='o', linewidth=1, label='Alcohol')\n", + "plt.plot(MQ3_Benzine, x_MQ3, marker='o', linewidth=1, label='Benzine')\n", + "plt.plot(MQ3_CH4, x_MQ3, marker='o', linewidth=1, label='CH4')\n", + "plt.plot(MQ3_Hexane, x_MQ3, marker='o', linewidth=1, label='Hexane')\n", + "plt.plot(MQ3_LPG, x_MQ3, marker='o', linewidth=1, label='LPG')\n", + "plt.plot(MQ3_CO, x_MQ3, marker='o', linewidth=1, label='CO')\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-3 data')\n", + "ax.set_xlabel('PPM Concentration')\n", + "ax.set_ylabel('Rs/Ro')\n", + "\n", + "\n", + "#Save image\n", + "plt.savefig('MQ2.svg', format = 'svg', dpi = 1200)\n", + "plt.savefig('MQ2.png')\n", + "plt.savefig('MQ2.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/MQ2.eps b/Experiments/MQ2.eps index 1b9d002..8ec4bda 100644 --- a/Experiments/MQ2.eps +++ b/Experiments/MQ2.eps @@ -1,7 +1,7 @@ %!PS-Adobe-3.0 EPSF-3.0 %%Title: MQ2.eps %%Creator: matplotlib version 3.0.3, http://matplotlib.org/ -%%CreationDate: Mon Jul 1 20:57:09 2019 +%%CreationDate: Mon Jul 1 21:41:20 2019 %%Orientation: portrait %%BoundingBox: -18 198 630 594 %%EndComments @@ -42,7 +42,7 @@ newpath /FontMatrix[.001 0 0 .001 0 0]def /FontBBox[-1021 -463 1793 1232]def /FontType 3 def -/Encoding [ /space /hyphen /slash /zero /one /two /three /four /A /C /G /H /L /M /O /P /Q /R /a /b /c /d /e /f /h /i /l /n /o /p /r /s /t /minus ] def +/Encoding [ /space /hyphen /slash /zero /one /two /three /four /A /B /C /G /H /L /M /O /P /Q /R /a /b /c /d /e /f /h /i /l /n /o /p /r /s /t /x /z /minus ] def /FontInfo 10 dict dup begin /FamilyName (DejaVu Sans) def /FullName (DejaVu Sans) def @@ -54,7 +54,7 @@ newpath /UnderlinePosition -130 def /UnderlineThickness 90 def end readonly def -/CharStrings 35 dict dup begin +/CharStrings 38 dict dup begin /.notdef 0 def /space{318 0 0 0 0 0 _sc }_d @@ -195,6 +195,36 @@ _cl}_d 8 0 _l 286 729 _l _cl}_d +/B{{686 0 98 0 615 729 _sc +197 348 _m +197 81 _l +355 81 _l +408 81 447 92 473 114 _c +498 136 511 169 511 215 _c +511 260 498 293 473 315 _c +447 337 408 348 355 348 _c +197 348 _l +197 648 _m +197 428 _l +343 428 _l +391 428 426 437 450 455 _c +474 473 486 500 486 538 _c +486 574 474 602 450 620 _c +426 638 391 648 343 648 _c +197 648 _l +98 729 _m +350 729 _l +}_e{425 729 483 713 524 682 _c +564 650 585 606 585 549 _c +585 504 574 468 553 442 _c +532 416 502 399 462 393 _c +510 382 548 360 575 327 _c +601 294 615 253 615 204 _c +615 138 592 88 548 53 _c +504 17 441 0 360 0 _c +98 0 _l +98 729 _l +_cl}_e}_d /C{{698 0 56 -13 644 742 _sc 644 673 _m 644 569 _l @@ -692,6 +722,34 @@ _cl}_d 93 702 _l 183 702 _l _cl}_d +/x{592 0 29 0 559 547 _sc +549 547 _m +351 281 _l +559 0 _l +453 0 _l +294 215 _l +135 0 _l +29 0 _l +241 286 _l +47 547 _l +153 547 _l +298 352 _l +443 547 _l +549 547 _l +_cl}_d +/z{525 0 43 0 482 547 _sc +55 547 _m +482 547 _l +482 465 _l +144 72 _l +482 72 _l +482 0 _l +43 0 _l +43 82 _l +381 475 _l +55 475 _l +55 547 _l +_cl}_d /minus{838 0 106 272 732 355 _sc 106 355 _m 732 355 _l @@ -760,25 +818,28 @@ grestore stroke grestore } bind def -94.7684 49.5 o +121.567 49.5 o grestore gsave -85.768414 33.578125 translate +109.566941 34.578125 translate 0.000000 rotate /DejaVuSans findfont 10.0 scalefont setfont -0.000000 0.976562 moveto +0.000000 0.064063 moveto /one glyphshow -6.362305 0.976562 moveto +6.362305 0.064063 moveto /zero glyphshow /DejaVuSans findfont 7.0 scalefont setfont -12.820312 4.804688 moveto -/two glyphshow +12.820312 3.892188 moveto +/minus glyphshow + +18.685547 3.892188 moveto +/one glyphshow grestore @@ -800,10 +861,10 @@ grestore stroke grestore } bind def -353.394 49.5 o +305.474 49.5 o grestore gsave -344.394252 33.578125 translate +296.474439 33.578125 translate 0.000000 rotate /DejaVuSans findfont 10.0 scalefont @@ -818,7 +879,47 @@ setfont 7.0 scalefont setfont 12.820312 4.804688 moveto -/three glyphshow +/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 @@ -826,8 +927,8 @@ grestore 0.827 setgray gsave 502.2 299 81 49.5 clipbox -82.934344 49.5 m -82.934344 348.48 l +80.767292 49.5 m +80.767292 348.48 l stroke grestore 0.600 setlinewidth @@ -851,15 +952,15 @@ grestore stroke grestore } bind def -82.9343 49.5 o +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 -172.622549 49.5 m -172.622549 348.48 l +93.079309 49.5 m +93.079309 348.48 l stroke grestore 0.600 setlinewidth @@ -883,15 +984,15 @@ grestore stroke grestore } bind def -172.623 49.5 o +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 -218.164298 49.5 m -218.164298 348.48 l +103.744463 49.5 m +103.744463 348.48 l stroke grestore 0.600 setlinewidth @@ -915,15 +1016,15 @@ grestore stroke grestore } bind def -218.164 49.5 o +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 -250.476684 49.5 m -250.476684 348.48 l +113.151795 49.5 m +113.151795 348.48 l stroke grestore 0.600 setlinewidth @@ -947,15 +1048,15 @@ grestore stroke grestore } bind def -250.477 49.5 o +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 -275.540117 49.5 m -275.540117 348.48 l +176.928614 49.5 m +176.928614 348.48 l stroke grestore 0.600 setlinewidth @@ -979,15 +1080,15 @@ grestore stroke grestore } bind def -275.54 49.5 o +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 -296.018433 49.5 m -296.018433 348.48 l +209.313117 49.5 m +209.313117 348.48 l stroke grestore 0.600 setlinewidth @@ -1011,15 +1112,15 @@ grestore stroke grestore } bind def -296.018 49.5 o +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 -313.332603 49.5 m -313.332603 348.48 l +232.290288 49.5 m +232.290288 348.48 l stroke grestore 0.600 setlinewidth @@ -1043,15 +1144,15 @@ grestore stroke grestore } bind def -313.333 49.5 o +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 -328.330819 49.5 m -328.330819 348.48 l +250.112766 49.5 m +250.112766 348.48 l stroke grestore 0.600 setlinewidth @@ -1075,15 +1176,15 @@ grestore stroke grestore } bind def -328.331 49.5 o +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 -341.560183 49.5 m -341.560183 348.48 l +264.674791 49.5 m +264.674791 348.48 l stroke grestore 0.600 setlinewidth @@ -1107,15 +1208,15 @@ grestore stroke grestore } bind def -341.56 49.5 o +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 -431.248387 49.5 m -431.248387 348.48 l +276.986807 49.5 m +276.986807 348.48 l stroke grestore 0.600 setlinewidth @@ -1139,15 +1240,15 @@ grestore stroke grestore } bind def -431.248 49.5 o +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 -476.790137 49.5 m -476.790137 348.48 l +287.651961 49.5 m +287.651961 348.48 l stroke grestore 0.600 setlinewidth @@ -1171,15 +1272,15 @@ grestore stroke grestore } bind def -476.79 49.5 o +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 -509.102522 49.5 m -509.102522 348.48 l +297.059294 49.5 m +297.059294 348.48 l stroke grestore 0.600 setlinewidth @@ -1203,15 +1304,15 @@ grestore stroke grestore } bind def -509.103 49.5 o +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 -534.165956 49.5 m -534.165956 348.48 l +360.836113 49.5 m +360.836113 348.48 l stroke grestore 0.600 setlinewidth @@ -1235,15 +1336,15 @@ grestore stroke grestore } bind def -534.166 49.5 o +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 -554.644272 49.5 m -554.644272 348.48 l +393.220616 49.5 m +393.220616 348.48 l stroke grestore 0.600 setlinewidth @@ -1267,15 +1368,15 @@ grestore stroke grestore } bind def -554.644 49.5 o +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 -571.958441 49.5 m -571.958441 348.48 l +416.197786 49.5 m +416.197786 348.48 l stroke grestore 0.600 setlinewidth @@ -1299,7 +1400,231 @@ grestore stroke grestore } bind def -571.958 49.5 o +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 @@ -1344,53 +1669,10 @@ grestore stroke grestore } bind def -81 63.09 o +81 133.48 o grestore gsave -50.000000 59.129063 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 --3.5 0 l - -gsave -0.000 setgray -fill -grestore -stroke -grestore -} bind def -81 198.99 o -grestore -gsave -56.000000 194.529063 translate +56.000000 129.018895 translate 0.000000 rotate /DejaVuSans findfont 10.0 scalefont @@ -1427,10 +1709,10 @@ grestore stroke grestore } bind def -81 334.89 o +81 234.185 o grestore gsave -56.000000 330.929063 translate +56.000000 230.223979 translate 0.000000 rotate /DejaVuSans findfont 10.0 scalefont @@ -1448,13 +1730,53 @@ setfont /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 49.919929 m -583.2 49.919929 l +81 63.09 m +583.2 63.09 l stroke grestore 0.600 setlinewidth @@ -1478,15 +1800,15 @@ grestore stroke grestore } bind def -81 49.9199 o +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 56.871557 m -583.2 56.871557 l +81 80.823285 m +583.2 80.823285 l stroke grestore 0.600 setlinewidth @@ -1510,15 +1832,15 @@ grestore stroke grestore } bind def -81 56.8716 o +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 103.999976 m -583.2 103.999976 l +81 93.405251 m +583.2 93.405251 l stroke grestore 0.600 setlinewidth @@ -1542,15 +1864,15 @@ grestore stroke grestore } bind def -81 104 o +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 127.930779 m -583.2 127.930779 l +81 103.164582 m +583.2 103.164582 l stroke grestore 0.600 setlinewidth @@ -1574,15 +1896,15 @@ grestore stroke grestore } bind def -81 127.931 o +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 144.909953 m -583.2 144.909953 l +81 111.138536 m +583.2 111.138536 l stroke grestore 0.600 setlinewidth @@ -1606,15 +1928,15 @@ grestore stroke grestore } bind def -81 144.91 o +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 158.080024 m -583.2 158.080024 l +81 117.880418 m +583.2 117.880418 l stroke grestore 0.600 setlinewidth @@ -1638,15 +1960,15 @@ grestore stroke grestore } bind def -81 158.08 o +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 168.840755 m -583.2 168.840755 l +81 123.720502 m +583.2 123.720502 l stroke grestore 0.600 setlinewidth @@ -1670,15 +1992,15 @@ grestore stroke grestore } bind def -81 168.841 o +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 177.938824 m -583.2 177.938824 l +81 128.871821 m +583.2 128.871821 l stroke grestore 0.600 setlinewidth @@ -1702,15 +2024,15 @@ grestore stroke grestore } bind def -81 177.939 o +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 185.819929 m -583.2 185.819929 l +81 163.795084 m +583.2 163.795084 l stroke grestore 0.600 setlinewidth @@ -1734,15 +2056,15 @@ grestore stroke grestore } bind def -81 185.82 o +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 192.771557 m -583.2 192.771557 l +81 181.528369 m +583.2 181.528369 l stroke grestore 0.600 setlinewidth @@ -1766,15 +2088,15 @@ grestore stroke grestore } bind def -81 192.772 o +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 239.899976 m -583.2 239.899976 l +81 194.110335 m +583.2 194.110335 l stroke grestore 0.600 setlinewidth @@ -1798,15 +2120,15 @@ grestore stroke grestore } bind def -81 239.9 o +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 263.830779 m -583.2 263.830779 l +81 203.869665 m +583.2 203.869665 l stroke grestore 0.600 setlinewidth @@ -1830,15 +2152,15 @@ grestore stroke grestore } bind def -81 263.831 o +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 280.809953 m -583.2 280.809953 l +81 211.843619 m +583.2 211.843619 l stroke grestore 0.600 setlinewidth @@ -1862,15 +2184,15 @@ grestore stroke grestore } bind def -81 280.81 o +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 293.980024 m -583.2 293.980024 l +81 218.585502 m +583.2 218.585502 l stroke grestore 0.600 setlinewidth @@ -1894,15 +2216,15 @@ grestore stroke grestore } bind def -81 293.98 o +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 304.740755 m -583.2 304.740755 l +81 224.425585 m +583.2 224.425585 l stroke grestore 0.600 setlinewidth @@ -1926,15 +2248,15 @@ grestore stroke grestore } bind def -81 304.741 o +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 313.838824 m -583.2 313.838824 l +81 229.576904 m +583.2 229.576904 l stroke grestore 0.600 setlinewidth @@ -1958,15 +2280,15 @@ grestore stroke grestore } bind def -81 313.839 o +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 321.719929 m -583.2 321.719929 l +81 264.500167 m +583.2 264.500167 l stroke grestore 0.600 setlinewidth @@ -1990,15 +2312,15 @@ grestore stroke grestore } bind def -81 321.72 o +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 328.671557 m -583.2 328.671557 l +81 282.233452 m +583.2 282.233452 l stroke grestore 0.600 setlinewidth @@ -2022,10 +2344,202 @@ grestore stroke grestore } bind def -81 328.672 o +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 -43.921875 184.677500 translate +49.921875 184.677500 translate 90.000000 rotate 0.000000 0.000000 m /R glyphshow 6.948242 0.000000 m /s glyphshow @@ -2038,18 +2552,16 @@ grestore 0.122 0.467 0.706 setrgbcolor gsave 502.2 299 81 49.5 clipbox -459.265999 63.09 m -453.456413 103.999976 l -447.329866 127.930779 l -440.849764 144.909953 l -433.972791 158.080024 l -426.647142 168.840755 l -418.810162 177.938824 l -410.385074 185.819929 l -401.276399 192.771557 l -391.363336 198.99 l -103.827273 239.899976 l --1 239.909656 l +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 @@ -2080,34 +2592,34 @@ grestore stroke grestore } bind def -459.266 63.09 o -453.456 104 o -447.33 127.931 o -440.85 144.91 o -433.973 158.08 o -426.647 168.841 o -418.81 177.939 o -410.385 185.82 o -401.276 192.772 o -391.363 198.99 o -103.827 239.9 o --1 239.91 o +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 -509.782402 63.09 m -497.60002 103.999976 l -483.93374 127.930779 l -468.371266 144.909953 l -450.300316 158.080024 l -428.753867 168.840755 l -402.068944 177.938824 l -367.000947 185.819929 l -315.736469 192.771557 l -218.724498 198.99 l --1 199.024671 l +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 @@ -2138,34 +2650,47 @@ grestore stroke grestore } bind def -509.782 63.09 o -497.6 104 o -483.934 127.931 o -468.371 144.91 o -450.3 158.08 o -428.754 168.841 o -402.069 177.939 o -367.001 185.82 o -315.736 192.772 o -218.724 198.99 o --1 199.025 o +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 -556.184451 103.999976 l -551.83393 127.930779 l -547.308084 144.909953 l -542.592188 158.080024 l -537.669578 168.840755 l -532.521298 177.938824 l -527.125659 185.819929 l -521.457685 192.771557 l -515.488418 198.99 l -426.836603 239.899976 l --1 239.939435 l +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 @@ -2197,37 +2722,55 @@ stroke grestore } bind def 560.373 63.09 o -556.184 104 o -551.834 127.931 o -547.308 144.91 o -542.592 158.08 o -537.67 168.841 o -532.521 177.939 o -527.126 185.82 o -521.458 192.772 o -515.488 198.99 o -426.837 239.9 o --1 239.939 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 -438.11489 63.09 m -435.982387 103.999976 l -433.808611 127.930779 l -431.591934 144.909953 l -429.330628 158.080024 l -427.022858 168.840755 l -424.666675 177.938824 l -422.260005 185.819929 l -419.800636 192.771557 l -417.286208 198.99 l -388.455448 239.899976 l -349.569007 263.830779 l -289.598413 280.809953 l -152.245275 293.980024 l --1 293.986386 l +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 @@ -2258,38 +2801,55 @@ grestore stroke grestore } bind def -438.115 63.09 o -435.982 104 o -433.809 127.931 o -431.592 144.91 o -429.331 158.08 o -427.023 168.841 o -424.667 177.939 o -422.26 185.82 o -419.801 192.772 o -417.286 198.99 o -388.455 239.9 o -349.569 263.831 o -289.598 280.81 o -152.245 293.98 o --1 293.986 o +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 2 setlinecap 0.580 0.404 0.741 setrgbcolor gsave 502.2 299 81 49.5 clipbox -558.732374 63.09 m -554.472805 103.999976 l -550.045309 127.930779 l -545.4361 144.909953 l -540.629621 158.080024 l -535.608228 168.840755 l -530.351799 177.938824 l -524.837246 185.819929 l -519.037903 192.771557 l -512.922746 198.99 l -420.828975 239.899976 l --1 239.938882 l +383.276353 63.09 m +383.107316 80.823285 l +382.937921 93.405251 l +382.768165 103.164582 l +382.598048 111.138536 l +382.427567 117.880418 l +382.256722 123.720502 l +382.085511 128.871821 l +381.913932 133.479833 l +380.177559 163.795084 l +378.402597 181.528369 l +376.587291 194.110335 l +374.729765 203.869665 l +372.828009 211.843619 l +370.879863 218.585502 l +368.883009 224.425585 l +366.834947 229.576904 l +364.732984 234.184916 l +339.960906 264.500167 l +303.860849 282.233452 l +236.187159 294.815418 l +-1 294.82801 l stroke grestore 0 setlinecap @@ -2320,34 +2880,55 @@ grestore stroke grestore } bind def -558.732 63.09 o -554.473 104 o -550.045 127.931 o -545.436 144.91 o -540.63 158.08 o -535.608 168.841 o -530.352 177.939 o -524.837 185.82 o -519.038 192.772 o -512.923 198.99 o -420.829 239.9 o --1 239.939 o +383.276 63.09 o +383.107 80.8233 o +382.938 93.4053 o +382.768 103.165 o +382.598 111.139 o +382.428 117.88 o +382.257 123.721 o +382.086 128.872 o +381.914 133.48 o +380.178 163.795 o +378.403 181.528 o +376.587 194.11 o +374.73 203.87 o +372.828 211.844 o +370.88 218.586 o +368.883 224.426 o +366.835 229.577 o +364.733 234.185 o +339.961 264.5 o +303.861 282.233 o +236.187 294.815 o +-1 294.828 o grestore 2 setlinecap 0.549 0.337 0.294 setrgbcolor gsave 502.2 299 81 49.5 clipbox -509.782402 63.09 m -497.60002 103.999976 l -483.93374 127.930779 l -468.371266 144.909953 l -450.300316 158.080024 l -428.753867 168.840755 l -402.068944 177.938824 l -367.000947 185.819929 l -315.736469 192.771557 l -218.724498 198.99 l --1 199.024671 l +487.352665 63.09 m +487.182137 80.823285 l +487.011244 93.405251 l +486.839985 103.164582 l +486.668358 111.138536 l +486.496361 117.880418 l +486.323993 123.720502 l +486.151252 128.871821 l +485.978137 133.479833 l +484.226028 163.795084 l +482.43462 181.528369 l +480.602108 194.110335 l +478.726563 203.869665 l +476.805914 211.843619 l +474.837938 218.585502 l +472.820245 224.425585 l +470.750256 229.576904 l +468.625188 234.184916 l +443.528954 264.500167 l +406.729815 282.233452 l +336.439164 294.815418 l +-1 294.833322 l stroke grestore 0 setlinecap @@ -2378,17 +2959,28 @@ grestore stroke grestore } bind def -509.782 63.09 o -497.6 104 o -483.934 127.931 o -468.371 144.91 o -450.3 158.08 o -428.754 168.841 o -402.069 177.939 o -367.001 185.82 o -315.736 192.772 o -218.724 198.99 o --1 199.025 o +487.353 63.09 o +487.182 80.8233 o +487.011 93.4053 o +486.84 103.165 o +486.668 111.139 o +486.496 117.88 o +486.324 123.721 o +486.151 128.872 o +485.978 133.48 o +484.226 163.795 o +482.435 181.528 o +480.602 194.11 o +478.727 203.87 o +476.806 211.844 o +474.838 218.586 o +472.82 224.426 o +470.75 229.577 o +468.625 234.185 o +443.529 264.5 o +406.73 282.233 o +336.439 294.815 o +-1 294.833 o grestore 0.800 setlinewidth 0 setlinejoin @@ -2419,15 +3011,15 @@ grestore 0 setlinecap 0.800 setgray gsave -502.965625 252.44875 m -576.2 252.44875 l -577.533333 252.44875 578.2 253.115417 578.2 254.44875 c -578.2 341.48 l -578.2 342.813333 577.533333 343.48 576.2 343.48 c -502.965625 343.48 l -501.632292 343.48 500.965625 342.813333 500.965625 341.48 c -500.965625 254.44875 l -500.965625 253.115417 501.632292 252.44875 502.965625 252.44875 c +88 54.5 m +159.890625 54.5 l +161.223958 54.5 161.890625 55.166667 161.890625 56.5 c +161.890625 143.53125 l +161.890625 144.864583 161.223958 145.53125 159.890625 145.53125 c +88 145.53125 l +86.666667 145.53125 86 144.864583 86 143.53125 c +86 56.5 l +86 55.166667 86.666667 54.5 88 54.5 c cl gsave 1.000 setgray @@ -2440,8 +3032,8 @@ grestore [] 0 setdash 0.122 0.467 0.706 setrgbcolor gsave -504.965625 335.38625 m -524.965625 335.38625 l +90 137.4375 m +110 137.4375 l stroke grestore 0 setlinecap @@ -2471,185 +3063,11 @@ grestore stroke grestore } bind def -514.966 335.386 o +100 137.438 o grestore 0.000 setgray gsave -532.965625 331.886250 translate -0.000000 rotate -0.000000 0.000000 m /H glyphshow -7.519531 0.000000 m /two glyphshow -grestore -2 setlinecap -1.000 0.498 0.055 setrgbcolor -gsave -504.965625 320.714375 m -524.965625 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 -514.966 320.714 o -grestore -0.000 setgray -gsave -532.965625 317.214375 translate -0.000000 rotate -0.000000 0.000000 m /L glyphshow -5.571289 0.000000 m /P glyphshow -11.601562 0.000000 m /G glyphshow -grestore -2 setlinecap -0.173 0.627 0.173 setrgbcolor -gsave -504.965625 306.0425 m -524.965625 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 -514.966 306.043 o -grestore -0.000 setgray -gsave -532.965625 302.542500 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 -0.839 0.153 0.157 setrgbcolor -gsave -504.965625 291.370625 m -524.965625 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 -514.966 291.371 o -grestore -0.000 setgray -gsave -532.965625 287.870625 translate -0.000000 rotate -0.000000 0.000000 m /C glyphshow -6.982422 0.000000 m /O glyphshow -grestore -2 setlinecap -0.580 0.404 0.741 setrgbcolor -gsave -504.965625 276.69875 m -524.965625 276.69875 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.580 0.404 0.741 setrgbcolor -fill -grestore -stroke -grestore -} bind def -514.966 276.699 o -grestore -0.000 setgray -gsave -532.965625 273.198750 translate +118.000000 133.937500 translate 0.000000 rotate 0.000000 0.000000 m /A glyphshow 6.840820 0.000000 m /l glyphshow @@ -2660,10 +3078,193 @@ gsave 33.691406 0.000000 m /l glyphshow grestore 2 setlinecap +1.000 0.498 0.055 setrgbcolor +gsave +90 122.765625 m +110 122.765625 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 +100 122.766 o +grestore +0.000 setgray +gsave +118.000000 119.265625 translate +0.000000 rotate +0.000000 0.000000 m /B glyphshow +6.860352 0.000000 m /e glyphshow +13.012695 0.000000 m /n glyphshow +19.350586 0.000000 m /z glyphshow +24.599609 0.000000 m /i glyphshow +27.377930 0.000000 m /n glyphshow +33.715820 0.000000 m /e glyphshow +grestore +2 setlinecap +0.173 0.627 0.173 setrgbcolor +gsave +90 108.09375 m +110 108.09375 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 +100 108.094 o +grestore +0.000 setgray +gsave +118.000000 104.593750 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 +0.839 0.153 0.157 setrgbcolor +gsave +90 93.421875 m +110 93.421875 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 +100 93.4219 o +grestore +0.000 setgray +gsave +118.000000 89.921875 translate +0.000000 rotate +0.000000 0.000000 m /H glyphshow +7.519531 0.000000 m /e glyphshow +13.671875 0.000000 m /x glyphshow +19.589844 0.000000 m /a glyphshow +25.717773 0.000000 m /n glyphshow +32.055664 0.000000 m /e glyphshow +grestore +2 setlinecap +0.580 0.404 0.741 setrgbcolor +gsave +90 78.75 m +110 78.75 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.580 0.404 0.741 setrgbcolor +fill +grestore +stroke +grestore +} bind def +100 78.75 o +grestore +0.000 setgray +gsave +118.000000 75.250000 translate +0.000000 rotate +0.000000 0.000000 m /L glyphshow +5.571289 0.000000 m /P glyphshow +11.601562 0.000000 m /G glyphshow +grestore +2 setlinecap 0.549 0.337 0.294 setrgbcolor gsave -504.965625 262.026875 m -524.965625 262.026875 l +90 64.078125 m +110 64.078125 l stroke grestore 0 setlinecap @@ -2693,19 +3294,14 @@ grestore stroke grestore } bind def -514.966 262.027 o +100 64.0781 o grestore 0.000 setgray gsave -532.965625 258.526875 translate +118.000000 60.578125 translate 0.000000 rotate -0.000000 0.000000 m /P glyphshow -6.030273 0.000000 m /r glyphshow -10.141602 0.000000 m /o glyphshow -16.259766 0.000000 m /p glyphshow -22.607422 0.000000 m /a glyphshow -28.735352 0.000000 m /n glyphshow -35.073242 0.000000 m /e glyphshow +0.000000 0.000000 m /C glyphshow +6.982422 0.000000 m /O glyphshow grestore /DejaVuSans findfont 12.000 scalefont @@ -2737,7 +3333,7 @@ gsave 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 /two glyphshow +140.361328 0.000000 m /three glyphshow 147.996094 0.000000 m /space glyphshow 151.810547 0.000000 m /d glyphshow 159.427734 0.000000 m /a glyphshow diff --git a/Experiments/MQ2.png b/Experiments/MQ2.png index 0a2953c..9364547 100644 Binary files a/Experiments/MQ2.png and b/Experiments/MQ2.png differ diff --git a/Experiments/MQ2.svg b/Experiments/MQ2.svg index 213f98f..7c81ae4 100644 --- a/Experiments/MQ2.svg +++ b/Experiments/MQ2.svg @@ -32,14 +32,14 @@ z +" id="m4d86b0b012" style="stroke:#000000;stroke-width:0.8;"/> - + - + - +" id="DejaVuSans-8722"/> - - - - + + + + + - + - - - - - + + - + - - - - - - - + + + + + + + + + - - + - + + + + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + +" id="m51146e80c2" style="stroke:#000000;stroke-width:0.8;"/> - - - - - - - - - - - - - - - - - - - - + - + - - + + - + - + + + + + + + + + + + + + + + + + + + - - + - + +" id="m000aafc67e" style="stroke:#000000;stroke-width:0.6;"/> - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -944,19 +1081,17 @@ z - - + +" id="m1da5986bb8" style="stroke:#1f77b4;"/> - - - - - - - - - - - - - + + + + + + + + + + + - - + +" id="m48317e4880" style="stroke:#ff7f0e;"/> - - - - - - - - - - - - + + + + + + + + + + + + + + - - + +" id="m1869310e79" style="stroke:#2ca02c;"/> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + +" id="m0b1caed695" style="stroke:#d62728;"/> - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + +" id="maaa103a47a" style="stroke:#9467bd;"/> - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + +" id="mf9bff1be55" style="stroke:#8c564b;"/> - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + @@ -1220,192 +1435,29 @@ L 583.2 47.52 - - - + - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1458,60 +1510,256 @@ z - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + +" id="DejaVuSans-71"/> - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + + + - + @@ -1652,7 +1958,7 @@ z - + diff --git a/Experiments/MQ3_Regression.ipynb b/Experiments/MQ3_Regression.ipynb new file mode 100644 index 0000000..0544be7 --- /dev/null +++ b/Experiments/MQ3_Regression.ipynb @@ -0,0 +1,2363 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "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: 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: 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: 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" + ] + } + ], + "source": [ + "!pip install pandas\n", + "!pip install xlrd\n", + "!pip install sklearn\n", + "!pip install imblearn" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "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": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 \t \t \t \t \t \t \n", + "0.2 \t 4.0 \t \t \t \t \t \n", + "0.3 \t \t \t \t \t \t \n", + "0.4 \t \t \t \t \t \t \n", + "0.5 \t 1.0 \t \t \t \t \t \n", + "0.6 \t \t \t \t \t \t \n", + "0.7 \t \t \t \t \t \t \n", + "0.8 \t \t 8.0 \t \t \t \t \n", + "0.9 \t \t \t \t \t \t \n", + "1.0 \t 0.4 \t 4.0 \t \t \t \t \n", + "2.0 \t \t \t \t \t \t \n", + "3.0 \t \t \t \t \t \t \n", + "4.0 \t \t 0.1 \t \t \t \t \n", + "5.0 \t \t \t \t \t \t \n", + "6.0 \t \t \t \t \t \t \n", + "7.0 \t \t \t \t \t \t \n", + "8.0 \t \t \t \t \t \t \n", + "9.0 \t \t \t \t \t \t \n", + "10.0 \t \t \t \t 8.0 \t \t \n" + ] + } + ], + "source": [ + "for row_index in range(1,20): #reading first columns\n", + " RsR0, Alcohol, Benzine, CH4, Hexane, LPG, CO = sheetMQ3.row_values(row_index, start_colx=0, end_colx=7)\n", + " print(RsR0, \"\t\", Alcohol, \"\t\", Benzine, \"\t\", CH4, \"\t\", Hexane, \"\t\", LPG, \"\t\", CO)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "x_MQ3 = sheetMQ3.col_values(0)[2:]\n", + "MQ3_Alcohol = sheetMQ3.col_values(1)[2:]\n", + "MQ3_Benzine = sheetMQ3.col_values(2)[2:]\n", + "MQ3_CH4 = sheetMQ3.col_values(3)[2:]\n", + "MQ3_Hexane = sheetMQ3.col_values(4)[2:]\n", + "MQ3_LPG = sheetMQ3.col_values(5)[2:]\n", + "MQ3_CO = sheetMQ3.col_values(6)[2:]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "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": 40, + "metadata": {}, + "outputs": [], + "source": [ + "MQ3_Alcohol =zero_to_nan(MQ3_Alcohol)\n", + "MQ3_Benzine =zero_to_nan(MQ3_Benzine)\n", + "MQ3_CH4 =zero_to_nan(MQ3_CH4)\n", + "MQ3_Hexane =zero_to_nan(MQ3_Hexane)\n", + "MQ3_LPG =zero_to_nan(MQ3_LPG)\n", + "MQ3_CO =zero_to_nan(MQ3_CO)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "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", + "dataAlcohol = {'RsRo': x_MQ3, 'Alcohol': MQ3_Alcohol}\n", + "dataBenzine = {'RsRo': x_MQ3, 'Benzine': MQ3_Benzine}\n", + "dataCH4 = {'RsRo': x_MQ3, 'CH4': MQ3_CH4}\n", + "dataHexane = {'RsRo': x_MQ3, 'Hexane': MQ3_Hexane}\n", + "dataLPG = {'RsRo': x_MQ3, 'LPG': MQ3_LPG}\n", + "dataCO = {'RsRo': x_MQ3, 'CO': MQ3_CO}\n", + "\n", + "dfMQ3_Alcohol = pd.DataFrame(dataAlcohol)\n", + "dfMQ3_Benzine = pd.DataFrame(dataBenzine)\n", + "dfMQ3_CH4 = pd.DataFrame(dataCH4)\n", + "dfMQ3_Hexane = pd.DataFrame(dataHexane)\n", + "dfMQ3_LPG = pd.DataFrame(dataLPG)\n", + "dfMQ3_CO = pd.DataFrame(dataCO)\n", + "\n", + "dfMQ3_Alcohol['Alcohol'] = pd.to_numeric(dfMQ3_Alcohol['Alcohol'])\n", + "dfMQ3_Benzine['Benzine'] = pd.to_numeric(dfMQ3_Benzine['Benzine'])\n", + "dfMQ3_CH4['CH4'] = pd.to_numeric(dfMQ3_CH4['CH4'])\n", + "dfMQ3_Hexane['Hexane'] = pd.to_numeric(dfMQ3_Hexane['Hexane'])\n", + "dfMQ3_LPG['LPG'] = pd.to_numeric(dfMQ3_LPG['LPG'])\n", + "dfMQ3_CO['CO'] = pd.to_numeric(dfMQ3_CO['CO'])\n", + "\n", + "dfMQ3_Alcohol['Alcohol'] = dfMQ3_Alcohol['Alcohol'].replace('',None, regex=True)\n", + "dfMQ3_Benzine['Benzine'] = dfMQ3_Benzine['Benzine'].replace('',None, regex=True)\n", + "dfMQ3_CH4['CH4'] = dfMQ3_CH4['CH4'].replace('',None, regex=True)\n", + "dfMQ3_Hexane['Hexane'] = dfMQ3_Hexane['Hexane'].replace('',None, regex=True)\n", + "dfMQ3_LPG['LPG'] = dfMQ3_LPG['LPG'].replace('',None, regex=True)\n", + "dfMQ3_CO['CO'] = dfMQ3_CO['CO'].replace('',None, regex=True)\n", + "\n", + "#Global X_Predict variable\n", + "X_Predict = dfMQ3_Alcohol.RsRo.apply(lambda x: [x]).tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train alcohol\n", + "dataset2TrainAlcohol = dfMQ3_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", + "MQ3_Alcohol = Alcohol_Predicted\n" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train Benzine\n", + "dataset2TrainBenzine = dfMQ3_Benzine.copy()\n", + "dataset2TrainBenzine.dropna(inplace=True)\n", + "X_trainBenzine = dataset2TrainBenzine.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainBenzine = dataset2TrainBenzine['Benzine'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainBenzine, y_trainBenzine)\n", + "#Predict\n", + "Benzine_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ3_Benzine = Benzine_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CH4\n", + "dataset2TrainCH4 = dfMQ3_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", + "MQ3_CH4 = CH4_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train Hexane\n", + "dataset2TrainHexane = dfMQ3_Hexane.copy()\n", + "dataset2TrainHexane.dropna(inplace=True)\n", + "X_trainHexane = dataset2TrainHexane.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainHexane = dataset2TrainHexane['Hexane'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainHexane, y_trainHexane)\n", + "#Predict\n", + "CO_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ3_Hexane = CO_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train LPG\n", + "dataset2TrainLPG = dfMQ3_LPG.copy()\n", + "dataset2TrainLPG.dropna(inplace=True)\n", + "X_trainLPG = dataset2TrainLPG.RsRo.apply(lambda x: [x]).tolist()\n", + "y_trainLPG = dataset2TrainLPG['LPG'].tolist()\n", + "model = linear_model.Lasso(alpha=0.1)\n", + "model.fit(X_trainLPG, y_trainLPG)\n", + "#Predict\n", + "LPG_Predicted = model.predict(X_Predict)\n", + "#save into MQ2\n", + "MQ3_LPG = LPG_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "#Model and train CO\n", + "dataset2TrainCO = dfMQ3_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", + "MQ3_CO = CO_Predicted" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "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", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \r\n", + " \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(MQ3_Alcohol, x_MQ3, marker='o', linewidth=1, label='Alcohol')\n", + "plt.plot(MQ3_Benzine, x_MQ3, marker='o', linewidth=1, label='Benzine')\n", + "plt.plot(MQ3_CH4, x_MQ3, marker='o', linewidth=1, label='CH4')\n", + "plt.plot(MQ3_Hexane, x_MQ3, marker='o', linewidth=1, label='Hexane')\n", + "plt.plot(MQ3_LPG, x_MQ3, marker='o', linewidth=1, label='LPG')\n", + "plt.plot(MQ3_CO, x_MQ3, marker='o', linewidth=1, label='CO')\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-3 data')\n", + "ax.set_xlabel('PPM Concentration')\n", + "ax.set_ylabel('Rs/Ro')\n", + "\n", + "\n", + "#Save image\n", + "plt.savefig('MQ2.svg', format = 'svg', dpi = 1200)\n", + "plt.savefig('MQ2.png')\n", + "plt.savefig('MQ2.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 +}