{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
Please cite us if you use the software
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Example-2 (How to plot via matplotlib)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Install matplotlib" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hide_output": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: matplotlib in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (3.0.3)\n", "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from matplotlib) (2.2.0)\n", "Requirement already satisfied: python-dateutil>=2.1 in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from matplotlib) (2.6.1)\n", "Requirement already satisfied: numpy>=1.10.0 in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from matplotlib) (1.15.2)\n", "Requirement already satisfied: cycler>=0.10 in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from matplotlib) (0.10.0)\n", "Requirement already satisfied: kiwisolver>=1.0.1 in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from matplotlib) (1.0.1)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from python-dateutil>=2.1->matplotlib) (1.11.0)\n", "Requirement already satisfied: setuptools in c:\\users\\sepkjaer\\appdata\\local\\programs\\python\\python35-32\\lib\\site-packages (from kiwisolver>=1.0.1->matplotlib) (40.9.0)\n" ] } ], "source": [ "import sys\n", "!{sys.executable} -m pip install matplotlib;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import itertools\n", "from pycm import ConfusionMatrix\n", "\n", "def plot_confusion_matrix(cm,\n", " normalize=False,\n", " title='Confusion matrix',\n", " cmap=plt.cm.Blues):\n", " \"\"\"\n", " This function modified to plots the ConfusionMatrix object.\n", " Normalization can be applied by setting `normalize=True`.\n", " \n", " Code Reference : \n", " http://scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html\n", " \n", " \"\"\"\n", "\n", " plt_cm = []\n", " for i in cm.classes :\n", " row=[]\n", " for j in cm.classes:\n", " row.append(cm.table[i][j])\n", " plt_cm.append(row)\n", " plt_cm = np.array(plt_cm)\n", " if normalize:\n", " plt_cm = plt_cm.astype('float') / plt_cm.sum(axis=1)[:, np.newaxis] \n", " plt.imshow(plt_cm, interpolation='nearest', cmap=cmap)\n", " plt.title(title)\n", " plt.colorbar()\n", " tick_marks = np.arange(len(cm.classes))\n", " plt.xticks(tick_marks, cm.classes, rotation=45)\n", " plt.yticks(tick_marks, cm.classes)\n", "\n", " fmt = '.2f' if normalize else 'd'\n", " thresh = plt_cm.max() / 2.\n", " for i, j in itertools.product(range(plt_cm.shape[0]), range(plt_cm.shape[1])):\n", " plt.text(j, i, format(plt_cm[i, j], fmt),\n", " horizontalalignment=\"center\",\n", " color=\"white\" if plt_cm[i, j] > thresh else \"black\")\n", "\n", " plt.tight_layout()\n", " plt.ylabel('Actual')\n", " plt.xlabel('Predict')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "cm = ConfusionMatrix(matrix={0:{0:13,1:0,2:0},1:{0:0,1:10,2:6},2:{0:0,1:0,2:9}})" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "