Commit 0820e4c9 authored by rhaase's avatar rhaase

added slides and notebooks

parent b104896a
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Comparison of means"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>A</th>\n",
" <th>B</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>9</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>8</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>9</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>7</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" A B\n",
"0 1 4\n",
"1 9 5\n",
"2 7 5\n",
"3 1 7\n",
"4 2 4\n",
"5 8 5\n",
"6 9 4\n",
"7 2 6\n",
"8 1 6\n",
"9 7 5\n",
"10 8 4"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"# make up some data\n",
"measurement_A = [1, 9, 7, 1, 2, 8, 9, 2, 1, 7, 8]\n",
"measurement_B = [4, 5, 5, 7, 4, 5, 4, 6, 6, 5, 4]\n",
"\n",
"# show measurements as table\n",
"pd.DataFrame([measurement_A, measurement_B], [\"A\", \"B\"]).transpose()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mean(A) = 5.0\n",
"Mean(B) = 5.0\n"
]
}
],
"source": [
"print(\"Mean(A) = \" + str(np.mean(measurement_A)))\n",
"print(\"Mean(B) = \" + str(np.mean(measurement_B)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Take your personal notes here."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAevElEQVR4nO3dd5hU5fnG8e/DLiy9Se9FAVEi4CooiIgoqAgaY8UaEvJLFFBUQIMtasTYsSH2FoxBE3onCKL0Ik1EighSlt6XLe/vj7MGgrTdmd33zMz9uS4udnZn5tyOzM3hzDnPa845REQkvhTyHUBERKJP5S4iEodU7iIicUjlLiISh1TuIiJxSOUuIhKHTljuZvaOmW02s8WHfa+8mU0wsxU5v5fL35giIpIbJ7Pn/h7Q8Yjv9QMmOedOAybl3BYRkZCwk7mIyczqACOdc2fm3F4OtHXObTCzqsAU51zD/AwqIiInLzmPj6vsnNsAkFPwlY51RzPrDnQHKFGixNmNGjXK4yZFRBJI1kHYsRbSdzN3Q/YW51zF3Dw8r+V+0pxzg4HBAKmpqW7OnDn5vUkRkdiVnQWz3oRJfwErAe2fwVp0/yG3T5PXct9kZlUPOyyzOY/PIyIiP0tbDsN7wI8z4dT20OkFKFuLnIMfuZLXUyGHA7flfH0bMCyPzyMiIlkZMPUZGNQatnwHV78BXYfmFHvenHDP3cyGAG2BCma2DngEGAB8ambdgLXAtXlOICKSyH5aAMPugk2LoPFVcPkzUPKYH2OetBOWu3PuxmP86OKIty4ikqgy9sOUAfDVy1CiAlz/EZx+ZdSePt8/UBURkSOsmR4cW9+2EprdApc+DsWiey2oyl1EpKAc2AWTHoPZbwXH02/5N9S/KF82pXIXESkIKybAiLth13po+Sdo1x+KlMi3zancRUTy075tMPYB+OYTqNAQuo2Hmufm+2ZV7iIi+cE5WPIvGH0/HNgBbfpAm/sgOaVANq9yFxGJtl0bYNS9sHwUVG0Kt/4bqjQp0AgqdxGRaHEO5n8I4/pDVjpc8hdoeSckFXzVqtxFRKJh22oY0RNWT4XaraDzy3BKfW9xVO4iIpHIzoKZb8Dkx8GS4Irn4ew7oJDfhe5U7iIiebV5WTA6YP0cOO3SYNBXmRq+UwEqdxGR3Ms8CNNfhC/+Biml4NdvQpNrwcx3sv9SuYuI5Mb6uTCsB2xeAmdeAx2fhpK5WkejQKjcRUROxsF9MOWv8PWrULIy3DAEGl3uO9UxqdxFRE5k9bTgTJhtq6D5bcGgr6JlfKc6LpW7iMixHNgJEx6Bue9CuTpw63Cod6HvVCdF5S4icjTfjQsGfe3ZCOfdBRf9GYoU953qpKncRUQOt3cLjO0Hi/4JFU+H6z+EGqm+U+Wayl1EBILRAYs/gzF9grnrbR+A1r0huYjvZHmichcR2bkeRvWG78ZC9bOh8ytQubHvVBFRuYtI4srOhnnvw4SHISsDLn0SWv4RCiX5ThYxlbuIJKatK2FEL1gzDepcAJ0HQvl6vlNFjcpdRBJLdhbMeA0mPwlJheHKl4Jz10M0OiAaVO4ikjg2LYVhd8JP86DBZdDpeShdzXeqfKFyF5H4l5kO056Hac9B0dJwzdvBXJg421s/nMpdROLbujnBWN60ZdDkOug4AEqc4jtVvlO5i0h8Org3OK4+47Xg0MtNn0KDDr5TFRiVu4jEn1VfBIO+tq+B1N9C+8eCwzEJROUuIvFj/w6Y8BDM+yA4rfH2UVCnte9UXqjcRSQ+fDs6uMp0zyY4v2cwPiCGBn1Fm8pdRGLbnrRgHsySz6HSGXDD36F6c9+pvFO5i0hscg6++RTG9g0+PL2oP7TqFbODvqJN5S4isWfnOhh5D6wYDzXOCQZ9VWrkO1WoqNxFJHZkZ8Pcd2DCo+CygnPWz+0eF4O+ok3lLiKxYetKGN4DfpgOdS8MZsKUr+s7VWip3EUk3LIy4etXYMpTkJQSHIJpdnNcjw6IhojK3czuAX4HOGARcIdz7kA0gomIsHFRMDpgwwJo1AkufxZKV/WdKiYUyusDzaw60BNIdc6dCSQBN0QrmIgksMx0mPwEDG4Lu9bDte/B9R+p2HMh0sMyyUAxM8sAigM/RR5JRBLaj7OCvfUty+GsG6HDX6F4ed+pYk6ey905t97MngXWAvuB8c658Ufez8y6A90BatWqldfNiUi8S98T7K3PHASlq0PXoXDaJb5TxaxIDsuUA7oAdYFqQAkzu/nI+znnBjvnUp1zqRUrVsx7UhGJXysnw+vnwczX4ZzfwZ0zVOwRiuSwTHtgtXMuDcDMPgfOBz6KRjARSQD7t8P4/jD/IzjlVLhjDNQ+33equBBJua8FWppZcYLDMhcDc6KSSkTi37IRMOpe2LsFWt8DF/aDwkV9p4obkRxzn2lmQ4F5QCYwHxgcrWAiEqd2b4Ix98PSYVClSbCIRrWmvlPFnYjOlnHOPQI8EqUsIhLPnIOFn8DYfpCxD9o9FAz6SirsO1lc0hWqIpL/dqyFEXfDyklQs0VwlWnFBr5TxTWVu4jkn+xsmPM2THw02HO/7G9wzu+hUJ5P1JOTpHIXkfyxZUUw6Gvt11C/HXR6EcrV9p0qYajcRSS6sjLgq5dhygAoXAyuej240lSDvgqUyl1EomfDwmB0wMZv4PTOwaCvUpV9p0pIKncRiVzGAfjiaZj+EhQ/Ba77ABp38Z0qoancRSQya2cEe+tbV0DTrnDpExr0FQIqdxHJm/TdMOkvMOtNKFMTbv4cTr3YdyrJoXIXkdz7fmJw3vrOddDiD8EFSSklfaeSw6jcReTk7dsG4/4MC/8OFRrAb8dCrZa+U8lRqNxF5OQs+TeMvi8o+Avugzb3a9BXiKncReT4dm8MSn3ZCKjyq+DYetVf+U4lJ6ByF5Gjcw4WfAzjHgxOdWz/KJzXA5JUG7EgoQY8bN51gOve+JrNuw/4jiISbtt/gA+vhmF3QqUz4I/Tg5nrKvaYkVDlPnDSCmav2cbAiSt8RxEJp+wsmDEIXjsP1s0OrjC9fRRUOM13MsmlhPhruGH/MaRnZv/39kcz1/LRzLWkJBdi+ROXeUwmEiJpy4OLkdbNglPbB4O+ytb0nUryKCH23Kf1uYjOTatRtHDwn1u0cCG6NK3GtL4XeU4mEgJZGTD1GRjUOrjK9Oo3oOtQFXuMS4g990qli1IqJZn0zGxSkguRnplNqZRkKpXSaVyS4H6aH+ytb1oMZ1wdzFsvWcl3KomChCh3gC170unaojY3nVuLv89aS5o+VJVElrE/GMn71ctQogJc/zGc3sl3Kokic84V2MZSU1PdnDlzCmx7InIUa6YHi2hsWwnNboFLH4di5XynkuMws7nOudTcPCZh9txFEt6BXTDpMZj9FpStDbcOg3ptfaeSfKJyF0kE342HkffArvXQ8k/Qrj8UKeE7leQjlbtIPNu7FcY9AN/8Ayo2gm4ToOY5vlNJAVC5i8Qj52DJv2D0/XBgB7TpA23ug+QU38mkgKjcReLNrg0w6l5YPgqqNg2OrVc503cqKWAqd5F44RzM/xDG9YesdLjk8eD4uubBJCT9XxeJB9tWw4iesHoq1G4NnQfCKfV9pxKPVO4isSw7C2YOgslPgCVBpxeg+e1QKCEmi8hxqNxFYtXmZcHogPVz4LQOQbGXqe47lYSEyl0k1mQehC9fCIZ9pZSCX78FTX4DZr6TSYio3EViyfq5MKwHbF4CZ/4GLns6mA0jcgSVu0gsOLgPpvwVvn4VSlaBGz+BhlqLQI5N5S4SdqunBWfCbFsFZ98Ol/wFipbxnUpCTuUuElYHdsKER2Duu1CuLtw2Auq28Z1KYkRE50uZWVkzG2pm35rZMjM7L1rB8kNYFsgOSw4JseVj4dWWMO99OO8u+ONXKnbJlUhPhn0JGOucawScBSyLPFL+CcsC2WHJISG0dwsM7QZDrodiZaHbROjwJBQp7juZxJg8L9ZhZqWBhUA9d5JP4muxjiMXyP5ZQS+QHZYcEkLOweLPYEyfYO56m/ugdW9ILuI7mYRAXhbriGTPvR6QBrxrZvPN7C0z+8WAaDPrbmZzzGxOWlpaBJvLu7AskB2WHBIyO9fDkBvgs25Qrg78YSq07adil4hEUu7JQHPgdedcM2Av0O/IOznnBjvnUp1zqRUrVoxgc3kXlgWyw5JDQiI7G+a8C6+1hFVfQIe/BvPWKzf2nUziQCRny6wD1jnnZubcHspRyj0swrJAdlhyiGdbV8KIXrBmGtS5IBj0Vb6e71QSRyJaINvMpgG/c84tN7NHgRLOufuPdX8tkC0JLysTZrwG/3kSkorApU9A81s1OkCOy8cC2T2Aj82sCLAKuCPC5xOJX5uWBIO+fpoHDS6DTs9D6Wq+U0mciqjcnXMLgFz9bSKScDLTYdpzwa+iZeE378AZv9beuuQrXaEqkp/WzQn21tOWwa+uhw5PQYlTfKeSBKByF8kPB/fC5CeD4+ulq8FNn0KDDr5TSQJRuYtE26ovgkFf29dAajdo/ygULe05lCQalbtItOzfARMegnkfBKc13j4K6rT2nUoSlMpdJBq+HQUje8PezdCqF7R9AAoX851KEpjKXSQSe9KCeTBLPofKZ8KNQ6B6c9+pRFTuInniHHzzKYztG3x4elF/aH03JBX2nUwEULmL5N7OdTDyHlgxHmqcA51fgUqNfKcS+R8qd5GTlZ0Nc9+BCY+Cy4KOA+Dc7lAoyXcykV9QuYucjC3fw/AesPYrqNcWrnwpGM8rElIqd5HjycqEr1+BKU9Bcgp0eRWadtXoAAk9lbvIsWxcBMPuhA0LoVEnuOI5KFXFdyqRk6JyFzlSZjpMfQa+fAGKlYNr34fGXbS3LjEl0gWyReLLj7Ng0AVBuTe5Fu6cBWdclTDFvvSnnTR5ZBxLN+z0mmPzrgNc98bXbPa4mE0YMkRC5S4CkL4HxvSDty+FjH3Q9TO4ehAUL+87WYHq9ckCdqdn0mvIAq85Bk5awew12xg4cUVCZ4hERCsx5ZZWYpJQWjk5WPJux1o45/fQ/hFIKeU7VYGq02/UMX+2ZsAVBZajYf8xpGdm/+L7KcmFWP7EZQmT4Uh5WYlJe+6SuPZvh3/fCR9eHSx5d8cYuOLZhCt2gNE9W1O97P/OwqlRthijexXs4LNpfS6ic9NqFC0cVFPRwoXo0rQa0/pelFAZokEfqEpiWjYCRt0Le7dA695wYV8oXNR3Km8aVytD8SL/ezFWsSJJNK5apkBzVCpdlFIpyaRnZpOSXIj0zGxKpSRTqVTB/b8JQ4ZoULlLYtm9CcbcD0uHQZUmwSIa1Zr6ThUKO/dn0KBySXq2O42Bk1ewY1+Glxxb9qTTtUVtbjq3Fn+ftZY0Dx9ohiFDpHTMXRKDc7DwExjbDzL2Q9u+cH5PDfqSmJCXY+7ac5f4t2MtjLgbVk6Cmi2CQV8VG/hOJZKvVO4Sv7KzYfZbMPHR4PZlz8A5v4NCOo9A4p/KXeLTlhUw7C74cQbUvxiufBHK1vKdSqTAqNwlvmRlwFcDYcrTwTJ3V70OZ92YMFeYivxM5S7xY8PCYG994zfBLJjLnoFSlX2nEvFC5S6xL+MAfPE0TH8Jip8C130IjTv7TiXilcpdYtsPXweLaGxdAU1vhg5PBJMcRRKcyl1iU/pumPgYzH4z+KD05s/h1It9pxIJDZW7xJ7vJwbnre9cBy3+D9o9BCklfacSCRWVu8SOfdtg3IOwcAhUaAC/HQe1WvhOJRJKKneJDUv+DaPvCyY5XnAftLk/oQd9iZyIyl3CbffGoNSXjYCqZwXH1qv+yncqkdBTuUs4OQcLPg4Ow2QcgPaPwnk9IEl/ZEVOht4pEj7b1wQrI62aArXOh84vQ4VTfacSiSkqdwmP7CyY9SZMegysEFzxHJz9Ww36EsmDiN81ZpZkZvPNbGQ0AuWnsKxmHpYcoZK2HN7pCGP7Qu1W8KcZmuCYwMLwHglDhkhE453TC1gWhefJd2FZzTwsOUIhKwOmPgODWgdXmV49GLr+E8rW9J1MPArDeyQMGSIR0UpMZlYDeB94EujtnOt0vPv7WokpLKuZhyVHaPw0Pxj0tWkxnHF1MOirZEXfqcSjMLxHwpDhSHlZiSnSPfcXgT7AL1+JQ6G6m9kcM5uTlpYW4ebyJiyrmYclh3cZ+2HCw/DmxcEC1dd/DNe+p2KXULxHwpAhGvJc7mbWCdjsnJt7vPs55wY751Kdc6kVK/p584ZlNfOw5PBqzXR4vVUwwbFZV7hzJpx+3H/wSQIJw3skDBmiIZKzZVoBnc3scqAoUNrMPnLO3RydaNEVltXMw5KjwB3YFSx3N+dtKFsbbh0G9dp6DiVhFIb3SBgyRCqiY+7/fRKztsB9YT3mLp59Nx5G3gO71kPLP0G7P0OREr5TicSMvBxz13nukn/2boVxD8A3/4CKjaDbBKh5ju9UIgkhKuXunJsCTInGc0kccA6W/AtG3w8HdsCFfeGCeyE5xXcykYShPXeJrl0bYNS9sHwUVGsGnYdBlTN9pxJJOCp3iQ7nYN4HMP4hyEqHS5+AFn/UoC8RT/TOk8htWw0jesLqqVC7NXQeCKfU951KJKGp3CXvsrNg5iCY9DgUSoZOL0Lz2zQPRiQEVO6SN5uXBaMD1s+B0zpApxegTHXfqUQkh8pdcifzIHz5QjDsq2hpuOZtOPMaMPOdTEQOo3KXk7d+brC3vnkpNLkWOg6AEhV8pxKRo1C5y4kd3Af/eRJmvAYlq8CNn0DDBJxiKRJDVO5yfKunwfAesH01nH0HXPIYFC3jO5WInIDKXY7uwM5gLO/c96BcXbhtBNRt4zuViJwklbv80vKxwaCvPRvh/B7Q9kEoUtx3KhHJBZW7HLJ3C4zpC4uHQqXGcP1HUONs36lEJA9U7hKMDlj8GYzpE8xdb/sgtL4Hkov4TiYieaRyT3Q718Oo3vDdWKieCl1egUqn+04lIhFSuSeq7GyY9x6MfxiyM6HDX6HF/0GhJN/JRCQKVO6JaOtKGNEL1kwLzoC5ciCUr+s7lYhEkco9kWRlBhci/edJSCoSlHrzWzU6QCQOqdwTxaYlweiAn+ZBw8vhiuegdDXfqUQkn6jc411mOkx7LvhVtCz85l0442rtrYvEOZV7PPtxNgy/C9K+hV9dHwz6Kl7edyoRKQAq93h0cC9Mzhn0Vboa3PRPaHCp71QiUoBU7vFm1RQY3hN2/ACp3aD9o8HcdRFJKCr3eLF/B0x4KFikunx9uH001GnlO5WIeKJyjwffjoKRvWFvGrS6G9r2g8LFfKcSEY9U7rFsT1owD2bJ51C5Cdz0CVRr5juViISAyj0WOQfffApj+wYfnrbrH+yxJxX2nUxEQkLlHmt2/BjMWv9+AtQ4Nxj0VbGh71QiEjIq91iRnQ1z34EJj4DLho5Pw7m/16AvETkqlXss2PJ9sI7p2q+gXlu48iUoV8dzKBEJM5V7mGVlwtevwJSnIDkFurwKTbtqdICInJDKPaw2LoJhd8KGhdCoUzDoq1QV36lEJEao3MMm4wBMfQamvwjFysN1H0DjLr5TiUiMUbmHydqZwaCvLd/BWTdBhyc16EtE8kTlHgbpe2Dy4zDzDShTA27+DE5t7zuViMSwPJe7mdUEPgCqANnAYOfcS9EKljBWTg6WvNuxFs7tDhc/DCmlfKcSkRgXyZ57JnCvc26emZUC5prZBOfc0ihli2/7t8O4/rDgIzjlNLhjLNQ+z3cqEYkTeS5359wGYEPO17vNbBlQHVC5n8jS4TD6Pti7BVr3hgv7QuGivlOJSByJyjF3M6sDNANmHuVn3YHuALVq1YrG5mLX7k1BqS8bDlWaQNd/QtWzfKcSkTgUcbmbWUngM+Bu59yuI3/unBsMDAZITU11kW4vJjkHC4fA2AcgY39wXP38nhr0JSL5JqJyN7PCBMX+sXPu8+hEijM71sKIu2HlJKjZEjq/DBUb+E4lInEukrNlDHgbWOacez56keJEdjbMfgsmPhqMC7j82WDZu0KFfCcTkQQQyZ57K+AWYJGZLcj53oPOudGRx4pxW1bAsLvgxxlQ/2K48kUom+CfN4hIgYrkbJkvAU2wOlxWBnw1EKY8HSxzd9UgOOsGDfoSkQKnK1SjZcPCYNDXxkXBLJjLn4WSlXynEpEEpXKPVMYB+GIATB8IJSrAdR9C486+U4lIglO5R+KHr4NBX1u/h6Y3Q4cnoFg536lERFTueZK+GyY+BrPfDD4oveVfUL+d71QiIv+lcs+t7ycG563vXAct/gjt+kNKSd+pRET+h8r9ZO3bBuMeDK40rdAQuo2Hmuf6TiUiclQq9xNxDpYOC2bC7N8Obe4PfiWn+E4mInJMKvfj2b0RRt0L346Eqk2DY+tVmvhOJSJyQir3o3EOFnwcHIbJTIf2j8F5d0GSXi4RiQ1qqyNtXxOsjLRqCtRuBVcOhAqn+k4lIpIrKvefZWfBrDdh0mNgSXDF83D2HRr0JSIxSeUOsPlbGN4D1s2CUy8JBn2VqeE7lYhIniV2uWdlwJcvwtS/QZGS8Os3ocm1GvQlIjEvccv9p/nBWN5Ni+GMX8Nlf4OSFX2nEhGJisQr94z9MOUp+OplKFEJbvg7NLrCdyoRkahKrHJfMz04tr5tJTS/DS75CxQr6zuViEjUJUa5H9gVLHc3520oVwduHQ71LvSdSkQk38R/uX83HkbeDbs3BBciXfQgFCnhO5WISL6K33LfuxXG9oNFn0LFRnDdB1Aj1XcqEZECEX/l7hws+RxG94EDO+DCfnBBbw36EpGEEl/lvmsDjOoNy0dDtebQZThUPsN3KhGRAhcf5e4czPsAxj8EWQfh0ieg5Z+gUJLvZCIiXsR+uW9bDSN6wuqpUOcCuPIlOKW+71QiIl7FbrlnZ8HMQTDpcUgqDJ1eDM5d16AvEZEYLfdNS2H4XbB+LjToGExwLFPddyoRkdCIrXLPPAhfPg9Tn4WipeGat+HMazToS0TkCLFT7uvnBoO+Ni8NJjd2HAAlKvhOJSISSuEv94P74D9PwozXoGQVuPEf0LCj71QiIqEW7nJfPS0Y9LV9dbAq0iWPQdEyvlOJiIReOMv9wE6Y8DDMfQ/K1YXbRkLdC3ynEhGJGeEr9+VjYOQ9sGcTnN8D2j4IRYr7TiUiElPCU+57t8CYvrB4KFQ6A274GKqf7TuViEhM8l/uzsGioTCmD6Tvhov+DK3uhuQivpOJiMQsv+W+c30w6Ou7sVA9Fbq8ApVO9xpJRCQe+Cn37GyY9x6MfxhcFnR4Clr8QYO+RESiJKJyN7OOwEtAEvCWc27ACR+0dSWM6AVrpkHdC4NBX+XrRhJDRESOkOdyN7Mk4FXgEmAdMNvMhjvnlh7zQXs2w+vnQ1IKdH4Zmt2i0QEiIvkgkj33c4HvnXOrAMzsE6ALcOxy37Ue6l8PVzwHpatGsGkRETmeSMq9OvDjYbfXAS2OvJOZdQe659xMt5uGLIYhEWw2blQAtvgOERJ6LQ7Ra3GIXotDGub2AZGU+9GOp7hffMO5wcBgADOb45zTKtXotTicXotD9FocotfiEDObk9vHRLKyxTqg5mG3awA/RfB8IiISJZGU+2zgNDOra2ZFgBuA4dGJJSIikcjzYRnnXKaZ3QWMIzgV8h3n3JITPGxwXrcXh/RaHKLX4hC9FofotTgk16+FOfeLw+QiIhLjtJq0iEgcUrmLiMShAil3M+toZsvN7Hsz61cQ2wwjM6tpZv8xs2VmtsTMevnO5JuZJZnZfDMb6TuLT2ZW1syGmtm3OX8+zvOdyRczuyfn/bHYzIaYWVHfmQqSmb1jZpvNbPFh3ytvZhPMbEXO7+VO9Dz5Xu6HjSm4DGgM3GhmjfN7uyGVCdzrnDsdaAncmcCvxc96Act8hwiBl4CxzrlGwFkk6GtiZtWBnkCqc+5MgpM1bvCbqsC9Bxy5UHQ/YJJz7jRgUs7t4yqIPff/jilwzh0Efh5TkHCccxucc/Nyvt5N8Aau7jeVP2ZWA7gCeMt3Fp/MrDTQBngbwDl30Dm3w28qr5KBYmaWDBQnwa6fcc5NBbYd8e0uwPs5X78PXHWi5ymIcj/amIKELbSfmVkdoBkw028Sr14E+gDZvoN4Vg9IA97NOUT1lpmV8B3KB+fceuBZYC2wAdjpnBvvN1UoVHbObYBgJxGodKIHFES5n9SYgkRiZiWBz4C7nXO7fOfxwcw6AZudc3N9ZwmBZKA58Lpzrhmwl5P4Z3c8yjmW3AWoC1QDSpjZzX5TxaaCKHeNKTiMmRUmKPaPnXOf+87jUSugs5mtIThU187MPvIbyZt1wDrn3M//ihtKUPaJqD2w2jmX5pzLAD4HzvecKQw2mVlVgJzfN5/oAQVR7hpTkMPMjOC46jLn3PO+8/jknHvAOVfDOVeH4M/EZOdcQu6hOec2Aj+a2c+T/y7meKOz49taoKWZFc95v1xMgn64fIThwG05X98GDDvRA/J9mb08jimIV62AW4BFZrYg53sPOudGe8wk4dAD+DhnB2gVcIfnPF4452aa2VBgHsHZZfNJsDEEZjYEaAtUMLN1wCPAAOBTM+tG8BfgtSd8Ho0fEBGJP7pCVUQkDqncRUTikMpdRCQOqdxFROKQyl1EJA6p3EVE4pDKXUQkDv0/fW2aTyGli0YAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(measurement_A, measurement_B, \"*\")\n",
"plt.plot([0, 10], [0, 10])\n",
"plt.axis([0, 10, 0, 10])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAP5klEQVR4nO3df6hfd33H8edraUStbtnI3drlR+MgrLOO2u4S0xVGqA76C7M/OoiglTIILXWrQ5DqHxX/62CIq5GGoJ0tlopo6UJNdUUttn+0msY0/RFlwXXm2myJFVOzFl3ce3/c0+Xy7U2/3++95+YbP/f5gC/3/Ph8z/fFIXnl5NxzzjdVhSSpXb816QCSpKVl0UtS4yx6SWqcRS9JjbPoJalxFr0kNW7kok+yIsn3kzw4z7okuSPJoSQHklzab0xJ0kKNc0R/C3DwNOuuAjZ2r+3AnYvMJUnqyUhFn2QtcA3wudMM2QrcU7MeB1YlOb+njJKkRThnxHGfBj4KvPU069cAh+fMz3TLjswdlGQ7s0f8nHvuuX924YUXjhVW7Xv6J8cnHeGs8adrfmfSEXQWevLJJ39aVVPjvGdo0Se5FjhaVU8m2XK6YfMse82zFapqF7ALYHp6uvbu3TtGVC0HG2792qQjnDX23n7NpCPoLJTkP8Z9zyinbi4H3pvkeeBLwBVJvjgwZgZYN2d+LfDCuGEkSf0bWvRV9bGqWltVG4BtwLeq6v0Dw3YD13dX32wGjlfVkcFtSZLOvFHP0b9GkhsBqmonsAe4GjgEvAzc0Es6SdKijVX0VfUI8Eg3vXPO8gJu7jOYJKkf3hkrSY2z6CWpcRa9JDXOopekxln0ktQ4i16SGmfRS1LjLHpJapxFL0mNs+glqXEWvSQ1zqKXpMZZ9JLUOItekhpn0UtS4yx6SWqcRS9JjbPoJalxQ4s+yRuTfDfJU0meTfLJecZsSXI8yf7uddvSxJUkjWuU74z9JXBFVZ1IshJ4LMlDVfX4wLhHq+ra/iNKkhZjaNF3X/x9optd2b1qKUNJkvoz0jn6JCuS7AeOAg9X1RPzDLusO73zUJKLek0pSVqwkYq+qn5dVe8E1gKbkrxjYMg+4IKquhj4DPDAfNtJsj3J3iR7jx07tpjckqQRjXXVTVX9HHgEuHJg+UtVdaKb3gOsTLJ6nvfvqqrpqpqemppaeGpJ0shGuepmKsmqbvpNwHuAHwyMOS9JuulN3XZf7D+uJGlco1x1cz5wd5IVzBb4l6vqwSQ3AlTVTuA64KYkJ4FXgG3dL3ElSRM2ylU3B4BL5lm+c870DmBHv9EkSX3wzlhJapxFL0mNs+glqXEWvSQ1zqKXpMZZ9JLUOItekhpn0UtS4yx6SWqcRS9JjbPoJalxFr0kNc6il6TGWfSS1DiLXpIaZ9FLUuMseklqnEUvSY2z6CWpcUOLPskbk3w3yVNJnk3yyXnGJMkdSQ4lOZDk0qWJK0ka19AvBwd+CVxRVSeSrAQeS/JQVT0+Z8xVwMbu9S7gzu6nJGnChh7R16wT3ezK7lUDw7YC93RjHwdWJTm/36iSpIUY6Rx9khVJ9gNHgYer6omBIWuAw3PmZ7plg9vZnmRvkr3Hjh1baGZJ0hhGKvqq+nVVvRNYC2xK8o6BIZnvbfNsZ1dVTVfV9NTU1PhpJUljG+uqm6r6OfAIcOXAqhlg3Zz5tcALi0omSerFKFfdTCVZ1U2/CXgP8IOBYbuB67urbzYDx6vqSO9pJUljG+Wqm/OBu5OsYPYfhi9X1YNJbgSoqp3AHuBq4BDwMnDDEuWVJI1paNFX1QHgknmW75wzXcDN/UaTJPXBO2MlqXEWvSQ1zqKXpMZZ9JLUOItekhpn0UtS4yx6SWqcRS9JjbPoJalxFr0kNc6il6TGWfSS1DiLXpIaZ9FLUuMseklqnEUvSY2z6CWpcRa9JDVulC8HX5fk20kOJnk2yS3zjNmS5HiS/d3rtqWJK0ka1yhfDn4S+EhV7UvyVuDJJA9X1XMD4x6tqmv7jyhJWoyhR/RVdaSq9nXTvwAOAmuWOpgkqR9jnaNPsgG4BHhintWXJXkqyUNJLjrN+7cn2Ztk77Fjx8YOK0ka38hFn+QtwFeBD1fVSwOr9wEXVNXFwGeAB+bbRlXtqqrpqpqemppaaGZJ0hhGKvokK5kt+Xur6v7B9VX1UlWd6Kb3ACuTrO41qSRpQUa56ibA54GDVfWp04w5rxtHkk3ddl/sM6gkaWFGuermcuADwNNJ9nfLPg6sB6iqncB1wE1JTgKvANuqqpYgryRpTEOLvqoeAzJkzA5gR1+hJEn98c5YSWqcRS9JjbPoJalxFr0kNc6il6TGWfSS1DiLXpIaZ9FLUuMseklqnEUvSY2z6CWpcRa9JDXOopekxln0ktQ4i16SGmfRS1LjLHpJapxFL0mNG+XLwdcl+XaSg0meTXLLPGOS5I4kh5IcSHLp0sSVJI1rlC8HPwl8pKr2JXkr8GSSh6vquTljrgI2dq93AXd2PyVJEzb0iL6qjlTVvm76F8BBYM3AsK3APTXrcWBVkvN7TytJGtsoR/T/L8kG4BLgiYFVa4DDc+ZnumVHBt6/HdgOsH79+vGSSsvMhlu/NukIADx/+zWTjqBFGvmXsUneAnwV+HBVvTS4ep631GsWVO2qqumqmp6amhovqSRpQUYq+iQrmS35e6vq/nmGzADr5syvBV5YfDxJ0mKNctVNgM8DB6vqU6cZthu4vrv6ZjNwvKqOnGasJOkMGuUc/eXAB4Cnk+zvln0cWA9QVTuBPcDVwCHgZeCG/qNKkhZiaNFX1WPMfw5+7pgCbu4rlCSpP94ZK0mNs+glqXEWvSQ1zqKXpMZZ9JLUOItekhpn0UtS4yx6SWqcRS9JjbPoJalxFr0kNc6il6TGWfSS1DiLXpIaZ9FLUuMseklqnEUvSY2z6CWpcaN8OfhdSY4meeY067ckOZ5kf/e6rf+YkqSFGuXLwb8A7ADueZ0xj1bVtb0kkiT1augRfVV9B/jZGcgiSVoCfZ2jvyzJU0keSnLR6QYl2Z5kb5K9x44d6+mjJUmvp4+i3wdcUFUXA58BHjjdwKraVVXTVTU9NTXVw0dLkoZZdNFX1UtVdaKb3gOsTLJ60ckkSb1YdNEnOS9JuulN3TZfXOx2JUn9GHrVTZL7gC3A6iQzwCeAlQBVtRO4DrgpyUngFWBbVdWSJZYkjWVo0VfV+4as38Hs5ZeSpLOQd8ZKUuMseklqnEUvSY2z6CWpcRa9JDXOopekxln0ktQ4i16SGmfRS1LjLHpJapxFL0mNs+glqXEWvSQ1zqKXpMZZ9JLUOItekhpn0UtS4yx6SWrc0KJPcleSo0meOc36JLkjyaEkB5Jc2n9MSdJCjXJE/wXgytdZfxWwsXttB+5cfCxJUl+GFn1VfQf42esM2QrcU7MeB1YlOb+vgJKkxTmnh22sAQ7PmZ/plh0ZHJhkO7NH/axfv76Hj5a01Dbc+rVJR+D526+ZdITfaH38MjbzLKv5BlbVrqqarqrpqampHj5akjRMH0U/A6ybM78WeKGH7UqSetBH0e8Gru+uvtkMHK+q15y2kSRNxtBz9EnuA7YAq5PMAJ8AVgJU1U5gD3A1cAh4GbhhqcJKksY3tOir6n1D1hdwc2+JJEm98s5YSWqcRS9JjbPoJalxFr0kNc6il6TGWfSS1DiLXpIaZ9FLUuMseklqnEUvSY2z6CWpcRa9JDXOopekxln0ktQ4i16SGmfRS1LjLHpJapxFL0mNG6nok1yZ5IdJDiW5dZ71W5IcT7K/e93Wf1RJ0kKM8uXgK4DPAn8JzADfS7K7qp4bGPpoVV27BBklSYswyhH9JuBQVf2oqn4FfAnYurSxJEl9GaXo1wCH58zPdMsGXZbkqSQPJbmol3SSpEUbeuoGyDzLamB+H3BBVZ1IcjXwALDxNRtKtgPbAdavXz9mVEnSQoxyRD8DrJszvxZ4Ye6Aqnqpqk5003uAlUlWD26oqnZV1XRVTU9NTS0itiRpVKMU/feAjUneluQNwDZg99wBSc5Lkm56U7fdF/sOK0ka39BTN1V1MsmHgG8AK4C7qurZJDd263cC1wE3JTkJvAJsq6rB0zuSpAkY5Rz9q6dj9gws2zlnegewo99okqQ+eGesJDXOopekxln0ktQ4i16SGmfRS1LjLHpJapxFL0mNs+glqXEWvSQ1zqKXpMZZ9JLUOItekhpn0UtS4yx6SWqcRS9JjbPoJalxFr0kNc6il6TGWfSS1LiRij7JlUl+mORQklvnWZ8kd3TrDyS5tP+okqSFGFr0SVYAnwWuAt4OvC/J2weGXQVs7F7bgTt7zilJWqBRjug3AYeq6kdV9SvgS8DWgTFbgXtq1uPAqiTn95xVkrQA54wwZg1weM78DPCuEcasAY7MHZRkO7NH/AC/TPLMWGnbtRr46aRDnCXcF6e4Lzr5B/fFHH887htGKfrMs6wWMIaq2gXsAkiyt6qmR/j85rkvTnFfnOK+OMV9cUqSveO+Z5RTNzPAujnza4EXFjBGkjQBoxT994CNSd6W5A3ANmD3wJjdwPXd1TebgeNVdWRwQ5KkM2/oqZuqOpnkQ8A3gBXAXVX1bJIbu/U7gT3A1cAh4GXghhE+e9eCU7fHfXGK++IU98Up7otTxt4XqXrNqXRJUkO8M1aSGmfRS1LjJlL0wx6psFwkWZfk20kOJnk2yS2TzjRJSVYk+X6SByedZdKSrErylSQ/6P58XDbpTJOQ5O+7vxvPJLkvyRsnnelMSnJXkqNz7zlK8ntJHk7yb93P3x22nTNe9CM+UmG5OAl8pKr+BNgM3LyM9wXALcDBSYc4S/wT8PWquhC4mGW4X5KsAf4OmK6qdzB7Mci2yaY6474AXDmw7Fbgm1W1EfhmN/+6JnFEP8ojFZaFqjpSVfu66V8w+5d5zWRTTUaStcA1wOcmnWXSkvw28BfA5wGq6ldV9fPJppqYc4A3JTkHeDPL7P6cqvoO8LOBxVuBu7vpu4G/GradSRT96R6XsKwl2QBcAjwx2SQT82ngo8D/TjrIWeCPgGPAP3ensj6X5NxJhzrTquonwD8CP2b2cSrHq+pfJ5vqrPAHr96n1P38/WFvmETRj/S4hOUkyVuArwIfrqqXJp3nTEtyLXC0qp6cdJazxDnApcCdVXUJ8N+M8N/z1nTnnrcCbwP+EDg3yfsnm+o30ySK3sclzJFkJbMlf29V3T/pPBNyOfDeJM8zeyrviiRfnGykiZoBZqrq1f/dfYXZ4l9u3gP8e1Udq6r/Ae4H/nzCmc4G//Xq04G7n0eHvWESRT/KIxWWhSRh9jzswar61KTzTEpVfayq1lbVBmb/PHyrqpbtkVtV/SdwOMmrTyl8N/DcBCNNyo+BzUne3P1deTfL8JfS89gNfLCb/iDwL8PeMMrTK3t1ukcqnOkcZ4nLgQ8ATyfZ3y37eFXtmWAmnR3+Fri3Oxj6EaM9VqQpVfVEkq8A+5i9Qu37LLNHISS5D9gCrE4yA3wCuB34cpK/YfYfw78euh0fgSBJbfPOWElqnEUvSY2z6CWpcRa9JDXOopekxln0ktQ4i16SGvd/QCY463Fn+hoAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"\n",
"def draw_histogram(data):\n",
" counts, bins = np.histogram(data, bins=10, range=(0,10))\n",
" plt.hist(bins[:-1], bins, weights=counts)\n",
" plt.axis([0, 10, 0, 4])\n",
" plt.show()\n",
" \n",
"draw_histogram(measurement_A)\n",
"draw_histogram(measurement_B)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Correlation\n",
"The data for the following expriment is taken from 1 Altman & Bland, The Statistician 32, 1983, Fig. 1."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"measurement_1 = [130, 132, 138, 145, 148, 150, 155, 160, 161, 170, 175, 178, 182, 182, 188, 195, 195, 200, 200, 204, 210, 210, 215, 220, 200]\n",
"measurement_2 = [122, 130, 135, 132, 140, 151, 145, 150, 160, 150, 160, 179, 168, 175, 187, 170, 182, 179, 195, 190, 180, 195, 210, 190, 200]\n",
"\n",
"plt.plot(measurement_1, measurement_2, \"o\")\n",
"plt.plot([120, 220], [120, 220])\n",
"plt.axis([120, 220, 120, 220])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"r = 0.9435300113035253\n"
]
}
],
"source": [
"# Determining Pearson's correlation coefficient r with a for-loop\n",
"import numpy as np\n",
"\n",
"# get the mean of the measurements\n",
"mean_1 = np.mean(measurement_1)\n",
"mean_2 = np.mean(measurement_2)\n",
"\n",
"# get the number of measurements\n",
"n = len(measurement_1)\n",
"\n",
"# get the standard deviation of the measurements\n",
"std_dev_1 = np.std(measurement_1)\n",
"std_dev_2 = np.std(measurement_2)\n",
"\n",
"# sum the expectation of \n",
"sum = 0\n",
"for m_1, m_2 in zip(measurement_1, measurement_2):\n",
" sum = sum + (m_1 - mean_1) * (m_2 - mean_2) / n\n",
"\n",
"r = sum / (std_dev_1 * std_dev_2)\n",
"\n",
"print (\"r = \" + str(r))"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.9435300113035255, 1.6002440484659832e-12)"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Determine Pearson's r using scipy\n",
"from scipy import stats\n",
"\n",
"stats.pearsonr(measurement_1, measurement_2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bland-Altman plots and the coefficient of repeatability"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"# A function for drawing Bland-Altman plots\n",
"# source https://stackoverflow.com/questions/16399279/bland-altman-plot-in-python\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"def bland_altman_plot(data1, data2, *args, **kwargs):\n",
" data1 = np.asarray(data1)\n",
" data2 = np.asarray(data2)\n",
" mean = np.mean([data1, data2], axis=0)\n",
" diff = data1 - data2 # Difference between data1 and data2\n",
" md = np.mean(diff) # Mean of the difference\n",
" sd = np.std(diff, axis=0) # Standard deviation of the difference\n",
"\n",
" plt.scatter(mean, diff, *args, **kwargs)\n",
" plt.axhline(md, color='gray', linestyle='--')\n",
" plt.axhline(md + 1.96*sd, color='gray', linestyle='--')\n",
" plt.axhline(md - 1.96*sd, color='gray', linestyle='--')"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# draw a Bland-Altman plot\n",
"bland_altman_plot(measurement_1, measurement_2)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# draw a modified Bland-Altman plot with an extended axis\n",
"\n",
"def bland_altman_plot_mod(data1, data2, *args, **kwargs):\n",
" data1 = np.asarray(data1)\n",
" data2 = np.asarray(data2)\n",
" mean = np.mean([data1, data2], axis=0)\n",
" diff = data1 - data2 # Difference between data1 and data2\n",
" md = np.mean(diff) # Mean of the difference\n",
" sd = np.std(diff, axis=0) # Standard deviation of the difference\n",
"\n",
" plt.scatter(mean, diff, *args, **kwargs)\n",
" \n",
"bland_altman_plot_mod(measurement_1, measurement_2)\n",
"plt.axis([0, 250, -30, 30])\n",
"plt.show()"
]
},
{
"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.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"120\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from skimage.io import imread\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"image = imread(\"blobs.tif\")\n",
"from skimage import filters\n",
"\n",
"threshold = filters.threshold_otsu(image)\n",
"print(threshold)\n",
"\n",
"thresholded_image = image >= threshold\n",
"\n",
"plt.imshow(thresholded_image)\n",
"plt.show()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can execute the following block several times to erode the binary image as often as you like. That appears like a cool feature. However, you harm reproducibility of your workflow. From reading this notebook afterwards, you cannot know of often this block was executed. Don't do this at home."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from skimage import morphology\n",
"\n",
"# this is evil: we overwrite the input variable with an eroded image\n",
"thresholded_image = morphology.binary_erosion(thresholded_image)\n",
"\n",
"plt.imshow(thresholded_image)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50.10526315789474"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from skimage import measure\n",
"\n",
"# run connected components analysis\n",
"label_image = measure.label(thresholded_image)\n",
"\n",
"from skimage import measure\n",
"import numpy as np\n",
"\n",
"# analyse objects\n",
"table = measure.regionprops_table(label_image, properties=('area',))\n",
"\n",
"# measure mean area\n",
"np.mean(table['area'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can check if your notebooks do what they descripe by clicking on \"Kernel > Restart and run all\". Do this from time to time!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},