{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Get started with physt\n", "\n", "This tutorial describes some basic features of physt." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Necessary import evil\n", "from physt import binnings, h1, h2, h3\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "np.random.seed(1337) # Have always the same data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting physt (to run)\n", "\n", "I believe you can skip this section but anyway, for the sake of completeness, the default way of installing a relatively stable version of physt is via pip:\n", "\n", "`pip install physt`\n", "\n", "Alternatively, you can download the source code from github (https://github.com/janpipek/physt).\n", "\n", "You will need **numpy** to use physt (required), but there are other packages (optional) that are very useful if you want to use physt at its best: **matplotlib** for plotting (or **bokeh** as a not-so-well supported alternative)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Your first histogram\n", "\n", "If you need to create a histogram, call the `histogram` (or `h1`) function with your data (like heights of people) as the first argument. The default gives a reasonable result..." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=56, dtype=int32)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Basic dataset\n", "heights = [160, 155, 156, 198, 177, 168, 191, 183, 184, 179, 178, 172, 173, 175,\n", " 172, 177, 176, 175, 174, 173, 174, 175, 177, 169, 168, 164, 175, 188,\n", " 178, 174, 173, 181, 185, 166, 162, 163, 171, 165, 180, 189, 166, 163,\n", " 172, 173, 174, 183, 184, 161, 162, 168, 169, 174, 176, 170, 169, 165]\n", "\n", "hist = h1(heights) # Automatically select all settings\n", "hist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...which is an object of the Histogram1D type that holds all the bin information..." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[155. , 159.3],\n", " [159.3, 163.6],\n", " [163.6, 167.9],\n", " [167.9, 172.2],\n", " [172.2, 176.5],\n", " [176.5, 180.8],\n", " [180.8, 185.1],\n", " [185.1, 189.4],\n", " [189.4, 193.7],\n", " [193.7, 198. ]])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bins # All the bins" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2, 6, 5, 11, 15, 7, 6, 2, 1, 1])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.frequencies # All the frequencies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...and provides further features and methods, like plotting for example..." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArYElEQVR4nO3dfXQV9Z3H8c8lgUtAciEhIblLHgCV50QUzFJZJEsWSDGAUBdYpAFZsMqDkF2UuGKhWh60KtWyQFkRXEVbz0IKckxXWUJ0CZRAs+hqA0mD4SnQxSYhQSKQ2T8sV68kkMC9meR3369z5hxm5ndnvvNzzuTjb+bOdViWZQkAAAAtXiu7CwAAAIBvEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBDBdhfwXbW1tTp58qQ6dOggh8NhdzkAAAC2sixL586dk9vtVqtW1x6Ta3bB7uTJk4qJibG7DAAAgGbl2LFj6tq16zXbNLtg16FDB0lfFx8aGmpzNQAAAPaqrKxUTEyMJyNdS7MLdlduv4aGhhLsAAAA/qIhj6jx5QkAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQzQ62OXm5iotLU1ut1sOh0NZWVlXtfnss880ZswYuVwutW/fXoMGDVJpaakv6gUAAEA9Gh3sqqurlZiYqNWrV9e5vri4WEOGDFGvXr2Uk5OjQ4cOafHixWrbtu1NFwsAAID6OSzLsm74ww6Htm7dqnHjxnmWTZo0Sa1bt9a///u/39A2Kysr5XK5VFFRwXvsAABAwGtMNvLpM3a1tbXasWOHbr/9do0cOVKRkZFKSkqq83btFTU1NaqsrPSaAAAA0Hg+DXZnzpxRVVWVVqxYoVGjRuk///M/df/992v8+PHavXt3nZ9Zvny5XC6XZ+J3YgEAAG6MT2/Fnjx5Un/1V3+lyZMna/PmzZ52Y8aMUfv27fXWW29dtY2amhrV1NR45q/8Hhq3YgEAABp3K9anvxXbuXNnBQcHq0+fPl7Le/furY8++qjOzzidTjmdTl+WAQAAEJB8eiu2TZs2GjRokAoLC72WHz58WHFxcb7cFQAAAL6j0SN2VVVVKioq8syXlJSooKBAYWFhio2N1cKFCzVx4kQNHTpUycnJys7O1vbt25WTk+PLugEAAPAdjX7GLicnR8nJyVctT09P18aNGyVJGzZs0PLly3X8+HH17NlTS5cu1dixYxu0fV53AgAA8I3GZKOb+vKEPxDsAAAAvmHbe+wAAABgH4IdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHYBmIzc3V2lpaXK73XI4HMrKyvJaP23aNDkcDq9p1KhR9hQLAM0QwQ5As1FdXa3ExEStXr263jajRo3SqVOnPFNdv0ENAIHKp78VCwA3IzU1Vampqdds43Q6FRUV1UQVAUDLwogdgBYlJydHkZGR6tmzpx555BGdPXvW7pIAoNlgxA5AizFq1CiNHz9e3bp1U3FxsZ588kmlpqYqLy9PQUFBdpcHALYj2AFoMSZNmuT5d//+/ZWQkKAePXooJydHw4cPt7EyAGgeuBULoMXq3r27OnfurKKiIrtLAYBmgWAHoMU6fvy4zp49q+joaLtLAYBmgVuxAJqNqqoqr9G3kpISFRQUKCwsTGFhYVq6dKkmTJigqKgoFRcX6/HHH9ett96qkSNH2lg1ADQfBDsAzUZ+fr6Sk5M98xkZGZKk9PR0rVmzRocOHdKmTZtUXl4ut9utESNG6JlnnpHT6bSrZABoVhyWZVl2F/FtlZWVcrlcqqioUGhoqN3lAAAA2Kox2Yhn7AAAAAxBsAMAADAEz9gBaLT4RTvsLqHJHF0x2u4SAKDBGLEDAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEM0Otjl5uYqLS1NbrdbDodDWVlZ9bb90Y9+JIfDoVWrVt1EiQAAAGiIRge76upqJSYmavXq1ddst3XrVu3du1dut/uGiwMAAEDDBTf2A6mpqUpNTb1mmxMnTmju3Ln67W9/q9GjR99wcQAAAGg4nz9jV1tbq6lTp2rhwoXq27evrzcPAACAejR6xO56Vq5cqeDgYM2bN69B7WtqalRTU+OZr6ys9HVJAAAAAcGnI3YHDhzQz3/+c23cuFEOh6NBn1m+fLlcLpdniomJ8WVJAAAAAcOnwe7DDz/UmTNnFBsbq+DgYAUHB+vzzz/XP/3TPyk+Pr7Oz2RmZqqiosIzHTt2zJclAQAABAyf3oqdOnWqUlJSvJaNHDlSU6dO1fTp0+v8jNPplNPp9GUZAAAAAanRwa6qqkpFRUWe+ZKSEhUUFCgsLEyxsbEKDw/3at+6dWtFRUWpZ8+eN18tAAAA6tXoYJefn6/k5GTPfEZGhiQpPT1dGzdu9FlhAAAAaJxGB7thw4bJsqwGtz969GhjdwEAAIAbwG/FAgAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYIhGB7vc3FylpaXJ7XbL4XAoKyvLs+7ixYt64okn1L9/f7Vv315ut1s//OEPdfLkSV/WDAAAgDo0OthVV1crMTFRq1evvmrd+fPndfDgQS1evFgHDx7Uli1bVFhYqDFjxvikWAAAANQvuLEfSE1NVWpqap3rXC6X3n//fa9lv/jFL3T33XertLRUsbGxN1YlAAAArsvvz9hVVFTI4XCoY8eO/t4VAABAQGv0iF1jXLhwQU888YQmT56s0NDQOtvU1NSopqbGM19ZWenPkgAAAIzltxG7ixcv6u///u9lWZbWrFlTb7vly5fL5XJ5ppiYGH+VBAAAYDS/BLsroe7zzz/X+++/X+9onSRlZmaqoqLCMx07dswfJQEAABjP57dir4S6I0eOaNeuXQoPD79me6fTKafT6esyAAAAAk6jg11VVZWKioo88yUlJSooKFBYWJiio6P1gx/8QAcPHtS7776ry5cvq6ysTJIUFhamNm3a+K5yAAAAeGl0sMvPz1dycrJnPiMjQ5KUnp6uJUuWaNu2bZKkO+64w+tzu3bt0rBhw268UgAAAFxTo4PdsGHDZFlWveuvtQ4AAAD+w2/FAgAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh3QAuTm5iotLU1ut1sOh0NZWVle67ds2aIRI0YoPDxcDodDBQUFttQJALAXwQ5oAaqrq5WYmKjVq1fXu37IkCFauXJlE1cGAGhOfP5bsQB8LzU1VampqfWunzp1qiTp6NGjTVQRAKA5YsQOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBB8KxZoAaqqqlRUVOSZLykpUUFBgcLCwhQbG6svvvhCpaWlOnnypCSpsLBQkhQVFaWoqChbagYAND1G7IAWID8/XwMGDNCAAQMkSRkZGRowYICefvppSdK2bds0YMAAjR49WpI0adIkDRgwQGvXrrWtZgBA02PEDmgBhg0bJsuy6l0/bdo0TZs2rekKAgA0S4zYAQAAGIJgBwAAYAhuxQI+FL9oh90lAAACGCN2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGCIRge73NxcpaWlye12y+FwKCsry2u9ZVl6+umnFR0drZCQEKWkpOjIkSO+qhcAAAD1aHSwq66uVmJiolavXl3n+ueee04vv/yy1q5dq3379ql9+/YaOXKkLly4cNPFAgAAoH7Bjf1AamqqUlNT61xnWZZWrVqlp556SmPHjpUkvf766+rSpYuysrI0adKkm6sWAAAA9fLpM3YlJSUqKytTSkqKZ5nL5VJSUpLy8vLq/ExNTY0qKyu9JgAAADSeT4NdWVmZJKlLly5ey7t06eJZ913Lly+Xy+XyTDExMb4sCQAAIGDY/q3YzMxMVVRUeKZjx47ZXRIAAECL5NNgFxUVJUk6ffq01/LTp0971n2X0+lUaGio1wQAAIDG82mw69atm6KiorRz507PssrKSu3bt0+DBw/25a4AAADwHY3+VmxVVZWKioo88yUlJSooKFBYWJhiY2M1f/58Pfvss7rtttvUrVs3LV68WG63W+PGjfNl3QAAAPiORge7/Px8JScne+YzMjIkSenp6dq4caMef/xxVVdXa9asWSovL9eQIUOUnZ2ttm3b+q5qAAAAXMVhWZZldxHfVllZKZfLpYqKCp63Q4sTv2iH3SXAx46uGG13CQACXGOyke3figUAAIBvEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAM4fNgd/nyZS1evFjdunVTSEiIevTooWeeeUaWZfl6VwAAAPiWYF9vcOXKlVqzZo02bdqkvn37Kj8/X9OnT5fL5dK8efN8vTsAAAD8hc+D3Z49ezR27FiNHj1akhQfH6+33npLv/vd73y9KwAAAHyLz2/Ffu9739POnTt1+PBhSdL//M//6KOPPlJqaqqvdwUAAIBv8fmI3aJFi1RZWalevXopKChIly9f1k9/+lNNmTKlzvY1NTWqqanxzFdWVvq6JAAAgIDg8xG7X//613rzzTe1efNmHTx4UJs2bdLPfvYzbdq0qc72y5cvl8vl8kwxMTG+LgkAACAgOCwff101JiZGixYt0uzZsz3Lnn32Wb3xxhv6wx/+cFX7ukbsYmJiVFFRodDQUF+WBvhd/KIddpcAHzu6YrTdJQAIcJWVlXK5XA3KRj6/FXv+/Hm1auU9EBgUFKTa2to62zudTjmdTl+XAQAAEHB8HuzS0tL005/+VLGxserbt69+//vf68UXX9RDDz3k610BAADgW3we7F555RUtXrxYjz76qM6cOSO3262HH35YTz/9tK93BQAAgG/xebDr0KGDVq1apVWrVvl60wAAALgGfisWAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwBoBuLj4+VwOK6avv0rPgBwPT5/3QkAoPH279+vy5cve+Y/+eQT/d3f/Z0eeOABG6sC0NIQ7ACgGYiIiPCaX7FihXr06KF7773XpooAtETcigWAZuarr77SG2+8oYceekgOh8PucgC0IAQ7AGhmsrKyVF5ermnTptldCoAWhmAHAM3Mq6++qtTUVLndbrtLAdDC8IwdADQjn3/+uT744ANt2bLF7lIAtECM2AFAM/Laa68pMjJSo0ePtrsUAC0QwQ4Amona2lq99tprSk9PV3AwN1QANB7BDgCaiQ8++EClpaV66KGH7C4FQAvF/xICQDMxYsQIWZZldxkAWjBG7AAAAAxBsAMAADAEt2IB4BriF+2wu4QmcXQF38IFTMCIHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgFyBOnDihBx98UOHh4QoJCVH//v2Vn59vd1kAAhDXI8B/gu0uAP735z//Wffcc4+Sk5P13nvvKSIiQkeOHFGnTp3sLg1AgOF6BPgXwS4ArFy5UjExMXrttdc8y7p162ZjRQACFdcjwL+4FRsAtm3bpoEDB+qBBx5QZGSkBgwYoPXr19tdFoAAxPUI8C+CXQD44x//qDVr1ui2227Tb3/7Wz3yyCOaN2+eNm3aZHdpAAIM1yPAv7gVGwBqa2s1cOBALVu2TJI0YMAAffLJJ1q7dq3S09Ntrg5AIOF6BPgXI3YBIDo6Wn369PFa1rt3b5WWltpUEYBAxfUI8C+CXQC45557VFhY6LXs8OHDiouLs6kiAIGK6xHgX34JdryjqHlZsGCB9u7dq2XLlqmoqEibN2/WL3/5S82ePdvu0gAEGK5HgH/5PNhdeUdR69at9d577+nTTz/VCy+8wDuKbDRo0CBt3bpVb731lvr166dnnnlGq1at0pQpU+wuDUCA4XoE+JfDsizLlxtctGiR/vu//1sffvjhDX2+srJSLpdLFRUVCg0N9WVpgN/FL9phdwnADTm6YrTdJQCoR2Oykc9H7HhHEQAAgD18Huwa+46impoaVVZWek0AAABoPJ/fim3Tpo0GDhyoPXv2eJbNmzdP+/fvV15e3lXtlyxZoqVLl161PFBuxQbKrbtAuc0TKP89gZYqUK5FMIutt2Ib+46izMxMVVRUeKZjx475uiQAAICA4PNfnmjsO4qcTqecTqevywAAAAg4Ph+x4x1FAAAA9vB5sOMdRQAAAPbw+a1YSbrvvvt03333+WPTAAAAqAe/FQsAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdjLJkyRI5HA6vqVevXnaXBQBAk/DL604AO/Xt21cffPCBZz44mNMcABAY+IsH4wQHBysqKsruMgAAaHLcioVxjhw5Irfbre7du2vKlCkqLS21uyQAAJoEwQ5GSUpK0saNG5Wdna01a9aopKREf/M3f6Nz587ZXRoAAH7HrVgYJTU11fPvhIQEJSUlKS4uTr/+9a81Y8YMGysDAMD/GLGD0Tp27Kjbb79dRUVFdpcCAIDfEexgtKqqKhUXFys6OtruUgAA8DuCHYzyz//8z9q9e7eOHj2qPXv26P7771dQUJAmT55sd2kAAPgdz9jBKMePH9fkyZN19uxZRUREaMiQIdq7d68iIiLsLg0AAL8j2MEob7/9tt0lAABgG27FAgAAGIJgBwAAYAhuxaJJxC/aYXcJAAAYjxE7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQfg92K1askMPh0Pz58/29KwAAgIDm12C3f/9+rVu3TgkJCf7cDQAAAOTHYFdVVaUpU6Zo/fr16tSpk792AwAAgL/wW7CbPXu2Ro8erZSUlGu2q6mpUWVlpdcEAACAxgv2x0bffvttHTx4UPv3779u2+XLl2vp0qX+KAMAACCg+HzE7tixY3rsscf05ptvqm3bttdtn5mZqYqKCs907NgxX5cEAAAQEHw+YnfgwAGdOXNGd955p2fZ5cuXlZubq1/84heqqalRUFCQZ53T6ZTT6fR1GQAAAAHH58Fu+PDh+vjjj72WTZ8+Xb169dITTzzhFeoAAADgOz4Pdh06dFC/fv28lrVv317h4eFXLQcAAIDv8MsTAAAAhvDLt2K/Kycnpyl2AwAAENAYsQMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwREAHu+XLl2vQoEHq0KGDIiMjNW7cOBUWFtpdFgCghePvC+wS0MFu9+7dmj17tvbu3av3339fFy9e1IgRI1RdXW13aQCAFoy/L7CLw7Isy+4ivq2yslIul0sVFRUKDQ1t0n3/6U9/UmRkpHbv3q2hQ4c2yT7jF+1okv0AAKSjK0bbsl87/r7AHI3JRgE9YvddFRUVkqSwsDCbKwEAmIS/L2gqBLu/qK2t1fz583XPPfeoX79+dpcDADAEf1/QlILtLqC5mD17tj755BN99NFHdpcCADAIf1/QlAh2kubMmaN3331Xubm56tq1q93lAAAMwd8XNLWADnaWZWnu3LnaunWrcnJy1K1bN7tLAgAYgL8vsEtAB7vZs2dr8+bN+s1vfqMOHTqorKxMkuRyuRQSEmJzdQCAloq/L7CLz7880ZJeyrhmzRpVVFRo2LBhio6O9ky/+tWv7C4NANCC8fcFdvH5iN2VlzIOGjRIly5d0pNPPqkRI0bo008/Vfv27X29u5vSzF7hBwAwBH9fYBefB7vs7Gyv+Y0bNyoyMlIHDhzgpYwAAAB+5Pdn7K73UsaamhrV1NR45isrK/1dEgAAgJH8+pNitbW1GjNmjMrLy+t9f8+SJUu0dOnSq5bHzP+1Wjnb+as0AACMZddPp8E/ms1Pil15KePbb79db5vMzExVVFR4pmPHjvmzJAAAAGP57VZsQ1/K6HQ65XQ6/VUGAABAwPB5sOOljAAAAPbwebDjpYwAAAD28PkzdryUEQAAwB5+uRULAACApufXb8UCAACg6RDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAwA3Lzc1VWlqa3G63HA6HsrKy7C7JL1rKcRLsAADADauurlZiYqJWr15tdyl+1VKO02+/FQsAAMyXmpqq1NRUu8vwu5ZynIzYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCb8UCAIAbVlVVpaKiIs98SUmJCgoKFBYWptjYWBsr862WcpwEOwAAcMPy8/OVnJzsmc/IyJAkpaena+PGjTZV5Xst5TgJdgAA4IYNGzZMlmXZXYbftZTj5Bk7AAAAQxDsAAAADMGtWAAADBO/aIfdJcCHamvON7gtI3YAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAi/BbvVq1crPj5ebdu2VVJSkn73u9/5a1cAAACQn4Ldr371K2VkZOjHP/6xDh48qMTERI0cOVJnzpzxx+4AAAAgPwW7F198UTNnztT06dPVp08frV27Vu3atdOGDRv8sTsAAADID8Huq6++0oEDB5SSkvLNTlq1UkpKivLy8ny9OwAAAPxFsK83+H//93+6fPmyunTp4rW8S5cu+sMf/nBV+5qaGtXU1HjmKyoqJEm1Ned9XRoAAECLcyUTWZZ13bY+D3aNtXz5ci1duvSq5SfWTGv6YgAAAJqpc+fOyeVyXbONz4Nd586dFRQUpNOnT3stP336tKKioq5qn5mZqYyMDM98eXm54uLiVFpaet3iA0FlZaViYmJ07NgxhYaG2l2O7egPb/THN+gLb/SHN/rDG/3xjZbQF5Zl6dy5c3K73ddt6/Ng16ZNG911113auXOnxo0bJ0mqra3Vzp07NWfOnKvaO51OOZ3Oq5a7XK5m28F2CA0NpT++hf7wRn98g77wRn94oz+80R/faO590dDBLr/cis3IyFB6eroGDhyou+++W6tWrVJ1dbWmT5/uj90BAABAfgp2EydO1J/+9Cc9/fTTKisr0x133KHs7OyrvlABAAAA3/HblyfmzJlT563X63E6nfrxj39c5+3ZQER/eKM/vNEf36AvvNEf3ugPb/THN0zrC4fVkO/OAgAAoNnz22/FAgAAoGkR7AAAAAxBsAMAADBEkwW73NxcpaWlye12y+FwKCsry2v9tGnT5HA4vKZRo0Z5tYmPj7+qzYoVK5rqEHzqev0hSZ999pnGjBkjl8ul9u3ba9CgQSotLfWsv3DhgmbPnq3w8HDdcsstmjBhwlUvhm4JfNEXw4YNu+rc+NGPftSER+E71+uP7x7nlen555/3tPniiy80ZcoUhYaGqmPHjpoxY4aqqqqa+Eh8wxf9Ycq143p9UVVVpTlz5qhr164KCQlRnz59tHbtWq82plw3JN/0RyBdO06fPq1p06bJ7XarXbt2GjVqlI4cOeLVJpDOj4b0R0s8P5os2FVXVysxMVGrV6+ut82oUaN06tQpz/TWW29d1eYnP/mJV5u5c+f6s2y/uV5/FBcXa8iQIerVq5dycnJ06NAhLV68WG3btvW0WbBggbZv36533nlHu3fv1smTJzV+/PimOgSf8UVfSNLMmTO9zo3nnnuuKcr3uev1x7eP8dSpU9qwYYMcDocmTJjgaTNlyhT97//+r95//329++67ys3N1axZs5rqEHzKF/0hmXHtuF5fZGRkKDs7W2+88YY+++wzzZ8/X3PmzNG2bds8bUy5bki+6Q8pMK4dlmVp3Lhx+uMf/6jf/OY3+v3vf6+4uDilpKSourra0y5Qzo+G9ofUAs8PywaSrK1bt3otS09Pt8aOHXvNz8XFxVkvvfSS3+qyS139MXHiROvBBx+s9zPl5eVW69atrXfeecez7LPPPrMkWXl5ef4q1e9upC8sy7Luvfde67HHHvNfYTapqz++a+zYsdbf/u3feuY//fRTS5K1f/9+z7L33nvPcjgc1okTJ/xVapO4kf6wLDOvHXX1Rd++fa2f/OQnXsvuvPNO61/+5V8syzL3umFZN9YflhU4147CwkJLkvXJJ594ll2+fNmKiIiw1q9fb1lWYJ0fDekPy2qZ50ezesYuJydHkZGR6tmzpx555BGdPXv2qjYrVqxQeHi4BgwYoOeff16XLl2yoVL/qq2t1Y4dO3T77bdr5MiRioyMVFJSktcw8oEDB3Tx4kWlpKR4lvXq1UuxsbHKy8uzoWr/aEhfXPHmm2+qc+fO6tevnzIzM3X+/PmmL7iJnT59Wjt27NCMGTM8y/Ly8tSxY0cNHDjQsywlJUWtWrXSvn377CizydTVH1cEwrXje9/7nrZt26YTJ07Isizt2rVLhw8f1ogRIyQFznXjiuv1xxWBcO2oqamRJK87Ha1atZLT6dRHH30kKbDOj4b0xxUt7fzw2wuKG2vUqFEaP368unXrpuLiYj355JNKTU1VXl6egoKCJEnz5s3TnXfeqbCwMO3Zs0eZmZk6deqUXnzxRZur960zZ86oqqpKK1as0LPPPquVK1cqOztb48eP165du3TvvfeqrKxMbdq0UceOHb0+26VLF5WVldlTuB80pC8k6R/+4R8UFxcnt9utQ4cO6YknnlBhYaG2bNli8xH416ZNm9ShQwevWyVlZWWKjIz0ahccHKywsDCjzo261NUfUuBcO1555RXNmjVLXbt2VXBwsFq1aqX169dr6NChkhQw140rrtcfUuBcO64EtMzMTK1bt07t27fXSy+9pOPHj+vUqVOSAuv8aEh/SC3z/Gg2wW7SpEmef/fv318JCQnq0aOHcnJyNHz4cElfPy9xRUJCgtq0aaOHH35Yy5cvN+aN0dLXo1SSNHbsWC1YsECSdMcdd2jPnj1au3atJ8wEgob2xbefH+vfv7+io6M1fPhwFRcXq0ePHk1feBPZsGGDpkyZctXzhoGqvv4IlGvHK6+8or1792rbtm2Ki4tTbm6uZs+eLbfb7TUKEyga0h+Bcu1o3bq1tmzZohkzZigsLExBQUFKSUlRamqqrAD8nYKG9kdLPD+a1a3Yb+vevbs6d+6soqKietskJSXp0qVLOnr0aNMV1gQ6d+6s4OBg9enTx2t57969Pd8EjYqK0ldffaXy8nKvNqdPn1ZUVFRTlep3DemLuiQlJUnSNc+flu7DDz9UYWGh/vEf/9FreVRUlM6cOeO17NKlS/riiy+MOje+q77+qIuJ144vv/xSTz75pF588UWlpaUpISFBc+bM0cSJE/Wzn/1MUuBcN6SG9UddTL523HXXXSooKFB5eblOnTql7OxsnT17Vt27d5cUWOeHdP3+qEtLOD+abbA7fvy4zp49q+jo6HrbFBQUqFWrVlfddmrp2rRpo0GDBqmwsNBr+eHDhxUXFyfp6xOydevW2rlzp2d9YWGhSktLNXjw4Cat158a0hd1KSgokKRrnj8t3auvvqq77rpLiYmJXssHDx6s8vJyHThwwLPsv/7rv1RbW+u5KJmovv6oi4nXjosXL+rixYtq1cr7sh4UFOQZ+Q6U64bUsP6oSyBcO1wulyIiInTkyBHl5+dr7NixkgLr/Pi2+vqjLi3h/GiyW7FVVVVeCbekpEQFBQUKCwtTWFiYli5dqgkTJigqKkrFxcV6/PHHdeutt2rkyJGSvn4gfN++fUpOTlaHDh2Ul5enBQsW6MEHH1SnTp2a6jB85lr9ERsbq4ULF2rixIkaOnSokpOTlZ2dre3btysnJ0fS1yfijBkzlJGRobCwMIWGhmru3LkaPHiw/vqv/9qmo7oxN9sXxcXF2rx5s77//e8rPDxchw4d0oIFCzR06FAlJCTYdFQ37nr9IUmVlZV655139MILL1z1+d69e2vUqFGaOXOm1q5dq4sXL2rOnDmaNGmS3G53kx2Hr9xsf5h07bheX9x7771auHChQkJCFBcXp927d+v111/3PEto0nVDuvn+CLRrxzvvvKOIiAjFxsbq448/1mOPPaZx48Z5vkwSaOfH9fqjxZ4fTfX12127dlmSrprS09Ot8+fPWyNGjLAiIiKs1q1bW3FxcdbMmTOtsrIyz+cPHDhgJSUlWS6Xy2rbtq3Vu3dva9myZdaFCxea6hB86lr9ccWrr75q3XrrrVbbtm2txMREKysry2sbX375pfXoo49anTp1stq1a2fdf//91qlTp5r4SG7ezfZFaWmpNXToUCssLMxyOp3Wrbfeai1cuNCqqKiw4WhuXkP6Y926dVZISIhVXl5e5zbOnj1rTZ482brlllus0NBQa/r06da5c+ea6Ah862b7w6Rrx/X64tSpU9a0adMst9tttW3b1urZs6f1wgsvWLW1tZ5tmHLdsKyb749Au3b8/Oc/t7p27Wq1bt3aio2NtZ566imrpqbGaxuBdH5crz9a6vnhsKwAfGoSAADAQM32GTsAAAA0DsEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAOAesTHx2vVqlV2lwEADUawA4B67N+/X7NmzWpQW8uy9PTTTys6OlohISFKSUnRkSNH/FwhAHgj2AFAPSIiItSuXbsGtX3uuef08ssva+3atdq3b5/at2+vkSNH6sKFC36uEgC+QbADYKzs7GwNGTJEHTt2VHh4uO677z4VFxdLkl5//XXdcsstXqNqjz76qHr16qXz589L8r4Va1mWlixZotjYWDmdTrndbs2bN8+zbtWqVXrqqac0duxYJSQk6PXXX9fJkyeVlZXVpMcMILAR7AAYq7q6WhkZGcrPz9fOnTvVqlUr3X///aqtrdUPf/hDff/739eUKVN06dIl7dixQ//2b/+mN998s85Ruv/4j//QSy+9pHXr1unIkSPKyspS//79JUklJSUqKytTSkqKp73L5VJSUpLy8vKa7HgBINjuAgDAXyZMmOA1v2HDBkVEROjTTz9Vv379tG7dOiUkJGjevHnasmWLlixZorvuuqvObZWWlioqKkopKSlq3bq1YmNjdffdd0uSysrKJEldunTx+kyXLl086wCgKTBiB8BYR44c0eTJk9W9e3eFhoYqPj5e0tchTZI6deqkV199VWvWrFGPHj20aNGierf1wAMP6Msvv1T37t01c+ZMbd26VZcuXWqKwwCABiPYATBWWlqavvjiC61fv1779u3Tvn37JElfffWVp01ubq6CgoJ06tQpVVdX17utmJgYFRYW6l//9V8VEhKiRx99VEOHDtXFixcVFRUlSTp9+rTXZ06fPu1ZBwBNgWAHwEhnz55VYWGhnnrqKQ0fPly9e/fWn//8Z682e/bs0cqVK7V9+3bdcsstmjNnzjW3GRISorS0NL388svKyclRXl6ePv74Y3Xr1k1RUVHauXOnp21lZaX27dunwYMH++X4AKAuPGMHwEidOnVSeHi4fvnLXyo6OlqlpaVet1rPnTunqVOnat68eUpNTVXXrl01aNAgpaWl6Qc/+MFV29u4caMuX76spKQktWvXTm+88YZCQkIUFxcnh8Oh+fPn69lnn9Vtt92mbt26afHixXK73Ro3blwTHjWAQMeIHQAjtWrVSm+//bYOHDigfv36acGCBXr++ec96x977DG1b99ey5YtkyT1799fy5Yt08MPP6wTJ05ctb2OHTtq/fr1uueee5SQkKAPPvhA27dvV3h4uCTp8ccf19y5czVr1iwNGjRIVVVVys7OVtu2bZvmgAFAksOyLMvuIgAAAHDzGLEDAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAM8f/FLexRP2Rt8AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(show_values=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...or adding new values (note that this is something numpy.histogram won't do for you)..." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=64, dtype=int32)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0s0lEQVR4nO3deXQUZb7/8U9nobOQdAgQklwSEsRhkU0EEfBouOYSGEQ2x2VAARlwYWdEYJQlCCIiI446wGAEvKKDHgEV7+TqcA1BQQwwER2ZCBGEkQTmp5I2xMQA9fsD6aFJAgSq08mT9+ucPidd9VTVtx7qFJ/z1NIOy7IsAQAAoM4L8HcBAAAAsAfBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMEeTvAs53+vRpHTlyRBEREXI4HP4uBwAAwK8sy9IPP/yg+Ph4BQRceEyu1gW7I0eOKCEhwd9lAAAA1CqHDx9W8+bNL9im1gW7iIgISWeKj4yM9HM1AAAA/uV2u5WQkODJSBdS64Ld2cuvkZGRBDsAAICfXcotajw8AQAAYAiCHQAAgCEIdgAAAIaodffYAQBgqlOnTqm8vNzfZaCWCQ4OVmBgoC3rItgBAOBjlmWpsLBQx48f93cpqKWioqIUGxt7xe/wrXawy87O1uLFi7Vr1y4VFBRow4YNGjRokFebvXv3avr06dqyZYtOnjypdu3a6c0331RiYuIVFQsAQF10NtTFxMQoLCyMF/DDw7IslZSU6NixY5KkuLi4K1pftYPdiRMn1KlTJ913330aMmRIhfn5+fm68cYbNXr0aKWnpysyMlJ///vfFRISckWFAgBQF506dcoT6ho3buzvclALhYaGSpKOHTummJiYK7osW+1g169fP/Xr16/K+Y8++qh++ctf6qmnnvJMu+qqqy6vOgAA6riz99SFhYX5uRLUZmePj/Ly8isKdrY+FXv69Gm9++67+sUvfqG0tDTFxMSoe/fu2rhxY5XLlJWVye12e30AADANl19xIXYdH7YGu2PHjqm4uFhPPvmk+vbtq/fee0+DBw/WkCFDtGXLlkqXWbhwoVwul+fD78QCAABcHttH7CRp4MCBmjJlijp37qwZM2bo1ltv1fLlyytdZubMmSoqKvJ8Dh8+bGdJAADARyzL0tixYxUdHS2Hw6Hc3Fyfb7OkpERDhw5VZGSkHA6Hjh8/rqSkJC1dutTTxuFweK4WHjx4sMZqqw1sfd1JkyZNFBQUpHbt2nlNb9u2rT788MNKl3E6nXI6nXaWAQBArZc0490a3d7BJ/tf1nLbt2/XjTfeqL59++rdd71rzszM1OrVq5WVlaWWLVuqSZMmcjgclb4xwy5r1qzR1q1btW3bNjVp0kQul0s5OTkKDw/3yfbqGltH7Bo0aKBu3bopLy/Pa/qXX36pFi1a2LkpAABQAzIyMjRhwgRlZ2fryJEjXvPy8/MVFxennj17KjY2VkFB9o0XVfUi5/z8fLVt21bt27f3vPetadOmPJzys2oHu+LiYuXm5nqGNA8cOKDc3FwdOnRIkjRt2jStW7dOK1eu1P79+/X888/rnXfe0UMPPWRr4QAAwLeKi4u1bt06Pfjgg+rfv79Wr17tmTdy5EhNmDBBhw4dksPhUFJSkpKSkiRJgwcP9kw766233lKXLl0UEhKili1bKj09XSdPnvTMdzgcWrZsmW677TaFh4drwYIFFepJSUnRkiVLlJ2dLYfDoZSUFEmqcCn2cmVlZcnhcGjz5s3q2rWrwsLC1LNnzwoDVrVZtYPdzp07de211+raa6+VJE2dOlXXXnutZs+eLenMP+by5cv11FNPqUOHDnrxxRf15ptv6sYbb7S3cgAA4FOvv/662rRpo9atW2v48OF66aWXZFmWJOnZZ5/VvHnz1Lx5cxUUFCgnJ0c5OTmSpFWrVnmmSdLWrVt17733atKkSfriiy+0YsUKrV69ukJ4mzt3rgYPHqzPPvtM9913X4V61q9frzFjxqhHjx4qKCjQ+vXrfbLfjz76qJYsWaKdO3cqKCio0lpqq2qPmaakpHj+Uaty33331alOAAAAFWVkZGj48OGSpL59+6qoqEhbtmxRSkqKXC6XIiIiFBgYqNjYWK/lzv481lnp6emaMWOGRowYIUlq2bKlHn/8cT3yyCOaM2eOp92vf/1rjRo1qsp6oqOjFRYWpgYNGlTYpp0WLFigm2++WZI0Y8YM9e/fX6WlpXXixxZsvccOAACYIS8vT5988onuvvtuSVJQUJDuvPNOZWRkVHtdn376qebNm6eGDRt6PmPGjFFBQYFKSko87bp27Wpb/VeiY8eOnr/P/sTX2Z/8qu1sfSoWAACYISMjQydPnlR8fLxnmmVZcjqdev755+VyuS55XcXFxUpPT6/0p0jPHQWrLU+2BgcHe/4+++Lgs690q+0IdgAAwMvJkyf18ssva8mSJerTp4/XvEGDBum1117TAw88UOmywcHBOnXqlNe0Ll26KC8vT61atfJZzTiDYAcAALxs2rRJ33//vUaPHl1hZG7o0KHKyMioMtglJSVp8+bN6tWrl5xOpxo1aqTZs2fr1ltvVWJiom6//XYFBATo008/1eeff6758+fXxC7VG9xjBwAAvGRkZCg1NbXSy61Dhw7Vzp07tWfPnkqXXbJkid5//30lJCR43qCRlpamTZs26b333lO3bt10ww036JlnnuEdtz7gsC72iGsNc7vdcrlcKioqUmRkpL/LAQDgipSWlurAgQNKTk6uE09Vwj8udJxUJxsxYgcAAGAIgh0AAKgXHnjgAa9Xrpz7qeqewbqGhycAAEC9MG/ePD388MOVzjPl9i+CHQAAqBdiYmIUExPj7zJ8ikuxAAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAgMtiWZbGjh2r6OhoORwO5ebm+nybJSUlGjp0qCIjI+VwOHT8+HElJSVp6dKlnjYOh0MbN26UJB08eLDGaqsNCHYAAPiFo4Y/l2f79u0KDAxU//79K8zLzMzU6tWrtWnTJhUUFKh9+/ZeocoX1qxZo61bt2rbtm0qKCiQy+VSTk6Oxo4d67Nt1iUEOwAAUKWMjAxNmDBB2dnZOnLkiNe8/Px8xcXFqWfPnoqNjVVQkH2vxy0vL690en5+vtq2bav27dsrNjZWDodDTZs2VVhYmG3brssIdgCqz+GoPx+gHisuLta6dev04IMPqn///lq9erVn3siRIzVhwgQdOnRIDodDSUlJSkpKkiQNHjzYM+2st956S126dFFISIhatmyp9PR0nTx50jPf4XBo2bJluu222xQeHq4FCxZUqCclJUVLlixRdna2HA6HUlJSJKnCpdj6jGAHAAAq9frrr6tNmzZq3bq1hg8frpdeekmWZUmSnn32Wc2bN0/NmzdXQUGBcnJylJOTI0latWqVZ5okbd26Vffee68mTZqkL774QitWrNDq1asrhLe5c+dq8ODB+uyzz3TfffdVqGf9+vUaM2aMevTooYKCAq1fv97HPVD38JNiAACgUhkZGRo+fLgkqW/fvioqKtKWLVuUkpIil8uliIgIBQYGKjY21mu5qKgor2np6emaMWOGRowYIUlq2bKlHn/8cT3yyCOaM2eOp92vf/1rjRo1qsp6oqOjFRYWpgYNGlTYJs4g2AEAgAry8vL0ySefaMOGDZKkoKAg3XnnncrIyPBcAr1Un376qT766COvEbpTp06ptLRUJSUlnvvjunbtalv99RXBDgAAVJCRkaGTJ08qPj7eM82yLDmdTj3//PNyuVyXvK7i4mKlp6dryJAhFeaFhIR4/g4PD7+yokGwAwAA3k6ePKmXX35ZS5YsUZ8+fbzmDRo0SK+99poeeOCBSpcNDg7WqVOnvKZ16dJFeXl5atWqlc9qxhkEOwAA4GXTpk36/vvvNXr06Aojc0OHDlVGRkaVwS4pKUmbN29Wr1695HQ61ahRI82ePVu33nqrEhMTdfvttysgIECffvqpPv/8c82fP78mdqne4KlYAADgJSMjQ6mpqZVebh06dKh27typPXv2VLrskiVL9P777yshIUHXXnutJCktLU2bNm3Se++9p27duumGG27QM888oxYtWvh0P+ojh3X2ueVawu12y+VyqaioSJGRkf4uB0Bl6tP73WrXKRJ1UGlpqQ4cOKDk5GSv+8mAc13oOKlONmLEDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AADgU3PnzlWzZs3kcDi0cePGGt22ZVkaO3asoqOj5XA4lJubq5SUFE2ePNnTJikpSUuXLvV8P7fOgwcPeparC4L8XQAAAPVSTf80XzV/Hm/kyJFas2aN53t0dLS6deump556Sh07drzk9ezdu1fp6enasGGDbrjhBjVq1KhadVypzMxMrV69WllZWWrZsqWaNGmi9evXKzg4+JKWT0hIUEFBgZo0aeLjSu1R7RG77OxsDRgwQPHx8RdN3g888IAcDodXCgYAAHVD3759VVBQoIKCAm3evFlBQUG69dZbq7WO/Px8SdLAgQMVGxsrp9N5WbWUl5df1nL5+fmKi4tTz549FRsbq6CgIEVHRysiIuKSlg8MDPQsVxdUO9idOHFCnTp10gsvvHDBdhs2bNDHH3+s+Pj4yy4OAAD4j9PpVGxsrGJjY9W5c2fNmDFDhw8f1r/+9S9Pm8OHD+uOO+5QVFSUoqOjNXDgQB08eFDSmUuwAwYMkCQFBATI8fMo5enTpzVv3jw1b95cTqdTnTt3VmZmpmedZy9/rlu3TjfffLNCQkK0du1aSdKLL76otm3bKiQkRG3atNEf//jHKusfOXKkJkyYoEOHDsnhcCgpKUmSKlyKvZDzL8VmZWXJ4XBo8+bN6tq1q8LCwtSzZ0/l5eV5LTd//nzFxMQoIiJCv/nNbzRjxgx17tz5krZ5Jaod7Pr166f58+dr8ODBVbb55ptvNGHCBK1du/aShzoBAEDtVVxcrFdeeUWtWrVS48aNJZ0ZRUtLS1NERIS2bt2qjz76SA0bNlTfvn31008/6eGHH9aqVaskyTPyJ0nPPvuslixZoqefflp79uxRWlqabrvtNu3bt89rmzNmzNCkSZO0d+9epaWlae3atZo9e7YWLFigvXv36oknntCsWbO8Lhmf69lnn/UEyIKCAuXk5NjWH48++qiWLFminTt3KigoSPfdd59n3tq1a7VgwQItWrRIu3btUmJiopYtW2bbti/E9nHF06dP65577tG0adN0zTXX2L16AABQQzZt2qSGDRtKOnPFLi4uTps2bVJAwJlxoXXr1un06dN68cUXPaNxq1atUlRUlLKystSnTx9FRUVJkmJjYz3rffrppzV9+nTdddddkqRFixbpgw8+0NKlS72uCE6ePFlDhgzxfJ8zZ46WLFnimZacnKwvvvhCK1as0IgRIyrU73K5FBER4bmcaqcFCxbo5ptvlnQmgPbv31+lpaUKCQnRc889p9GjR2vUqFGSpNmzZ+u9995TcXGxrTVUxvanYhctWqSgoCBNnDjxktqXlZXJ7XZ7fQAAgP/17t1bubm5ys3N1SeffKK0tDT169dPX3/9tSTp008/1f79+xUREaGGDRuqYcOGio6OVmlpqefeuvO53W4dOXJEvXr18preq1cv7d2712ta165dPX+fOHFC+fn5Gj16tGdbDRs21Pz586vcli+d+wBJXFycJOnYsWOSpLy8PF1//fVe7c//7iu2jtjt2rVLzz77rHbv3u1J7hezcOFCpaen21kGAACwQXh4uFq1auX5/uKLL8rlcmnlypWaP3++iouLdd1113nufztX06ZNbdn+WWdHu1auXKnu3bt7tQsMDLzibVXXubeanXvvoL/ZOmK3detWHTt2TImJiQoKClJQUJC+/vpr/fa3v/XcsHi+mTNnqqioyPM5fPiwnSUBAACbOBwOBQQE6Mcff5QkdenSRfv27VNMTIxatWrl9XG5XJWuIzIyUvHx8froo4+8pn/00Udq165dldtu1qyZ4uPj9dVXX1XYVnJysn07aYPWrVtXuJ/Pzvv7LsTWEbt77rlHqampXtPS0tJ0zz33eK4zn8/pdF72o88AAMB3ysrKVFhYKEn6/vvv9fzzz6u4uNjzpOuwYcO0ePFiDRw40POQwtdff63169frkUceUfPmzStd77Rp0zRnzhxdddVV6ty5s1atWqXc3NxKR/7OlZ6erokTJ8rlcqlv374qKyvTzp079f3332vq1Kn27vwVmDBhgsaMGaOuXbuqZ8+eWrdunfbs2aOWLVv6fNvVDnbFxcXav3+/5/uBAweUm5ur6OhoJSYmep6UOSs4OFixsbFq3br1lVcLAABqTGZmpuf+sYiICLVp00ZvvPGGUlJSJElhYWHKzs7W9OnTNWTIEP3www/6j//4D91yyy2KjIyscr0TJ05UUVGRfvvb3+rYsWNq166d3n77bV199dUXrOc3v/mNwsLCtHjxYk2bNk3h4eHq0KHDJb+6pKYMGzZMX331lR5++GGVlpbqjjvu0MiRI/XJJ5/4fNsOy6req6izsrLUu3fvCtNHjBih1atXV5ielJSkyZMnX3Knu91uuVwuFRUVXfCgAOBHNf3GfH+q5tv6gfOVlpbqwIEDSk5OVkhIiL/LgZ/813/9l2JjY/Xf//3flc6/0HFSnWxU7RG7lJQUVScLnn1JIQAAQH1QUlKi5cuXKy0tTYGBgXrttdf017/+Ve+//77Pt103fh8DAACgjnA4HPqf//kfLViwQKWlpWrdurXefPPNCs8h+ALBDgAAwEahoaH661//6pdt2/6CYgAAAPgHwQ4AgBpQzWcVUc/YdXwQ7AAA8KGzv1BQUlLi50pQm509Ps79RYvLwT12AAD4UGBgoKKiojy/IxoWFnbJP7sJ81mWpZKSEh07dkxRUVFX/PNoBDsAAHwsNjZW0r9/JB44X1RUlOc4uRIEOwAAfMzhcCguLk4xMTEqLy/3dzmoZYKDg694pO4sgh0AADUkMDDQtv/Agcrw8AQAAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIaod7LKzszVgwADFx8fL4XBo48aNnnnl5eWaPn26OnTooPDwcMXHx+vee+/VkSNH7KwZAAAAlah2sDtx4oQ6deqkF154ocK8kpIS7d69W7NmzdLu3bu1fv165eXl6bbbbrOlWAAAAFTNYVmWddkLOxzasGGDBg0aVGWbnJwcXX/99fr666+VmJh40XW63W65XC4VFRUpMjLycksD4EsOh78rqDmXf4oEAFtUJxv5/B67oqIiORwORUVF+XpTAAAA9VqQL1deWlqq6dOn6+67764yYZaVlamsrMzz3e12+7IkAAAAY/lsxK68vFx33HGHLMvSsmXLqmy3cOFCuVwuzychIcFXJQEAABjNJ8HubKj7+uuv9f7771/wevDMmTNVVFTk+Rw+fNgXJQEAABjP9kuxZ0Pdvn379MEHH6hx48YXbO90OuV0Ou0uAwAAoN6pdrArLi7W/v37Pd8PHDig3NxcRUdHKy4uTrfffrt2796tTZs26dSpUyosLJQkRUdHq0GDBvZVDgAAAC/Vft1JVlaWevfuXWH6iBEjNHfuXCUnJ1e63AcffKCUlJSLrp/XnQB1AK87AYAaU51sVO0Ru5SUFF0oC17Ba/EAAABwBfitWAAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwRJC/CwCM4nD4uwIAQD3GiB0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGKLawS47O1sDBgxQfHy8HA6HNm7c6DXfsizNnj1bcXFxCg0NVWpqqvbt22dXvQAAAKhCtYPdiRMn1KlTJ73wwguVzn/qqaf0hz/8QcuXL9eOHTsUHh6utLQ0lZaWXnGxAAAAqFpQdRfo16+f+vXrV+k8y7K0dOlSPfbYYxo4cKAk6eWXX1azZs20ceNG3XXXXVdWLQAAAKpk6z12Bw4cUGFhoVJTUz3TXC6Xunfvru3bt1e6TFlZmdxut9cHAAAA1VftEbsLKSwslCQ1a9bMa3qzZs088863cOFCpaen21lGnZI0411/l1AjDj7Z398lAABgPL8/FTtz5kwVFRV5PocPH/Z3SQAAAHWSrcEuNjZWknT06FGv6UePHvXMO5/T6VRkZKTXBwAAANVna7BLTk5WbGysNm/e7Jnmdru1Y8cO9ejRw85NAQAA4DzVvseuuLhY+/fv93w/cOCAcnNzFR0drcTERE2ePFnz58/X1VdfreTkZM2aNUvx8fEaNGiQnXUDAADgPNUOdjt37lTv3r0936dOnSpJGjFihFavXq1HHnlEJ06c0NixY3X8+HHdeOONyszMVEhIiH1VAwAAoAKHZVmWv4s4l9vtlsvlUlFRUb24346nYg3jcPi7Atitdp0iAdRD1clGfn8qFgAAAPYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABjC9mB36tQpzZo1S8nJyQoNDdVVV12lxx9/XJZl2b0pAAAAnCPI7hUuWrRIy5Yt05o1a3TNNddo586dGjVqlFwulyZOnGj35gAAAPAz24Pdtm3bNHDgQPXv31+SlJSUpNdee02ffPKJ3ZsCAADAOWy/FNuzZ09t3rxZX375pSTp008/1Ycffqh+/frZvSkAAACcw/YRuxkzZsjtdqtNmzYKDAzUqVOntGDBAg0bNqzS9mVlZSorK/N8d7vddpcEAABQL9g+Yvf6669r7dq1evXVV7V7926tWbNGTz/9tNasWVNp+4ULF8rlcnk+CQkJdpcEAABQLzgsmx9XTUhI0IwZMzRu3DjPtPnz5+uVV17RP/7xjwrtKxuxS0hIUFFRkSIjI+0srVZKmvGuv0uoEQef7O/vEmqGw+HvCmA3nugH4Gdut1sul+uSspHtl2JLSkoUEOA9EBgYGKjTp09X2t7pdMrpdNpdBgAAQL1je7AbMGCAFixYoMTERF1zzTX629/+pt///ve677777N4UAAAAzmF7sHvuuec0a9YsPfTQQzp27Jji4+N1//33a/bs2XZvCgAAAOewPdhFRERo6dKlWrp0qd2rBgAAwAXwW7EAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGCLI3wUAQK3mcPi7gpphWf6uAIANGLEDAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEP4JNh98803Gj58uBo3bqzQ0FB16NBBO3fu9MWmAAAA8LMgu1f4/fffq1evXurdu7f+8pe/qGnTptq3b58aNWpk96YAAABwDtuD3aJFi5SQkKBVq1Z5piUnJ9u9GQAAAJzH9kuxb7/9trp27apf/epXiomJ0bXXXquVK1favRkAAACcx/Zg99VXX2nZsmW6+uqr9b//+7968MEHNXHiRK1Zs6bS9mVlZXK73V4fAAAAVJ/DsizLzhU2aNBAXbt21bZt2zzTJk6cqJycHG3fvr1C+7lz5yo9Pb3C9KKiIkVGRtpZWu3kcPi7gpph72FWe9WXf0+grqov5yIYxe12y+VyXVI2sn3ELi4uTu3atfOa1rZtWx06dKjS9jNnzlRRUZHnc/jwYbtLAgAAqBdsf3iiV69eysvL85r25ZdfqkWLFpW2dzqdcjqddpcBAABQ79g+YjdlyhR9/PHHeuKJJ7R//369+uqr+tOf/qRx48bZvSkAAACcw/Zg161bN23YsEGvvfaa2rdvr8cff1xLly7VsGHD7N4UAAAAzmH7wxNXqjo3CBqhvtxsX7sOM9+pL/+eQF1VX85FMIpfH54AAACAfxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAwR5O8CqtJ+zv8qwBnm7zJ87qC/C6gpDoe/KwAAwHiM2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhvB5sHvyySflcDg0efJkX28KAACgXvNpsMvJydGKFSvUsWNHX24GAAAA8mGwKy4u1rBhw7Ry5Uo1atTIV5sBAADAz3wW7MaNG6f+/fsrNTX1gu3Kysrkdru9PgAAAKi+IF+s9M9//rN2796tnJyci7ZduHCh0tPTfVEGAABAvWL7iN3hw4c1adIkrV27ViEhIRdtP3PmTBUVFXk+hw8ftrskAACAesH2Ebtdu3bp2LFj6tKli2faqVOnlJ2dreeff15lZWUKDAz0zHM6nXI6nXaXAQAAUO/YHuxuueUWffbZZ17TRo0apTZt2mj69OleoQ4AAAD2sT3YRUREqH379l7TwsPD1bhx4wrTAQAAYB9+eQIAAMAQPnkq9nxZWVk1sRkAAIB6jRE7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADGF7sFu4cKG6deumiIgIxcTEaNCgQcrLy7N7MwAAADiP7cFuy5YtGjdunD7++GO9//77Ki8vV58+fXTixAm7NwUAAIBzBNm9wszMTK/vq1evVkxMjHbt2qWbbrrJ7s0BAADgZ7YHu/MVFRVJkqKjoyudX1ZWprKyMs93t9vt65IAAACM5LAsy/LVyk+fPq3bbrtNx48f14cfflhpm7lz5yo9Pb3C9CJJkb4qDAAAk/nuv/ZayOHvAnzO7ZZcrjODZZGRF05HPg12Dz74oP7yl7/oww8/VPPmzSttU9mIXUJCAsEOAIDLRbAzSnWCnc8uxY4fP16bNm1SdnZ2laFOkpxOp5xOp6/KAAAAqDdsD3aWZWnChAnasGGDsrKylJycbPcmAAAAUAnbg924ceP06quv6q233lJERIQKCwslSS6XS6GhoXZvDgAAAD+z/R47h6Pya92rVq3SyJEjL7q82+2Wy+XiHjsAAC4X99gZxa/32PnwWQwAAABcAL8VCwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhgvxdAAAAsJnD4e8K4CeM2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIXwW7F544QUlJSUpJCRE3bt31yeffOKrTQEAAEA+Cnbr1q3T1KlTNWfOHO3evVudOnVSWlqajh075ovNAQAAQJLDsizL7pV2795d3bp10/PPPy9JOn36tBISEjRhwgTNmDHjgsu63W65XC4VSYq0uzAAAIA6xi3JJamoqEiRkRdOR7aP2P3000/atWuXUlNT/72RgAClpqZq+/btdm8OAAAAPwuye4X/7//9P506dUrNmjXzmt6sWTP94x//qNC+rKxMZWVlnu9FRUWSzqRTAACA+u5sJrqUi6y2B7vqWrhwodLT0ytMT/BDLQAAALXVDz/8IJfLdcE2tge7Jk2aKDAwUEePHvWafvToUcXGxlZoP3PmTE2dOtXz/fjx42rRooUOHTp00eLrA7fbrYSEBB0+fPii19XrA/rDG/3xb/SFN/rDG/3hjf74t7rQF5Zl6YcfflB8fPxF29oe7Bo0aKDrrrtOmzdv1qBBgySdeXhi8+bNGj9+fIX2TqdTTqezwnSXy1VrO9gfIiMj6Y9z0B/e6I9/oy+80R/e6A9v9Me/1fa+uNTBLp9cip06dapGjBihrl276vrrr9fSpUt14sQJjRo1yhebAwAAgHwU7O68807961//0uzZs1VYWKjOnTsrMzOzwgMVAAAAsI/PHp4YP358pZdeL8bpdGrOnDmVXp6tj+gPb/SHN/rj3+gLb/SHN/rDG/3xb6b1hU9eUAwAAICa57PfigUAAEDNItgBAAAYgmAHAABgiBoLdtnZ2RowYIDi4+PlcDi0ceNGr/kjR46Uw+Hw+vTt29erTVJSUoU2Tz75ZE3tgq0u1h+StHfvXt12221yuVwKDw9Xt27ddOjQIc/80tJSjRs3To0bN1bDhg01dOjQCi+Grgvs6IuUlJQKx8YDDzxQg3thn4v1x/n7efazePFiT5vvvvtOw4YNU2RkpKKiojR69GgVFxfX8J7Yw47+MOXccbG+KC4u1vjx49W8eXOFhoaqXbt2Wr58uVcbU84bkj39UZ/OHUePHtXIkSMVHx+vsLAw9e3bV/v27fNqU5+Oj0vpj7p4fNRYsDtx4oQ6deqkF154oco2ffv2VUFBgefz2muvVWgzb948rzYTJkzwZdk+c7H+yM/P14033qg2bdooKytLe/bs0axZsxQSEuJpM2XKFL3zzjt64403tGXLFh05ckRDhgypqV2wjR19IUljxozxOjaeeuqpmijfdhfrj3P3saCgQC+99JIcDoeGDh3qaTNs2DD9/e9/1/vvv69NmzYpOztbY8eOraldsJUd/SGZce64WF9MnTpVmZmZeuWVV7R3715NnjxZ48eP19tvv+1pY8p5Q7KnP6T6ce6wLEuDBg3SV199pbfeekt/+9vf1KJFC6WmpurEiROedvXl+LjU/pDq4PFh+YEka8OGDV7TRowYYQ0cOPCCy7Vo0cJ65plnfFaXv1TWH3feeac1fPjwKpc5fvy4FRwcbL3xxhueaXv37rUkWdu3b/dVqT53OX1hWZZ18803W5MmTfJdYX5SWX+cb+DAgdZ//ud/er5/8cUXliQrJyfHM+0vf/mL5XA4rG+++cZXpdaIy+kPyzLz3FFZX1xzzTXWvHnzvKZ16dLFevTRRy3LMve8YVmX1x+WVX/OHXl5eZYk6/PPP/dMO3XqlNW0aVNr5cqVlmXVr+PjUvrDsurm8VGr7rHLyspSTEyMWrdurQcffFDffvtthTZPPvmkGjdurGuvvVaLFy/WyZMn/VCpb50+fVrvvvuufvGLXygtLU0xMTHq3r271zDyrl27VF5ertTUVM+0Nm3aKDExUdu3b/dD1b5xKX1x1tq1a9WkSRO1b99eM2fOVElJSc0XXMOOHj2qd999V6NHj/ZM2759u6KiotS1a1fPtNTUVAUEBGjHjh3+KLPGVNYfZ9WHc0fPnj319ttv65tvvpFlWfrggw/05Zdfqk+fPpLqz3njrIv1x1n14dxRVlYmSV5XOgICAuR0OvXhhx9Kql/Hx6X0x1l17fjw2QuKq6tv374aMmSIkpOTlZ+fr9/97nfq16+ftm/frsDAQEnSxIkT1aVLF0VHR2vbtm2aOXOmCgoK9Pvf/97P1dvr2LFjKi4u1pNPPqn58+dr0aJFyszM1JAhQ/TBBx/o5ptvVmFhoRo0aKCoqCivZZs1a6bCwkL/FO4Dl9IXkvTrX/9aLVq0UHx8vPbs2aPp06crLy9P69ev9/Me+NaaNWsUERHhdamksLBQMTExXu2CgoIUHR1t1LFRmcr6Q6o/547nnntOY8eOVfPmzRUUFKSAgACtXLlSN910kyTVm/PGWRfrD6n+nDvOBrSZM2dqxYoVCg8P1zPPPKN//vOfKigokFS/jo9L6Q+pbh4ftSbY3XXXXZ6/O3TooI4dO+qqq65SVlaWbrnlFkln7pc4q2PHjmrQoIHuv/9+LVy40Jg3RktnRqkkaeDAgZoyZYokqXPnztq2bZuWL1/uCTP1waX2xbn3j3Xo0EFxcXG65ZZblJ+fr6uuuqrmC68hL730koYNG1bhfsP6qqr+qC/njueee04ff/yx3n77bbVo0ULZ2dkaN26c4uPjvUZh6otL6Y/6cu4IDg7W+vXrNXr0aEVHRyswMFCpqanq16+frHr4OwWX2h918fioVZdiz9WyZUs1adJE+/fvr7JN9+7ddfLkSR08eLDmCqsBTZo0UVBQkNq1a+c1vW3btp4nQWNjY/XTTz/p+PHjXm2OHj2q2NjYmirV5y6lLyrTvXt3Sbrg8VPXbd26VXl5efrNb37jNT02NlbHjh3zmnby5El99913Rh0b56uqPypj4rnjxx9/1O9+9zv9/ve/14ABA9SxY0eNHz9ed955p55++mlJ9ee8IV1af1TG5HPHddddp9zcXB0/flwFBQXKzMzUt99+q5YtW0qqX8eHdPH+qExdOD5qbbD75z//qW+//VZxcXFVtsnNzVVAQECFy051XYMGDdStWzfl5eV5Tf/yyy/VokULSWcOyODgYG3evNkzPy8vT4cOHVKPHj1qtF5fupS+qExubq4kXfD4qesyMjJ03XXXqVOnTl7Te/TooePHj2vXrl2eaf/3f/+n06dPe05KJqqqPypj4rmjvLxc5eXlCgjwPq0HBgZ6Rr7ry3lDurT+qEx9OHe4XC41bdpU+/bt086dOzVw4EBJ9ev4OFdV/VGZunB81Nil2OLiYq+Ee+DAAeXm5io6OlrR0dFKT0/X0KFDFRsbq/z8fD3yyCNq1aqV0tLSJJ25IXzHjh3q3bu3IiIitH37dk2ZMkXDhw9Xo0aNamo3bHOh/khMTNS0adN055136qabblLv3r2VmZmpd955R1lZWZLOHIijR4/W1KlTFR0drcjISE2YMEE9evTQDTfc4Ke9ujxX2hf5+fl69dVX9ctf/lKNGzfWnj17NGXKFN10003q2LGjn/bq8l2sPyTJ7XbrjTfe0JIlSyos37ZtW/Xt21djxozR8uXLVV5ervHjx+uuu+5SfHx8je2HXa60P0w6d1ysL26++WZNmzZNoaGhatGihbZs2aKXX37Zcy+hSecN6cr7o76dO9544w01bdpUiYmJ+uyzzzRp0iQNGjTI8zBJfTs+LtYfdfb4qKnHbz/44ANLUoXPiBEjrJKSEqtPnz5W06ZNreDgYKtFixbWmDFjrMLCQs/yu3btsrp37265XC4rJCTEatu2rfXEE09YpaWlNbULtrpQf5yVkZFhtWrVygoJCbE6depkbdy40WsdP/74o/XQQw9ZjRo1ssLCwqzBgwdbBQUFNbwnV+5K++LQoUPWTTfdZEVHR1tOp9Nq1aqVNW3aNKuoqMgPe3PlLqU/VqxYYYWGhlrHjx+vdB3ffvutdffdd1sNGza0IiMjrVGjRlk//PBDDe2Bva60P0w6d1ysLwoKCqyRI0da8fHxVkhIiNW6dWtryZIl1unTpz3rMOW8YVlX3h/17dzx7LPPWs2bN7eCg4OtxMRE67HHHrPKysq81lGfjo+L9UddPT4cllUP75oEAAAwUK29xw4AAADVQ7ADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7ACgCklJSVq6dKm/ywCAS0awA4Aq5OTkaOzYsZfU1rIszZ49W3FxcQoNDVVqaqr27dvn4woBwBvBDgCq0LRpU4WFhV1S26eeekp/+MMftHz5cu3YsUPh4eFKS0tTaWmpj6sEgH8j2AEwVmZmpm688UZFRUWpcePGuvXWW5Wfny9Jevnll9WwYUOvUbWHHnpIbdq0UUlJiSTvS7GWZWnu3LlKTEyU0+lUfHy8Jk6c6Jm3dOlSPfbYYxo4cKA6duyol19+WUeOHNHGjRtrdJ8B1G8EOwDGOnHihKZOnaqdO3dq8+bNCggI0ODBg3X69Gnde++9+uUvf6lhw4bp5MmTevfdd/Xiiy9q7dq1lY7Svfnmm3rmmWe0YsUK7du3Txs3blSHDh0kSQcOHFBhYaFSU1M97V0ul7p3767t27fX2P4CQJC/CwAAXxk6dKjX95deeklNmzbVF198ofbt22vFihXq2LGjJk6cqPXr12vu3Lm67rrrKl3XoUOHFBsbq9TUVAUHBysxMVHXX3+9JKmwsFCS1KxZM69lmjVr5pkHADWBETsAxtq3b5/uvvtutWzZUpGRkUpKSpJ0JqRJUqNGjZSRkaFly5bpqquu0owZM6pc169+9Sv9+OOPatmypcaMGaMNGzbo5MmTNbEbAHDJCHYAjDVgwAB99913WrlypXbs2KEdO3ZIkn766SdPm+zsbAUGBqqgoEAnTpyocl0JCQnKy8vTH//4R4WGhuqhhx7STTfdpPLycsXGxkqSjh496rXM0aNHPfMAoCYQ7AAY6dtvv1VeXp4ee+wx3XLLLWrbtq2+//57rzbbtm3TokWL9M4776hhw4YaP378BdcZGhqqAQMG6A9/+IOysrK0fft2ffbZZ0pOTlZsbKw2b97saet2u7Vjxw716NHDJ/sHAJXhHjsARmrUqJEaN26sP/3pT4qLi9OhQ4e8LrX+8MMPuueeezRx4kT169dPzZs3V7du3TRgwADdfvvtFda3evVqnTp1St27d1dYWJheeeUVhYaGqkWLFnI4HJo8ebLmz5+vq6++WsnJyZo1a5bi4+M1aNCgGtxrAPUdI3YAjBQQEKA///nP2rVrl9q3b68pU6Zo8eLFnvmTJk1SeHi4nnjiCUlShw4d9MQTT+j+++/XN998U2F9UVFRWrlypXr16qWOHTvqr3/9q9555x01btxYkvTII49owoQJGjt2rLp166bi4mJlZmYqJCSkZnYYACQ5LMuy/F0EAAAArhwjdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCH+P4IQR6SN4Yv4AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "original = hist.copy() # Store the original data to see changes\n", "\n", "# ******* Here comes a lonely giant\n", "hist.fill(197) \n", "\n", "step1 = hist.copy() # Store the intermediate value\n", "\n", "# ******* And a bunch of relatively short people\n", "hist.fill_n([160, 160, 161, 157, 156, 159, 162])\n", "\n", "# See how the plot changes (you can safely ignore the following 4 lines)\n", "ax = hist.plot(label=\"After fill_n\")\n", "step1.plot(color=\"yellow\", ax=ax, label=\"After fill\")\n", "original.plot(color=\"red\", ax=ax, label=\"Before filling\")\n", "ax.legend(loc=1)\n", "\n", "# See the number of entries \n", "hist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data representation\n", "\n", "The primary goal of physt library is to represent histograms as data objects with a set methods for easy manipulation and analysis (including mathematical operations, adaptivity, summary statistics. ...). The histogram classes used in [ROOT](https://root.cern.ch/) framework served as inspiration but not as a model to copy (though relevant methods often have same names).\n", "\n", "Based on its dimensionality, a histogram is an instance of one of the following classes (all inheriting from **HistogramBase**):\n", "\n", "* **Histogram1D** for univariate data\n", "* **Histogram2D** for bivariate data\n", "* **HistogramND** for data with higher dimensionality\n", "* ...or some special dedicated class (user-provided). Currently, there is a **PolarHistogram** as an example (considered to be experimental, not API-stable).\n", "\n", "However, these objects are \\__init\\__ialized with already calculated data and therefore, you typically don't construct the yourselves but call one of the facade functions:\n", "\n", "* **histogram** or **h1**\n", "* **histogram2d** or **h2**\n", "* **histogramdd** (or **h3** for 3D case)\n", "\n", "These functions try to find the best binning schema, calculate bin contents and set other properties for the histograms. In principle (if not, submit a bug report), if you call a function with arguments understood by eponymous numpy functions ([histogram](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.histogram.html), [histogram2d](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.histogram2d.html) and [histogramdd](http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.histogramdd.html)), you should receive histogram with exactly the same bin edges and bin contents. However, there are many more arguments available!" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Back to people's parameters...\n", "heights = np.random.normal(172, 10, 100)\n", "weights = np.random.normal(70, 15, 100)\n", "iqs = np.random.normal(100, 15, 100)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=100, dtype=int32)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 1D histogram\n", "h1(heights)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram2D(bins=(5, 7), total=100, dtype=int64)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 2D histogram\n", "h2(heights, weights, [5, 7])" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "HistogramND(bins=(10, 10, 10), total=100, dtype=int64)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 3D histogram\n", "h3([heights, weights, iqs]) # Simplification with respect to numpy.histogramdd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So, what do these objects contain? In principle:\n", "\n", "- binning schema (`_binning` or `_binnings`)\n", "- bin contents (`frequencies`) together with errors (`errors`)\n", "- some statistics about the data (`mean`, `variance`, `std`)\n", "- metadata (like `name` and `axis_name` or `axis_names`)\n", "- ...\n", "\n", "In the following, properties of `Histogram1D` will be described. Analogous methods and data fields do exist also for `Histogram2D` and `HistogramND`, perhaps with the name in plural." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Binning schema\n", "\n", "The structure of bins is stored in the histogram object as a hidden attribute `_binning`. This value is an instance of one of the binning classes that are all descendants of `physt.binnings.BinningBase`. You are not supposed to directly access this value because manipulating it without at the same time updating the bin contents is dangerous.\n", "\n", "A dedicated notebook deals with the binning specifics, here we sum at least the most important features.\n", "\n", "`Histogram1D` offers the following attributes to access (read-only or read-only-intended) the binning information (explicitly or implicitly stored in `_binning`):" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(6,), total=10000, dtype=int32)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Create a histogram with \"reasonable\" bins\n", "data = np.random.normal(0, 7, 10000)\n", "hist = h1(data, \"pretty\", bin_count=4)\n", "hist" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FixedWidthBinning(bin_width=10.0, bin_count=6, min=-30.0)" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist._binning # Just to show, don't use it" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "6" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bin_count # The total number of bins" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[-30., -20.],\n", " [-20., -10.],\n", " [-10., 0.],\n", " [ 0., 10.],\n", " [ 10., 20.],\n", " [ 20., 30.]])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bins # Bins as array of both edges" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-30., -20., -10., 0., 10., 20., 30.])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.edges # Bin edges with the same semantics as the numpy.histogram" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-30., -20., -10., 0., 10., 20.])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bin_left_edges" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-20., -10., 0., 10., 20., 30.])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bin_right_edges" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-25., -15., -5., 5., 15., 25.])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bin_centers # Centers of the bins - useful for interpretation of histograms as scatter data" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10., 10., 10., 10., 10., 10.])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.bin_widths # Widths of the bins - useful for calculating densities and also for bar plots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just as a simple overview of binning schemas, that are provided by physt, we show the bins as produced by different schemas:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['numpy',\n", " 'pretty',\n", " 'human',\n", " 'quantile',\n", " 'static',\n", " 'integer',\n", " 'fixed_width',\n", " 'exponential',\n", " 'blocks',\n", " 'knuth',\n", " 'scott',\n", " 'freedman']" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(binnings.binning_methods.keys()) # Show them all" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These names can be used as the second parameter of the `h1` function:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-30., -24., -18., -12., -6., 0., 6., 12., 18., 24., 30.])" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Fixed-width\n", "h1(data, \"fixed_width\", bin_width=6).numpy_bins " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Expected: [-26.89092563 -16.07128189 -5.25163815 5.56800559 16.38764933\n", " 27.20729307]\n", "We got: [-26.89092563 -16.07128189 -5.25163815 5.56800559 16.38764933\n", " 27.20729307]\n" ] } ], "source": [ "# Numpy-like\n", "print(\"Expected:\", np.histogram(data, 5)[1])\n", "\n", "print(\"We got:\", h1(data, \"numpy\", bin_count=5).numpy_bins)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-27.5, -26.5, -25.5, -24.5, -23.5, -22.5, -21.5, -20.5, -19.5,\n", " -18.5, -17.5, -16.5, -15.5, -14.5, -13.5, -12.5, -11.5, -10.5,\n", " -9.5, -8.5, -7.5, -6.5, -5.5, -4.5, -3.5, -2.5, -1.5,\n", " -0.5, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,\n", " 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5,\n", " 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5, 25.5,\n", " 26.5, 27.5])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Integer - centered around integers; useful for integer data\n", "h1(data, \"integer\").numpy_bins " ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1.03182494e-03, 2.03397046e-03, 4.00943579e-03, 7.90354415e-03,\n", " 1.55797507e-02, 3.07113654e-02, 6.05393490e-02, 1.19337344e-01,\n", " 2.35242068e-01, 4.63717632e-01, 9.14096888e-01, 1.80190069e+00,\n", " 3.55197150e+00, 7.00177407e+00, 1.38021491e+01, 2.72072931e+01])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Exponential - positive numbers required\n", "h1(np.abs(data), \"exponential\").numpy_bins # We 'abs' the values" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-26.89092563, -5.87687499, -1.69550961, 1.81670859,\n", " 5.79232538, 27.20729307])" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Quantile - each bin should have a similar statistical importance\n", "h1(data, \"quantile\", bin_count=5).numpy_bins\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-30., -25., -20., -15., -10., -5., 0., 5., 10., 15., 20.,\n", " 25., 30.])" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Pretty - as friendly to your plots as possible, you may set an approximate number of bins\n", "h1(data, \"pretty\").numpy_bins " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bin contents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The bin contents (`frequencies`) and associated errors (`errors`) are stored as numpy arrays with a shape corresponding to number of bins (in all dimensions). Again, you cannot manipulate these properties diractly (unless you break the dont-touch-the-underscore convention)." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2, 23, 140, 604, 1580, 2601, 2691, 1640, 573, 124, 17,\n", " 5])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist = h1(data, \"pretty\")\n", "\n", "hist.frequencies" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Errors are calculated as $\\sqrt(N)$ which is the simplest expectation for independent values. If you don't accept this, you can set your errors through `_errors2` field which contains squared errors.\n", "\n", "Note: Filling with weights, arithmetic operations and scaling preserve correct error values under similar conditions." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 1.41421356, 4.79583152, 11.83215957, 24.57641145, 39.74921383,\n", " 51. , 51.8748494 , 40.49691346, 23.93741841, 11.13552873,\n", " 4.12310563, 2.23606798])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.errors" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 2.82842712, 9.59166305, 23.66431913, 49.15282291,\n", " 79.49842766, 102. , 103.74969879, 80.99382693,\n", " 47.87483681, 22.27105745, 8.24621125, 4.47213595])" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Doubling the histogram doubles the error\n", "(hist * 2).errors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data types\n", "\n", "Internally, histogram bins can contain values in several types (`dtype` in numpy terminology). By default, this is either `np.int64` (for histograms without weights) or `np.float64` (for histograms with weight). Wherever possible, this distinction is preserved. If you try filling in with weights, if you multiply by a float constant, if you divide, ... - basically whenever this is reasonable - an integer histogram is automatically converted to a float one. " ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Default type: int32\n", "Default type with weights: float64\n", "Default type after filling with weight: float64\n", "Default type after multiplying by an int: int32\n", "Default type after multiplying by a float: float64\n" ] } ], "source": [ "hist = h1(data)\n", "print(\"Default type:\", hist.dtype)\n", "\n", "hist = h1(data, weights=np.abs(data)) # Add some random weights\n", "print(\"Default type with weights:\", hist.dtype)\n", "\n", "hist = h1(data)\n", "hist.fill(1.0, weight=.44)\n", "print(\"Default type after filling with weight:\", hist.dtype)\n", "\n", "hist = h1(data)\n", "hist *= 2\n", "print(\"Default type after multiplying by an int:\", hist.dtype)\n", "\n", "hist *= 5.6\n", "print(\"Default type after multiplying by a float:\", hist.dtype)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int32')" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# You can specify the type in the method call\n", "hist = h1(data, dtype=\"int32\")\n", "hist.dtype" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int32')" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# You can set the type of the histogram using the attribute\n", "hist = h1(data)\n", "hist.dtype = np.int32\n", "hist.dtype" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('float64')" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Adding two histograms uses the broader range\n", "hist1 = h1(data, dtype=\"int64\")\n", "hist2 = h1(data, dtype=\"float32\")\n", "(hist1 + hist2).dtype # See the result!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Manually create histogram instances\n", "\n", "As mentioned, `h1` and `h2` are just facade functions. You can construct the objects directly using the constructors. The first argument accepts something that can be interpreted as binning or list of bins, second argument is an array of frequencies (numpy array or something convertible)." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(Histogram1D(bins=(5,), total=15, dtype=int32),\n", " Histogram2D(bins=(2, 3), total=23.7, dtype=float64))" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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+RkAAKeDa665RjNnztTUqVM1YsQInXnmmXI4HMEOC0AzUaEF2pDPP/9cU6ZMUf/+/WW329W3b19J/0pOJalr165auXKlcnJydPbZZ+u+++5r8lyTJ0/WL7/8ov79+2vmzJnKz8/X8ePHA/E1AACwlCeeeELHjx/X2rVr9dJLL8lmswU7JADNREILtCETJ07UP//5T61YsUIffPCBPvjgA0lSbW2t2Wbbtm3q0KGDKioqVFNT0+S5EhIStG/fPj333HOKiIjQHXfcoUsvvVTHjh1TbGysJKmqqsqjT1VVlfkZAACniy+++ELffvut3G63vvzyy2CHA8ALJLRAG/HDDz9o3759evDBB3XFFVdo8ODB+vHHHz3a7NixQ3/84x/1t7/9TZ07d1ZmZuZJzxkREaGJEyfqmWeeUWFhoYqKirRnzx7169dPsbGxHgteOJ1OffDBB0pOTvbL9wMAoC2qra3Vb37zG11//fVasGCBbrnlFh06dCjYYQFoJp6hBdqIrl27qnv37lq+fLni4uJUVlbmMaW4fqGKu+66S6mpqerVq5dGjhypiRMn6n//938bnC83N1d1dXUaNWqUOnXqpBdffFERERHq06ePQkJCNHv2bP3hD3/QOeeco379+un3v/+94uPjlZaWFsBvDQBAcD3wwAOqrq7WM888o86dO2vDhg266aabtH79+mCHBqAZqNACbURoaKjy8vJUUlKixMREzZkzR48//rj5+axZs3TmmWearxYYOnSoHn30Ud1222365ptvGpyvS5cuWrFihcaMGaOkpCRt3rxZf/vb39S9e3dJ0j333KM777xTt956q0aOHKkjR45o48aNCg8PD8wXBgAgyAoLC7V48WL95S9/kd1uV2hoqP7yl7/o73//u3JycoIdHoBmCDEMwwh2EAAAAAAAeIsKLQAAAADAkkhoAQAAAACWREILAAAAALAkEloAAAAAgCWR0AIAAAAALImEFgAAAABgSSS0AAAAAABLIqEFAAAAAFgSCS0AAAAAwJJIaAEAAAAAlkRCCwAAAACwJBJaAAAAAIAl/X9dkwtEwQo2DgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from physt.histogram1d import Histogram1D\n", "from physt.histogram_nd import Histogram2D\n", "hist1 = Histogram1D([0.0, 0.2, 0.4, 0.6, 0.8, 1.0], [1, 2, 3, 4, 5])\n", "hist2 = Histogram2D([[0, 0.5, 1], [0, 1, 2, 3]], [[0.2, 2.2, 7.3], [6, 5, 3]], axis_names=[\"x\", \"y\"])\n", "\n", "fig, axes = plt.subplots(1, 2, figsize=(10, 4))\n", "hist1.plot(ax = axes[0])\n", "hist2.plot(ax = axes[1])\n", "hist1, hist2" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(9,), total=97.8, dtype=float64)" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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uuKKK+qqq66qZ5999qxvbZ0+fbp27txZQ0NDdf3119fevXsXtk1NTdX09PRZx/zuu+9q1apV9emnn1ZV1RtvvFEbN26swcHBuvbaa+uBBx6oqqodO3bU559/Xrt3765Op1OdTqe63e6FP2lYjAYhtm7d2tasWdNmZmbaoUOH2rvvvttWr17d9u7d21prbWxsrK1du7a9/vrr7fDhw+2FF15ofX197dChQ6211vbt29dGRkbaDz/8sHDMV155pY2Pj7der9dmZ2dbf39/279/f+t2u21ubq7t3r27tdbaiRMn2pYtW9rDDz/cjh8/3o4fP95+/vnni/9HgP9BqImxdevWNjEx0Xq93sJzTz31VJuYmGit/RrqBx98cGFbr9dr11xzTXvzzTdba62dOXOmjYyMtPfee29hn02bNrXnn3++tdba+++/34aHh9vJkyfP+ftnZmaW+rTgT3PpgyibN28+6zYFW7ZsqcOHD9cvv/xSVVWbNm1a2NbpdOq6666rb7/9tqqqBgcHa/v27fX2229XVdXc3Fx9/fXXtWPHjqqquvfee2tsbKxuuOGG2r59e+3bt69On3ajMfIJNX8pl1122VmPO51O9Xq9hce7du2qTz75pI4dO1bvvPNOTU1N1djYWFVVDQ0N1dzcXB04cKDWrVtXzz33XN1222114sSJi3kKcN6EmigHDx486/GXX35ZGzdurP7+/kX9/K233lp33nlnvfXWW7V///7auXPnWdsHBgbqnnvuqZdeeqm++uqr6na79dlnn1VV1apVqxZW7pBkUfejhovlyJEj9cQTT9Sjjz5ac3Nz9dprr9XLL798XsfYtWtXTU9P1+WXX17333//wvMffvhhffPNN3X33XfXyMhIffzxx9Xr9eqmm26qql+/UHPw4MHqdru1Zs2aWrt27e/e0QwuFq9Cojz00EN15syZuuuuu+qxxx6rmZmZeuSRR87rGNu2bauBgYHatm1bDQ4OLjx/5ZVX1gcffFBTU1M1MTFRe/bsqQMHDtQtt9xSVVVPPvlk9ff3180331xXX311HTlyZEnPDf5fbnNKjMnJybr99tv/9NfEu91u3XjjjTU7O1t33HHH0gwHy8ilD1aMn376qb7//vt65plnavPmzSLNiuHSByvGF198UevWravZ2dnas2fPco8DS8alD4BwVtQA4YQaIJxQA4QTaoBwQg0QTqgBwgk1QDihBggn1ADh/gUBWxvOJmKfHwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create a physt \"logo\", also available as physt.examples.fist\n", "_, ax = plt.subplots(figsize=(4, 4))\n", "widths = np.cumsum([0, 1.2, 0.2, 1, 0.1, 1, 0.1, 0.9, 0.1, 0.8])\n", "fingers = np.asarray([4, 1, 7.5, 6, 7.6, 6, 7.5, 6, 7.2]) + 5\n", "hist1 = Histogram1D(widths, fingers)\n", "hist1.plot(lw=0, ax=ax)\n", "ax.set_xticks([])\n", "ax.set_yticks([])\n", "ax.set_xlabel(\"physt\")\n", "hist1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Indexing" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Supported indexing is more or less compatible with numpy arrays." ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.find_bin(3) # Find a proper bin for some value (0 - based indices)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([-10.66146002, -5.25163815]), 1600)" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist[3] # Return the bin (with frequency)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(3,), total=559, dtype=int32)" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist[-3:] # Sub-histogram (as slice)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=10000, dtype=int32)" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist[hist.frequencies > 5] # Masked array (destroys underflow & overflow information)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(3,), total=4550, dtype=int32)" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist[[1, 3, 5]] # Select some of the bins" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Arithmetics\n", "\n", "With histograms, you can do basic arithmetic operations, preserving bins and usually having intuitive meaning." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=20000, dtype=int32)" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist + hist" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\janpi\\Documents\\code\\physt\\src\\physt\\histogram_base.py:933: UserWarning:\n", "\n", "Subtracting histograms is considered to be a bad idea.\n", "\n" ] }, { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=0, dtype=int32)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist - hist" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=4500.000000000001, dtype=float64)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist * 0.45" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=22222.222222222226, dtype=float64)" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist / 0.45" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some of the operations are prohibited:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TypeError('Multiplication of two histograms is not supported.')\n" ] } ], "source": [ "try:\n", " hist * hist # Does not make sense\n", "except Exception as ex:\n", " print(repr(ex))" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TypeError(\"Only histograms can be added together. found instead.\")\n" ] } ], "source": [ "try:\n", " hist + 4 # Does not make sense\n", "except Exception as ex:\n", " print(repr(ex))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ValueError('Cannot have negative frequencies.')\n" ] } ], "source": [ "try:\n", " (-0.2) * hist\n", "except Exception as ex:\n", " print(repr(ex))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some of the above checks are dropped if you allow \"free arithmetics\". This you can do by:\n", "1. Setting the `PHYST_FREE_ARITHMETICS` environment variable to 1 (note: not any other \"truthy\" value)\n", "2. By setting `config.free_arithmetics` to True\n", "3. By using the context manager `config.enable_free_arithmetics()`:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\janpi\\Documents\\code\\physt\\src\\physt\\histogram_base.py:389: UserWarning:\n", "\n", "Negative frequencies in the histogram.\n", "\n" ] }, { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=-1999.9999999999998, dtype=float64)" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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c+DAAd9tt93mi46O9vXp08eXn5/va25uDt6kQ9izzz7rGzBggC8yMtJ30003+T788MNgTynkvffee2f9OzRlyhSfz/ftI2seeeQRX0JCgs9isfh+9KMf+WpqaoI76RB0rv9dWr16tTnm1KlTvgceeMAXGxvri4mJ8f30pz/1HT58OHiTvkSE+Xw+X2eGKAAAALomfpUMAAAASYQhAAAADIQhAAAAJBGGAAAAMBCGAAAAkEQYAgAAwEAYAgAAQBJhCAAAAANhCAABNmjQID399NPBngYAnBdhCAAB9vHHH2vatGkXNNbn86moqEh9+/ZVdHS00tPT9dlnnwV4hgDwLcIQAAIsLi5OMTExFzR26dKleuaZZ1RaWqrt27erZ8+ecjqd+uabbwI8SwAgDAHgvCoqKnTLLbfoiiuuUO/evTV+/Hj9+c9/liS9+uqr6tWrl99dvQceeEBDhgzRX//6V0n+HyX7fD4VFxdrwIABslgs6tevnx588EFz39NPP60FCxboJz/5ia677jq9+uqrOnTokMrKyjr1PQMITYQhAJxHQ0OD8vLytGPHDlVWVio8PFw//elP1draqrvvvlv/8i//op///OdqaWlReXm5XnrpJa1bt+6sdwnfeOMNPfXUU3rxxRf12WefqaysTCkpKZKk/fv3y+PxKD093Rxvs9k0atQoud3uTnu/AELXZcGeAAB0dXfccYff+iuvvKK4uDj94Q9/0LBhw/Tiiy/quuuu04MPPqjf/va3Ki4uVmpq6lmPVVtbK7vdrvT0dEVERGjAgAG66aabJEkej0eSlJCQ4PeahIQEcx8ABBJ3DAHgPD777DNNnDhRycnJslqtGjRokKRvI0+SYmNj9fLLL2vlypW66qqrVFBQcM5jTZgwQadOnVJycrLuu+8+vfnmm2ppaemMtwEA50UYAsB53H777Tp27Jh+/etfa/v27dq+fbskqampyRzzwQcfqEePHjp8+LAaGhrOeazExETV1NTohRdeUHR0tB544AGNGTNGzc3NstvtkqS6ujq/19TV1Zn7ACCQCEMAaMdf/vIX1dTUaMGCBfrRj36ka6+9VsePH/cbU1VVpV/96ld6++231atXL82cObPdY0ZHR+v222/XM888o23btsntdut//ud/lJSUJLvdrsrKSnOs1+vV9u3b5XA4AvL+AOC7+I4hALQjNjZWvXv31qpVq9S3b1/V1tb6fVR88uRJTZ48WQ8++KBuu+029e/fXzfeeKNuv/12/exnPzvjeGvWrNHp06c1atQoxcTE6D/+4z8UHR2tgQMHKiwsTLm5uXrsscd0zTXXKCkpSY888oj69eunrKysTnzXAEIVdwwBoB3h4eF67bXXtHPnTg0bNkxz5szRsmXLzP2zZ89Wz5499fjjj0uSUlJS9Pjjj+v+++/XwYMHzzjeFVdcoV//+tf6wQ9+oOuuu06///3v9fbbb6t3796SpIceekizZs3StGnTdOONN+rrr79WRUWFoqKiOucNAwhpYT6fzxfsSQAAACD4uGMIAAAASYQhAAAADIQhAAAAJBGGAAAAMBCGAAAAkEQYAgAAwEAYAgAAQBJhCAAAAANhCAAAAEmEIQAAAAyEIQAAACQRhgAAADD8P3COIUpqqOICAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from physt.config import config\n", "with config.enable_free_arithmetics():\n", " neg_hist = (-0.2) * hist\n", "ax = neg_hist.plot()\n", "ax.set_ylim((-800, 0)) # TODO: Rendering bug requires this\n", "neg_hist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With this relaxation, you can also use any numpy array as (right) operand for any of the operations:" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=18628.188812174514, dtype=float64)" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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LtZHH31kffTRR9bx48cty7Ks+vp6a/DgwVZ6erpVWlpqFRYWWr169bJyc3NDPPP2YfXq1ZbD4bDy8/OtvXv3WlOnTrViYmKCvqWMC+f48eP23xFJ1lNPPWV99NFH1l//+lfLsixr4cKFVkxMjPWHP/zB2rlzpzV27FgrKSnJOnHiRIhn3j5Mnz7dcrlc1ubNm4P+vfn666/tMdOmTbP69Oljbdq0yfrwww8tj8djeTyeEM764kbYtTOvvPKKJemMyz/6y1/+Yl177bWWw+Gw/uVf/sVauHBhiGbc/kyaNOmM1+fdd9+1xxw6dMgaPXq0FRUVZfXs2dN64IEHrFOnToVu0u3MM888Y/Xp08eKjIy0rr76amv79u2hnlK79e67757x78ukSZMsy/rmkSe//OUvrbi4OMvhcFijRo2yysrKQjvpduTb/r155ZVX7DEnTpyw7rvvPqtbt25WdHS0deuttwbdbEDzhFmWZV3AG4QAAABoJXwrFgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AzkO/fv20dOnSUE8DACQRdgBwXj744ANNnTr1e421LEvz589XfHy8oqKilJaWpv3797fyDAG0J4QdAJyHXr16KTo6+nuNXbRokZ5++mmtWLFCO3bsUOfOneX1enXy5MlWniWA9oKwA9CuFRYW6tprr1VMTIx69OihW265RQcOHJAkvfbaa+rSpUvQXbX77rtPAwcO1Ndffy0p+K1Yy7K0YMEC9enTRw6HQwkJCbr//vvtfUuXLtW8efM0duxYDR06VK+99pqOHDmit95664KeMwBzEXYA2rWamhrl5OToww8/VHFxscLDw3XrrbeqsbFREydO1M0336y7775b9fX1Kigo0EsvvaSVK1ee8S7df//3f2vJkiV64YUXtH//fr311lsaMmSIJOngwYPy+/1KS0uzx7tcLqWmpsrn812w8wVgtg6hngAAhFJmZmbQ+ssvv6xevXpp7969Gjx4sF544QUNHTpU999/v958800tWLBAKSkpZzxWeXm53G630tLS1LFjR/Xp00dXX321JMnv90uS4uLigl4TFxdn7wOA88UdOwDt2v79+3XnnXfqkksukdPpVL9+/SR9E2mS1K1bN/32t7/V8uXLdemll+rBBx/81mPdcccdOnHihC655BJNmTJFa9euVX19/YU4DQCQRNgBaOfGjBmjY8eO6Te/+Y127NihHTt2SJLq6ursMVu3blVERISOHj2qmpqabz1WYmKiysrK9PzzzysqKkr33XefRo4cqVOnTsntdkuSKioqgl5TUVFh7wOA80XYAWi3vvjiC5WVlWnevHkaNWqUBg0apC+//DJozLZt2/TEE09o3bp16tKli7Kzs896zKioKI0ZM0ZPP/20Nm/eLJ/Pp127dikpKUlut1vFxcX22EAgoB07dsjj8bTK+QFof/iMHYB2q1u3burRo4defPFFxcfHq7y8POit1uPHj2vChAm6//77NXr0aPXu3VvDhw/XmDFjdPvtt592vPz8fDU0NCg1NVXR0dH63e9+p6ioKPXt21dhYWGaOXOmHnvsMf3gBz9QUlKSfvnLXyohIUHjxo27gGcNwGTcsQPQboWHh2v16tUqKSnR4MGDNWvWLC1evNje/+///u/q3LmzHn/8cUnSkCFD9Pjjj+vnP/+5Pvvss9OOFxMTo9/85je65pprNHToUG3cuFHr1q1Tjx49JElz5szRjBkzNHXqVA0fPlxfffWVCgsL1alTpwtzwgCMF2ZZlhXqSQAAAOD8cccOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIb4//lyBrkR0L04AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Add some noise\n", "with config.enable_free_arithmetics():\n", " hist_plus_array = hist + np.random.normal(800, 200, hist.shape)\n", "hist_plus_array.plot()\n", "hist_plus_array" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you need to side-step any rules completely, just use the histogram in a numpy array:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 100, 10000, 285156, 2560000, 7856809, 8122500, 2383936,\n", " 221841, 5625, 169])" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.asarray(hist) * np.asarray(hist)\n", "# Excercise: Reconstruct a histogram with original bins" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Statistics\n", "\n", "When creating histograms, it is possible to keep simple statistics about the sampled distribution,\n", "like mean() and std(). The behaviour was inspired by similar features in ROOT.\n", "\n", "**To be yet refined.**" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Statistics(sum=71.86746661024517, sum2=484049.889433997, min=-26.890925629481504, max=27.207293074555718, weight=10000.0)" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hist.statistics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting\n", "\n", "This is currently based on matplotlib, but other tools might come later (d3.js, bokeh?)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArhUlEQVR4nO3dfXRU9YH/8U8SyJAAM+EpmWQJEGULpDyoUcNU5UjJJmBkpaJnUQq0RSiY6EKoQrY0oLaGhlV8KA9aK9FTKMhZoYWsYAgCWxmipqY8SQ660KAwiRWTgQhJSO7vD0/uz1keaiAw4Tvv1zn3HObe79z5Xu5B3+fOzJ0wy7IsAQAA4JoXHuwJAAAAoG0QdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhOgR7AldKc3Ozjh07pq5duyosLCzY0wEAALgklmXp5MmTSkhIUHj4xa/JGRt2x44dU2JiYrCnAQAA0CaOHj2q3r17X3SMsWHXtWtXSV//JTidziDPBgAA4NL4/X4lJibabXMxxoZdy9uvTqeTsAMAANe8b/PRMr48AQAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQrQq75cuXa+jQofbPdHk8Hr311lv29jNnzigrK0s9evRQly5dNH78eFVVVQXso7KyUpmZmYqOjlZsbKwee+wxnT17NmDM9u3bddNNN8nhcKh///4qLCy89CMEAAAIEa0Ku969e2vRokUqKyvTBx98oO9///u65557tH//fknS7NmztXHjRq1bt047duzQsWPHdO+999rPb2pqUmZmphoaGrRr1y699tprKiwsVF5enj3m8OHDyszM1MiRI1VeXq5Zs2bpoYce0pYtW9rokAEAAMwUZlmWdTk76N69uxYvXqz77rtPvXr10urVq3XfffdJkg4ePKhBgwbJ6/Vq+PDheuutt3T33Xfr2LFjiouLkyStWLFCc+fO1eeff67IyEjNnTtXRUVF2rdvn/0aEyZMUE1NjTZv3vyt5+X3++VyuVRbWyun03k5hwgAABA0rWmaS/6MXVNTk9asWaO6ujp5PB6VlZWpsbFRaWlp9piBAweqT58+8nq9kiSv16shQ4bYUSdJGRkZ8vv99lU/r9cbsI+WMS37AAAAwPl1aO0T9u7dK4/HozNnzqhLly5av369kpOTVV5ersjISMXExASMj4uLk8/nkyT5fL6AqGvZ3rLtYmP8fr9Onz6tqKio886rvr5e9fX19mO/39/aQwMAALimtfqK3YABA1ReXq7S0lLNnDlTU6ZM0YEDB67E3FolPz9fLpfLXhITE4M9JQAAgKuq1WEXGRmp/v37KyUlRfn5+Ro2bJief/55ud1uNTQ0qKamJmB8VVWV3G63JMntdp/zLdmWx/9ojNPpvODVOknKzc1VbW2tvRw9erS1hwYAAHBNu+z72DU3N6u+vl4pKSnq2LGjSkpK7G0VFRWqrKyUx+ORJHk8Hu3du1fV1dX2mOLiYjmdTiUnJ9tjvrmPljEt+7gQh8Nh34alZQEAAAglrfqMXW5ursaMGaM+ffro5MmTWr16tbZv364tW7bI5XJp6tSpysnJUffu3eV0OvXII4/I4/Fo+PDhkqT09HQlJydr0qRJKigokM/n0/z585WVlSWHwyFJmjFjhn7zm9/o8ccf109+8hNt27ZNb7zxhoqKitr+6AEAAAzSqrCrrq7W5MmTdfz4cblcLg0dOlRbtmzRv/zLv0iSlixZovDwcI0fP1719fXKyMjQsmXL7OdHRERo06ZNmjlzpjwejzp37qwpU6boySeftMckJSWpqKhIs2fP1vPPP6/evXvrlVdeUUZGRhsdMgAAgJku+z527RX3sQMAACa4KvexAwAAQPtC2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEB2CPQEAuJb1m1cU7ClccUcWZQZ7CgC+Ja7YAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCH4ViyAKyoUvjUKAO0FV+wAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGKJVYZefn69bbrlFXbt2VWxsrMaNG6eKioqAMXfeeafCwsIClhkzZgSMqaysVGZmpqKjoxUbG6vHHntMZ8+eDRizfft23XTTTXI4HOrfv78KCwsv7QgBAABCRKvCbseOHcrKytLu3btVXFysxsZGpaenq66uLmDctGnTdPz4cXspKCiwtzU1NSkzM1MNDQ3atWuXXnvtNRUWFiovL88ec/jwYWVmZmrkyJEqLy/XrFmz9NBDD2nLli2XebgAAADm6tCawZs3bw54XFhYqNjYWJWVlWnEiBH2+ujoaLnd7vPu4+2339aBAwe0detWxcXF6YYbbtBTTz2luXPnauHChYqMjNSKFSuUlJSkZ555RpI0aNAg/fnPf9aSJUuUkZHR2mMEAAAICZf1Gbva2lpJUvfu3QPWr1q1Sj179tTgwYOVm5urr776yt7m9Xo1ZMgQxcXF2esyMjLk9/u1f/9+e0xaWlrAPjMyMuT1ei84l/r6evn9/oAFAAAglLTqit03NTc3a9asWbrttts0ePBge/2DDz6ovn37KiEhQXv27NHcuXNVUVGhN998U5Lk8/kCok6S/djn8110jN/v1+nTpxUVFXXOfPLz8/XEE09c6uEAAABc8y457LKysrRv3z79+c9/Dlg/ffp0+89DhgxRfHy8Ro0apU8++UTXX3/9pc/0H8jNzVVOTo792O/3KzEx8Yq9HgAAQHtzSW/FZmdna9OmTXrnnXfUu3fvi45NTU2VJH388ceSJLfbraqqqoAxLY9bPpd3oTFOp/O8V+skyeFwyOl0BiwAAAChpFVhZ1mWsrOztX79em3btk1JSUn/8Dnl5eWSpPj4eEmSx+PR3r17VV1dbY8pLi6W0+lUcnKyPaakpCRgP8XFxfJ4PK2ZLgAAQEhpVdhlZWXp97//vVavXq2uXbvK5/PJ5/Pp9OnTkqRPPvlETz31lMrKynTkyBH96U9/0uTJkzVixAgNHTpUkpSenq7k5GRNmjRJf/3rX7VlyxbNnz9fWVlZcjgckqQZM2bof//3f/X444/r4MGDWrZsmd544w3Nnj27jQ8fAADAHK0Ku+XLl6u2tlZ33nmn4uPj7WXt2rWSpMjISG3dulXp6ekaOHCg5syZo/Hjx2vjxo32PiIiIrRp0yZFRETI4/Hohz/8oSZPnqwnn3zSHpOUlKSioiIVFxdr2LBheuaZZ/TKK69wqxMAAICLCLMsywr2JK4Ev98vl8ul2tpaPm8HBFG/eUXBngIu05FFmcGeAhDSWtM0/FYsAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMESrwi4/P1+33HKLunbtqtjYWI0bN04VFRUBY86cOaOsrCz16NFDXbp00fjx41VVVRUwprKyUpmZmYqOjlZsbKwee+wxnT17NmDM9u3bddNNN8nhcKh///4qLCy8tCMEAAAIEa0Kux07digrK0u7d+9WcXGxGhsblZ6errq6OnvM7NmztXHjRq1bt047duzQsWPHdO+999rbm5qalJmZqYaGBu3atUuvvfaaCgsLlZeXZ485fPiwMjMzNXLkSJWXl2vWrFl66KGHtGXLljY4ZAAAADOFWZZlXeqTP//8c8XGxmrHjh0aMWKEamtr1atXL61evVr33XefJOngwYMaNGiQvF6vhg8frrfeekt33323jh07pri4OEnSihUrNHfuXH3++eeKjIzU3LlzVVRUpH379tmvNWHCBNXU1Gjz5s3fam5+v18ul0u1tbVyOp2XeogALlO/eUXBngIu05FFmcGeAhDSWtM0l/UZu9raWklS9+7dJUllZWVqbGxUWlqaPWbgwIHq06ePvF6vJMnr9WrIkCF21ElSRkaG/H6/9u/fb4/55j5axrTs43zq6+vl9/sDFgAAgFByyWHX3NysWbNm6bbbbtPgwYMlST6fT5GRkYqJiQkYGxcXJ5/PZ4/5ZtS1bG/ZdrExfr9fp0+fPu988vPz5XK57CUxMfFSDw0AAOCadMlhl5WVpX379mnNmjVtOZ9Llpubq9raWns5evRosKcEAABwVXW4lCdlZ2dr06ZN2rlzp3r37m2vd7vdamhoUE1NTcBVu6qqKrndbnvMe++9F7C/lm/NfnPM//0mbVVVlZxOp6Kios47J4fDIYfDcSmHAwAAYIRWXbGzLEvZ2dlav369tm3bpqSkpIDtKSkp6tixo0pKSux1FRUVqqyslMfjkSR5PB7t3btX1dXV9pji4mI5nU4lJyfbY765j5YxLfsAAADAuVp1xS4rK0urV6/WH//4R3Xt2tX+TJzL5VJUVJRcLpemTp2qnJwcde/eXU6nU4888og8Ho+GDx8uSUpPT1dycrImTZqkgoIC+Xw+zZ8/X1lZWfYVtxkzZug3v/mNHn/8cf3kJz/Rtm3b9MYbb6ioiG/XAQAAXEirrtgtX75ctbW1uvPOOxUfH28va9eutccsWbJEd999t8aPH68RI0bI7XbrzTfftLdHRERo06ZNioiIkMfj0Q9/+ENNnjxZTz75pD0mKSlJRUVFKi4u1rBhw/TMM8/olVdeUUZGRhscMgAAgJku6z527Rn3sQPaB+5jd+3jPnZAcF21+9gBAACg/SDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgiA7BngAQyvrNKwr2FAAABuGKHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEtzsBAFyU6bflObIoM9hTANoMV+wAAAAM0eqw27lzp8aOHauEhASFhYVpw4YNAdt/9KMfKSwsLGAZPXp0wJgTJ05o4sSJcjqdiomJ0dSpU3Xq1KmAMXv27NEdd9yhTp06KTExUQUFBa0/OgAAgBDS6rCrq6vTsGHDtHTp0guOGT16tI4fP24vf/jDHwK2T5w4Ufv371dxcbE2bdqknTt3avr06fZ2v9+v9PR09e3bV2VlZVq8eLEWLlyol19+ubXTBQAACBmt/ozdmDFjNGbMmIuOcTgccrvd59320UcfafPmzXr//fd18803S5JefPFF3XXXXfrP//xPJSQkaNWqVWpoaNCrr76qyMhIffe731V5ebmeffbZgAAEAADA/3dFPmO3fft2xcbGasCAAZo5c6a++OILe5vX61VMTIwddZKUlpam8PBwlZaW2mNGjBihyMhIe0xGRoYqKir05Zdfnvc16+vr5ff7AxYAAIBQ0uZhN3r0aL3++usqKSnRr3/9a+3YsUNjxoxRU1OTJMnn8yk2NjbgOR06dFD37t3l8/nsMXFxcQFjWh63jPm/8vPz5XK57CUxMbGtDw0AAKBda/PbnUyYMMH+85AhQzR06FBdf/312r59u0aNGtXWL2fLzc1VTk6O/djv9xN3AAAgpFzx251cd9116tmzpz7++GNJktvtVnV1dcCYs2fP6sSJE/bn8txut6qqqgLGtDy+0Gf3HA6HnE5nwAIAABBKrnjYffrpp/riiy8UHx8vSfJ4PKqpqVFZWZk9Ztu2bWpublZqaqo9ZufOnWpsbLTHFBcXa8CAAerWrduVnjIAAMA1qdVhd+rUKZWXl6u8vFySdPjwYZWXl6uyslKnTp3SY489pt27d+vIkSMqKSnRPffco/79+ysjI0OSNGjQII0ePVrTpk3Te++9p3fffVfZ2dmaMGGCEhISJEkPPvigIiMjNXXqVO3fv19r167V888/H/BWKwAAAAK1Ouw++OAD3XjjjbrxxhslSTk5ObrxxhuVl5eniIgI7dmzR//6r/+q73znO5o6dapSUlL0P//zP3I4HPY+Vq1apYEDB2rUqFG66667dPvttwfco87lcuntt9/W4cOHlZKSojlz5igvL49bnQAAAFxEmGVZVrAncSX4/X65XC7V1tbyeTu0W6b/BidwLeC3YtHetaZp+K1YAAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMESrw27nzp0aO3asEhISFBYWpg0bNgRstyxLeXl5io+PV1RUlNLS0nTo0KGAMSdOnNDEiRPldDoVExOjqVOn6tSpUwFj9uzZozvuuEOdOnVSYmKiCgoKWn90AAAAIaTVYVdXV6dhw4Zp6dKl591eUFCgF154QStWrFBpaak6d+6sjIwMnTlzxh4zceJE7d+/X8XFxdq0aZN27typ6dOn29v9fr/S09PVt29flZWVafHixVq4cKFefvnlSzhEAACA0BBmWZZ1yU8OC9P69es1btw4SV9frUtISNCcOXP0s5/9TJJUW1uruLg4FRYWasKECfroo4+UnJys999/XzfffLMkafPmzbrrrrv06aefKiEhQcuXL9fPf/5z+Xw+RUZGSpLmzZunDRs26ODBg99qbn6/Xy6XS7W1tXI6nZd6iMAV1W9eUbCnAIS8I4sygz0F4KJa0zRt+hm7w4cPy+fzKS0tzV7ncrmUmpoqr9crSfJ6vYqJibGjTpLS0tIUHh6u0tJSe8yIESPsqJOkjIwMVVRU6Msvv2zLKQMAABijQ1vuzOfzSZLi4uIC1sfFxdnbfD6fYmNjAyfRoYO6d+8eMCYpKemcfbRs69at2zmvXV9fr/r6evux3++/zKMBAAC4thjzrdj8/Hy5XC57SUxMDPaUAAAArqo2DTu32y1JqqqqClhfVVVlb3O73aqurg7YfvbsWZ04cSJgzPn28c3X+L9yc3NVW1trL0ePHr38AwIAALiGtGnYJSUlye12q6SkxF7n9/tVWloqj8cjSfJ4PKqpqVFZWZk9Ztu2bWpublZqaqo9ZufOnWpsbLTHFBcXa8CAAed9G1aSHA6HnE5nwAIAABBKWh12p06dUnl5ucrLyyV9/YWJ8vJyVVZWKiwsTLNmzdIvf/lL/elPf9LevXs1efJkJSQk2N+cHTRokEaPHq1p06bpvffe07vvvqvs7GxNmDBBCQkJkqQHH3xQkZGRmjp1qvbv36+1a9fq+eefV05OTpsdOAAAgGla/eWJDz74QCNHjrQft8TWlClTVFhYqMcff1x1dXWaPn26ampqdPvtt2vz5s3q1KmT/ZxVq1YpOztbo0aNUnh4uMaPH68XXnjB3u5yufT2228rKytLKSkp6tmzp/Ly8gLudQcAAIBAl3Ufu/aM+9jhWsB97IDg4z52aO+Cdh87AAAABA9hBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIbo0NY7XLhwoZ544omAdQMGDNDBgwclSWfOnNGcOXO0Zs0a1dfXKyMjQ8uWLVNcXJw9vrKyUjNnztQ777yjLl26aMqUKcrPz1eHDm0+XbRz/eYVBXsKAABcM65IKX33u9/V1q1b//+LfCPIZs+eraKiIq1bt04ul0vZ2dm699579e6770qSmpqalJmZKbfbrV27dun48eOaPHmyOnbsqKeffvpKTBcAAMAIVyTsOnToILfbfc762tpa/e53v9Pq1av1/e9/X5K0cuVKDRo0SLt379bw4cP19ttv68CBA9q6davi4uJ0ww036KmnntLcuXO1cOFCRUZGXokpAwAAXPOuyGfsDh06pISEBF133XWaOHGiKisrJUllZWVqbGxUWlqaPXbgwIHq06ePvF6vJMnr9WrIkCEBb81mZGTI7/dr//79V2K6AAAARmjzK3apqakqLCzUgAEDdPz4cT3xxBO64447tG/fPvl8PkVGRiomJibgOXFxcfL5fJIkn88XEHUt21u2XUh9fb3q6+vtx36/v42OCAAA4NrQ5mE3ZswY+89Dhw5Vamqq+vbtqzfeeENRUVFt/XK2/Pz8c760AQAAEEqu+O1OYmJi9J3vfEcff/yx3G63GhoaVFNTEzCmqqrK/kye2+1WVVXVOdtbtl1Ibm6uamtr7eXo0aNteyAAAADt3BUPu1OnTumTTz5RfHy8UlJS1LFjR5WUlNjbKyoqVFlZKY/HI0nyeDzau3evqqur7THFxcVyOp1KTk6+4Os4HA45nc6ABQAAIJS0+VuxP/vZzzR27Fj17dtXx44d04IFCxQREaEHHnhALpdLU6dOVU5Ojrp37y6n06lHHnlEHo9Hw4cPlySlp6crOTlZkyZNUkFBgXw+n+bPn6+srCw5HI62ni4AAIAx2jzsPv30Uz3wwAP64osv1KtXL91+++3avXu3evXqJUlasmSJwsPDNX78+IAbFLeIiIjQpk2bNHPmTHk8HnXu3FlTpkzRk08+2dZTBQAgJG6EfmRRZrCngKskzLIsK9iTuBL8fr9cLpdqa2t5W/YaFgr/wQWAK42wu7a1pmn4rVgAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGCIDsGeAC5dv3lFwZ4CAABoR7hiBwAAYAjCDgAAwBC8FQsAgOFM/+jOkUWZwZ5Cu8EVOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiiXYfd0qVL1a9fP3Xq1Empqal67733gj0lAACAdqvdht3atWuVk5OjBQsW6C9/+YuGDRumjIwMVVdXB3tqAAAA7VK7Dbtnn31W06ZN049//GMlJydrxYoVio6O1quvvhrsqQEAALRL7fI+dg0NDSorK1Nubq69Ljw8XGlpafJ6va3a1+AFWxTuiG7rKQIAgHbC9Pv0Ndd/9a3Htsuw+/vf/66mpibFxcUFrI+Li9PBgwfP+5z6+nrV19fbj2trayW17i8DAACgvWlpGcuy/uHYdhl2lyI/P19PPPHEOes/W/6jqz8ZAACANnby5Em5XK6LjmmXYdezZ09FRESoqqoqYH1VVZXcbvd5n5Obm6ucnBz7cXNzs06cOKEePXooLCzsis73WuT3+5WYmKijR4/K6XQGezr4Pzg/7R/nqH3j/LR/nKNvz7IsnTx5UgkJCf9wbLsMu8jISKWkpKikpETjxo2T9HWolZSUKDs7+7zPcTgccjgcAetiYmKu8EyvfU6nk39Q7Rjnp/3jHLVvnJ/2j3P07fyjK3Ut2mXYSVJOTo6mTJmim2++Wbfeequee+451dXV6cc//nGwpwYAANAutduw+7d/+zd9/vnnysvLk8/n0w033KDNmzef84UKAAAAfK3dhp0kZWdnX/CtV1weh8OhBQsWnPP2NdoHzk/7xzlq3zg/7R/n6MoIs77Nd2cBAADQ7rXbX54AAABA6xB2AAAAhiDsAAAADEHYhZgjR45o6tSpSkpKUlRUlK6//notWLBADQ0NAeP27NmjO+64Q506dVJiYqIKCgqCNOPQ86tf/Urf+973FB0dfcF7MVZWViozM1PR0dGKjY3VY489prNnz17diYawpUuXql+/furUqZNSU1P13nvvBXtKIWvnzp0aO3asEhISFBYWpg0bNgRstyxLeXl5io+PV1RUlNLS0nTo0KHgTDYE5efn65ZbblHXrl0VGxurcePGqaKiImDMmTNnlJWVpR49eqhLly4aP378OT9QgG+PsAsxBw8eVHNzs1566SXt379fS5Ys0YoVK/Qf//Ef9hi/36/09HT17dtXZWVlWrx4sRYuXKiXX345iDMPHQ0NDbr//vs1c+bM825vampSZmamGhoatGvXLr322msqLCxUXl7eVZ5paFq7dq1ycnK0YMEC/eUvf9GwYcOUkZGh6urqYE8tJNXV1WnYsGFaunTpebcXFBTohRde0IoVK1RaWqrOnTsrIyNDZ86cucozDU07duxQVlaWdu/ereLiYjU2Nio9PV11dXX2mNmzZ2vjxo1at26dduzYoWPHjunee+8N4qyvcRZCXkFBgZWUlGQ/XrZsmdWtWzervr7eXjd37lxrwIABwZheyFq5cqXlcrnOWf/f//3fVnh4uOXz+ex1y5cvt5xOZ8A5w5Vx6623WllZWfbjpqYmKyEhwcrPzw/irGBZliXJWr9+vf24ubnZcrvd1uLFi+11NTU1lsPhsP7whz8EYYaorq62JFk7duywLOvr89GxY0dr3bp19piPPvrIkmR5vd5gTfOaxhU7qLa2Vt27d7cfe71ejRgxQpGRkfa6jIwMVVRU6MsvvwzGFPENXq9XQ4YMCbhZd0ZGhvx+v/bv3x/EmZmvoaFBZWVlSktLs9eFh4crLS1NXq83iDPD+Rw+fFg+ny/gfLlcLqWmpnK+gqS2tlaS7P/nlJWVqbGxMeAcDRw4UH369OEcXSLCLsR9/PHHevHFF/XTn/7UXufz+c75hY+Wxz6f76rOD+fi/ATP3//+dzU1NZ3375+/+/an5ZxwvtqH5uZmzZo1S7fddpsGDx4s6etzFBkZec7niTlHl46wM8S8efMUFhZ20eXgwYMBz/nss880evRo3X///Zo2bVqQZh4aLuX8AIBJsrKytG/fPq1ZsybYUzFau/5JMXx7c+bM0Y9+9KOLjrnuuuvsPx87dkwjR47U9773vXO+FOF2u8/5RlLLY7fb3TYTDjGtPT8X43a7z/kWJufn6ujZs6ciIiLO+++Dv/v2p+WcVFVVKT4+3l5fVVWlG264IUizCk3Z2dnatGmTdu7cqd69e9vr3W63GhoaVFNTE3DVjn9Tl46wM0SvXr3Uq1evbzX2s88+08iRI5WSkqKVK1cqPDzwwq3H49HPf/5zNTY2qmPHjpKk4uJiDRgwQN26dWvzuYeC1pyff8Tj8ehXv/qVqqurFRsbK+nr8+N0OpWcnNwmr4Hzi4yMVEpKikpKSjRu3DhJX7+9VFJSwu9at0NJSUlyu90qKSmxQ87v96u0tPSC3zpH27IsS4888ojWr1+v7du3KykpKWB7SkqKOnbsqJKSEo0fP16SVFFRocrKSnk8nmBM+doX7G9v4Or69NNPrf79+1ujRo2yPv30U+v48eP20qKmpsaKi4uzJk2aZO3bt89as2aNFR0dbb300ktBnHno+Nvf/mZ9+OGH1hNPPGF16dLF+vDDD60PP/zQOnnypGVZlnX27Flr8ODBVnp6ulVeXm5t3rzZ6tWrl5WbmxvkmYeGNWvWWA6HwyosLLQOHDhgTZ8+3YqJiQn4ljKunpMnT9r/RiRZzz77rPXhhx9af/vb3yzLsqxFixZZMTEx1h//+Edrz5491j333GMlJSVZp0+fDvLMQ8PMmTMtl8tlbd++PeD/N1999ZU9ZsaMGVafPn2sbdu2WR988IHl8Xgsj8cTxFlf2wi7ELNy5UpL0nmXb/rrX/9q3X777ZbD4bD+6Z/+yVq0aFGQZhx6pkyZct7z884779hjjhw5Yo0ZM8aKioqyevbsac2ZM8dqbGwM3qRDzIsvvmj16dPHioyMtG699VZr9+7dwZ5SyHrnnXfO++9lypQplmV9fcuTX/ziF1ZcXJzlcDisUaNGWRUVFcGddAi50P9vVq5caY85ffq09fDDD1vdunWzoqOjrR/84AcBFxvQOmGWZVlX8QIhAAAArhC+FQsAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAJehX79+eu6554I9DQCQRNgBwGV5//33NX369G811rIs5eXlKT4+XlFRUUpLS9OhQ4eu8AwBhBLCDgAuQ69evRQdHf2txhYUFOiFF17QihUrVFpaqs6dOysjI0Nnzpy5wrMEECoIOwAhbfPmzbr99tsVExOjHj166O6779Ynn3wiSXr99dfVpUuXgKtqDz/8sAYOHKivvvpKUuBbsZZlaeHCherTp48cDocSEhL06KOP2tuee+45zZ8/X/fcc4+GDh2q119/XceOHdOGDRuu6jEDMBdhByCk1dXVKScnRx988IFKSkoUHh6uH/zgB2pubtbkyZN11113aeLEiTp79qyKior0yiuvaNWqVee9Svdf//VfWrJkiV566SUdOnRIGzZs0JAhQyRJhw8fls/nU1pamj3e5XIpNTVVXq/3qh0vALN1CPYEACCYxo8fH/D41VdfVa9evXTgwAENHjxYL730koYOHapHH31Ub775phYuXKiUlJTz7quyslJut1tpaWnq2LGj+vTpo1tvvVWS5PP5JElxcXEBz4mLi7O3AcDl4oodgJB26NAhPfDAA7ruuuvkdDrVr18/SV9HmiR169ZNv/vd77R8+XJdf/31mjdv3gX3df/99+v06dO67rrrNG3aNK1fv15nz569GocBAJIIOwAhbuzYsTpx4oR++9vfqrS0VKWlpZKkhoYGe8zOnTsVERGh48ePq66u7oL7SkxMVEVFhZYtW6aoqCg9/PDDGjFihBobG+V2uyVJVVVVAc+pqqqytwHA5SLsAISsL774QhUVFZo/f75GjRqlQYMG6csvvwwYs2vXLv3617/Wxo0b1aVLF2VnZ190n1FRURo7dqxeeOEFbd++XV6vV3v37lVSUpLcbrdKSkrssX6/X6WlpfJ4PFfk+ACEHj5jByBkdevWTT169NDLL7+s+Ph4VVZWBrzVevLkSU2aNEmPPvqoxowZo969e+uWW27R2LFjdd99952zv8LCQjU1NSk1NVXR0dH6/e9/r6ioKPXt21dhYWGaNWuWfvnLX+qf//mflZSUpF/84hdKSEjQuHHjruJRAzAZV+wAhKzw8HCtWbNGZWVlGjx4sGbPnq3Fixfb2//93/9dnTt31tNPPy1JGjJkiJ5++mn99Kc/1WeffXbO/mJiYvTb3/5Wt912m4YOHaqtW7dq48aN6tGjhyTp8ccf1yOPPKLp06frlltu0alTp7R582Z16tTp6hwwAOOFWZZlBXsSAAAAuHxcsQMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAACAIf4fMaXEh6lLUIUAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(); # Basic plot" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "image/png": "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9OnTYY/58MMP9bWvfU3333+/Hn744ShNHluu5TgBgOnKy8v1zjvvaM+ePdEexXhR+0kxROb73/++HnrooU/d5sYbbwz93dLSorvvvltf+cpXrrgowuVyXXHVUd99l8s1OAPHqEiP06dxuVxXXH3JcRpeN9xwg0aNGtXvvxeOwfWp77i0trZq3LhxoeWtra265ZZbojRVbKuoqFBtba2OHDmi8ePHh5a7XC4Fg0G1t7eHnbXj39fAEHYjRFZWlrKysj7Xth9++KHuvvtuFRQUaOfOnYqPDz8x63a79W//9m/q6upSQkKCJOnw4cO66aabNHbs2EGfPZZEcpw+i9vt1uOPP662tjZlZ2dLunyc7Ha78vPzB+U18OkSExNVUFCguro6zZ07V9Llt5Tq6ur4revrVF5enlwul+rq6kIh5/f71dDQcNUr0DE0LMvS0qVLtW/fPr322mvKy8sLW19QUKCEhATV1dWptLRUktTU1KTm5ma53e5ojGyGaF+9gcH1wQcfWF/60pesmTNnWh988IF1/vz50K1Pe3u75XQ6rYULF1rvvPOOtWfPHislJcXasWNHFCePPX/84x+tt956y9qwYYOVlpZmvfXWW9Zbb71lXbhwwbIsy+ru7ramTp1qzZo1y3r77betQ4cOWVlZWVZVVVWUJ48te/bssWw2m7Vr1y7r1KlT1uLFi6309PSwq5UxvC5cuBD69yLJeuqpp6y33nrL+uMf/2hZlmVt3LjRSk9Pt375y19av//976377rvPysvLsy5duhTlyWPLkiVLLIfDYb322mth/xd98sknoW2++93vWrm5udarr75qvfHGG5bb7bbcbncUpx75CDvD7Ny505LU7+1v/e53v7PuvPNOy2azWV/4whesjRs3Rmni2FVWVtbvcfrNb34T2ubs2bPW7NmzreTkZOuGG26wvv/971tdXV3RGzpGPfPMM1Zubq6VmJho3X777daxY8eiPVJM+81vftPvv52ysjLLsi5/5cmaNWssp9Np2Ww2a+bMmVZTU1N0h45BV/u/aOfOnaFtLl26ZD3yyCPW2LFjrZSUFOsb3/hG2IkIRC7OsixrGE8QAgAAYIhwVSwAAIAhCDsAAABDEHYAAACGIOwAAAAMQdgBAAAYgrADAAAwBGEHAABgCMIOAADAEIQdAERg0qRJevrpp6M9BgD0i7ADgAgcP35cixcv/lzbWpaltWvXaty4cUpOTlZRUZHOnDkzxBMCiGWEHQBEICsrSykpKZ9r25qaGm3evFnbt29XQ0ODUlNTVVxcrM7OziGeEkCsIuwAxJRDhw7pzjvvVHp6ujIzM3XvvffqD3/4gyTphRdeUFpaWthZtUceeUSTJ0/WJ598Iin8rVjLsrR+/Xrl5ubKZrMpJydHjz76aGjd008/rdWrV+u+++7T9OnT9cILL6ilpUX79+8f1n0GEDsIOwAxpaOjQ5WVlXrjjTdUV1en+Ph4feMb31Bvb68efPBBff3rX9eCBQvU3d2tgwcP6r/+67/04osv9nuW7n/+53+0adMm7dixQ2fOnNH+/fs1bdo0SdL7778vr9eroqKi0PYOh0OFhYXyeDzDtr8AYsvoaA8AAMOptLQ07P5Pf/pTZWVl6dSpU5o6dap27Nih6dOn69FHH9X//u//av369SooKOj3uZqbm+VyuVRUVKSEhATl5ubq9ttvlyR5vV5JktPpDHuM0+kMrQOAwcYZOwAx5cyZM3rggQd04403ym63a9KkSZIuR5okjR07Vs8995y2bdumL37xi1q1atVVn+v+++/XpUuXdOONN+rhhx/Wvn371N3dPRy7AQD9IuwAxJQ5c+bo448/1rPPPquGhgY1NDRIkoLBYGibI0eOaNSoUTp//rw6Ojqu+lwTJkxQU1OTtm7dquTkZD3yyCO666671NXVJZfLJUlqbW0Ne0xra2toHQAMNsIOQMz485//rKamJq1evVozZ87UlClT9Je//CVsm6NHj+rf//3fdeDAAaWlpamiouJTnzM5OVlz5szR5s2b9dprr8nj8ejEiRPKy8uTy+VSXV1daFu/36+Ghga53e4h2T8A4DN2AGLG2LFjlZmZqZ/85CcaN26cmpubw95qvXDhghYuXKhHH31Us2fP1vjx43Xbbbdpzpw5mj9//hXPt2vXLvX09KiwsFApKSn62c9+puTkZE2cOFFxcXFatmyZfvzjH+vLX/6y8vLytGbNGuXk5Gju3LnDuNcAYgln7ADEjPj4eO3Zs0eNjY2aOnWqli9frieffDK0/nvf+55SU1P1xBNPSJKmTZumJ554Qt/5znf04YcfXvF86enpevbZZ3XHHXdo+vTpeuWVV3TgwAFlZmZKkn7wgx9o6dKlWrx4sW677TZdvHhRhw4dUlJS0vDsMICYE2dZlhXtIQAAADBwnLEDAAAwBGEHAABgCMIOAADAEIQdAACAIQg7AAAAQxB2AAAAhiDsAAAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCH+P/jVq/J8CcMPAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(density=True, errors=True, ecolor=\"red\"); # Include errors" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "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LCxMBQUF2rNnTzUcEQAAlx+CXSXKzc3Vf//7X6WlpemWW26RJDVr1kxdunQxa5o3by5J6tu3r7m8LKi88cYbeuedd3T8+HE98MAD8vX1/dt9fv311xo5cqT27dunrl27Kjo6ulzN999/rzFjxmj9+vVq3Lix+vbtq4SEBNWvX18vvfSSUlNTy717tkOHDurXr5/i4+P/toft27dr+vTp2rJli1q1aiVJf/tmjEWLFqlu3bqaNm2anJxOnzieMWOG2rdvr59//lktW7bUH3/8obFjx2rhwoXq3r27uW779u3/ticAAGojLsVWIg8PD3l4eGjBggUqLCw8Y80PP/wg6fRbFw4ePGhOf/nllxo/frwmTJig9evXKyAgQB988ME597dv3z7de++96t27tzIzM/XEE0/oxRdfdKjZtWuXevbsqX79+mnTpk364osv9P3335uvBOvfv7/WrVvn8FaKrVu3atOmTXrkkUcknb50nJSUdNY+Fi5cqBYtWmjRokUKCQlR8+bN9cQTT5zzjF1hYaFcXFzMUCdJbm5ukk4HUUlKSUlRaWmp9u/frzZt2qhp06Z64IEHtG/fvnP+XgAAqK0IdpWoTp06SkpK0qeffipvb2/deOONeumll7Rp0yazpuwsnLe3t/z9/c3pKVOmaPDgwRo8eLBatWql1157TaGhoefc3/Tp03XllVfqrbfeUqtWrdS/f/9yr+hKSEhQ//79NXLkSF111VW64YYb9N5772nWrFk6efKkrrnmGnXo0EFz5swx15k9e7bCwsLUsmVLSVKrVq3k5eV11j5++eUX7d27V3PnztWsWbOUlJSkjIwM3XfffWdd5/bbb5fdbtekSZNUVFSkP/74wwylBw8eNLdbWlqqCRMmaMqUKfrXv/6lI0eO6I477lBRUdE5fzcAANRGBLtK1q9fPx04cEBfffWVevbsqbS0NHXq1OmcZ7yk05czw8LCHOaFh4df9Do//vijkpKSzLOJHh4eioyMVGlpqXbv3i3p9Fm7smBnGIY+//xz9e/f39zGjh07zEvHZ1JaWqrCwkLNmjVLN998s2699VZ98sknWr58ubKyss64zjXXXKNPP/1Ub731ltzd3eXv76+QkBD5+fmZZ/FKS0tVXFys9957T5GRkeratas+//xz7dy5U8uXLz/n7wYAgNqIYFcF6tWrpzvuuEMvv/yyVq9erYEDB2rcuHE10suxY8f05JNPKjMz0/z8+OOP2rlzp6688vR7NR9++GFlZWVpw4YNWr16tfbt26cHH3zwvPcREBCgOnXq6OqrrzbntWnTRpKUnZ191vUeeeQR2e127d+/X4cPH9b48eP122+/qUWLFuZ2JTmcufT19VXjxo3PuV0AAGorgl01CA0NVUFBgTldt25dlZSUONS0adOm3AMMa9asOed227Rpo3Xr1p1znU6dOmnbtm1q2bJluY+Li4skqWnTprrllls0e/ZszZ49W3fccYeaNGly3sd344036tSpUw736f3000+STj8c8nf8/Pzk4eGhL774wgzFZduV5HDW78iRI/r999/Pa7sAANQ2BLtKdPjwYd1+++367LPPtGnTJu3evVtz587VxIkTdc8995h1zZs3V2pqqux2u/744w9Jp4cLmTlzphITE/XTTz9p3Lhx2rp1q8P258+fr9atW5vTw4YN086dO/X8888rKytLc+bMKXfJd/To0Vq9erViY2OVmZmpnTt36j//+Y/58ESZ/v37Kzk5WXPnznW4DCtJrVu31vz588963BEREerUqZMGDRqkjRs3KiMjQ08++aTuuOMO8yzeunXr1Lp1a+3fv99cb+rUqdqwYYN++uknTZs2TbGxsUpISJC3t7ck6eqrr9Y999yjZ555RqtXr9aWLVsUHR2t1q1b67bbbvubbwMAgNqHYFeJPDw8FBYWpnfeeUfdunVT27Zt9fLLL2vIkCGaOnWqWffWW28pJSVFQUFB6tixoyTpwQcf1Msvv6wXXnhBnTt31t69ezV8+HCH7efl5TmcvQoODta///1vLViwQB06dNCMGTM0YcIEh3Xat2+vFStW6KefftLNN9+sjh07Kj4+XoGBgQ519913nw4fPqzjx4+rT58+DsuysrKUl5d31uN2cnLSwoUL1bhxY3Xr1k1RUVFq06aNkpOTzZrjx48rKytLxcXF5rx169bpjjvuULt27fTRRx/pww8/1NNPP+2w7VmzZiksLExRUVG65ZZbVLduXS1ZskR169Y9az8AANRWNsMwjJpuoirk5+fLy8tLeXl58vT0rOl2gFpr6bacmm4BFyki1K+mWwBqtYpkGs7YAQAAWATBDgAAwCIIdgAAABZBsAMAALAIgl0Nu/XWWzVy5MiabgMAAFgAwa6SDRw4UDabTcOGDSu3LCYmRjabzeF9rvPmzdOrr75ajR2eVlxcrNGjR6tdu3aqX7++AgMDNWDAAB04cKBc7eLFixUWFiY3Nzf5+PiUGw7lr44dO6bY2Fg1bdpUbm5uCg0N1YwZMxxqdu3apb59+8rX11eenp564IEHlJPD05MAAFwMgl0VCAoKUnJysk6cOGHOO3nypObMmaPg4GCH2oYNG6pBgwbV3aKOHz+uDRs26OWXX9aGDRs0b948ZWVl6e6773ao+/e//63HHntMjz/+uH788UetWrVKjzzyyDm3HRcXpyVLluizzz7T9u3bNXLkSMXGxuqrr76SJBUUFKhHjx6y2WxatmyZVq1apaKiIvXu3VulpaVVdswAAFhdnZpuwIo6deqkXbt2ad68eeZbHObNm6fg4GCFhIQ41N5666269tprNWXKFEmn30oxdOhQ/fzzz5o7d658fHw0duxYDR06tFJ79PLyUkpKisO8qVOnqkuXLsrOzlZwcLBOnTqlZ555RpMmTdLgwYPNuj+/u/VMVq9erejoaN16662SpKFDh+rDDz/UunXrdPfdd2vVqlXas2ePNm7caI7H8+mnn8rHx0fLli1TREREpR4rAAC1BWfsqsigQYOUmJhoTs+cOVOPP/74ea371ltv6brrrtPGjRs1YsQIDR8+3OGNE3+VlJQkm8120T3n5eXJZrOZr/TasGGD9u/fLycnJ3Xs2FEBAQHq1auXtmzZcs7t3HDDDfrqq6+0f/9+GYah5cuX66efflKPHj0kSYWFhbLZbHJ1dTXXqVevnpycnPT9999f9HEAAFBbEeyqyKOPPqrvv/9ee/fu1d69e7Vq1So9+uij57XunXfeqREjRqhly5YaPXq0GjdurOXLl5+13svLS61atbqofk+ePKnRo0fr4YcfNs+i/fLLL5Kk8ePHa+zYsVq0aJF8fHx066236siRI2fd1vvvv6/Q0FA1bdpULi4u6tmzp6ZNm6Zu3bpJkrp27ar69etr9OjROn78uAoKCvTcc8+ppKREBw8evKjjAACgNiPYVRFfX19FRUUpKSlJiYmJioqKUuPGjc9r3fbt25s/22w2+fv769ChQ2et79u3r3bs2HHW5bNnz5aHh4f5+e9//+uwvLi4WA888IAMw9D06dPN+WX3u/3jH/9Qv3791LlzZyUmJspms2nu3Lln3d/777+vNWvW6KuvvlJGRobeeustxcTEaOnSpZJO/27mzp2rhQsXysPDQ15eXsrNzVWnTp3k5MR/kgAAXCjusatCgwYNUmxsrCRp2rRp573eX19wb7PZLuqhgrvvvlthYWHm9BVXXGH+XBbq9u7dq2XLljm8gy4gIECS4z11rq6uatGihbKzs8+4rxMnTuill17S/PnzFRUVJel0UM3MzNTkyZPN++d69OihXbt26ffff1edOnXk7e0tf39/tWjR4oKPEwCA2o5gV4V69uypoqIi2Ww2RUZG1lgfDRo0OOOTt2WhbufOnVq+fLkaNWrksLxz585ydXVVVlaWbrrpJnOdPXv2qFmzZmfcV3FxsYqLi8udeXN2dj5jOC07i7ls2TIdOnSo3FO5AADg/FXouldCQoKuv/56NWjQQE2aNFGfPn3K3dR/6623ymazOXz+OqZbdna2oqKi5O7uriZNmuj555/XqVOnHGrS0tLUqVMnubq6qmXLlkpKSrqwI6xBzs7O2r59u7Zt2yZnZ+dK22737t01depUc3r+/Plq3bp1hbZRXFys++67T+vXr9fs2bNVUlIiu90uu92uoqIiSZKnp6eGDRumcePG6bvvvlNWVpaGDx8uSbr//vvNbbVu3Vrz588317nlllv0/PPPKy0tTbt371ZSUpJmzZqlvn37muskJiZqzZo12rVrlz777DPdf//9GjVq1EXfKwgAQG1WoTN2K1asUExMjK6//nqdOnVKL730knr06KFt27apfv36Zt2QIUP0f//3f+a0u7u7+XNJSYmioqLk7++v1atX6+DBgxowYIDq1q2rCRMmSJJ2796tqKgoDRs2TLNnz1ZqaqqeeOIJBQQE1OiZrwvx50ublaXsEmaZvLy8cz41eyb79+83x5W79tprHZYtX77cHKpk0qRJqlOnjh577DGdOHFCYWFhWrZsmXx8fMz6rKws5eXlmdPJyckaM2aM+vfvryNHjqhZs2Z6/fXXHQJ+VlaWxowZoyNHjqh58+b6xz/+oVGjRlXoGAAAgCObYRjGha7822+/qUmTJlqxYoX5xONfx2X7q2+++UZ33XWXDhw4ID8/P0nSjBkzNHr0aP32229ycXHR6NGjtXjxYodhNR566CHl5uZqyZIl59Vbfn6+vLy8lJeXVyXhCsD5WbqNN4pc7iJC/Wq6BaBWq0imuahHEMvO0jRs2NBh/uzZs9W4cWO1bdtWY8aM0fHjx81l6enpateunRnqJCkyMlL5+fnaunWrWfPXQWojIyOVnp5+1l4KCwuVn5/v8AEAAKhNLvjhidLSUo0cOVI33nij2rZta85/5JFH1KxZMwUGBmrTpk0aPXq0srKyNG/ePEmS3W53CHWSzGm73X7Omvz8fJ04cUJubm7l+klISNArr7xyoYcDAABw2bvgYBcTE6MtW7aUe1PAn1991a5dOwUEBKh79+7atWuXrrzyygvv9G+MGTNGcXFx5nR+fr6CgoKqbH8AAACXmgu6FBsbG6tFixZp+fLlatq06Tlry8ZP+/nnnyVJ/v7+yslxvOembNrf3/+cNZ6enmc8WyedHl/N09PT4QMAAFCbVCjYGYah2NhYzZ8/X8uWLSv3QvszyczMlPS/wW7Dw8O1efNmhzcppKSkyNPT0xwINzw8XKmpqQ7bSUlJUXh4eEXaBQAAqFUqFOxiYmL02Wefac6cOWrQoIE57tmJEycknR6G49VXX1VGRob27Nmjr776SgMGDFC3bt3M12T16NFDoaGheuyxx/Tjjz/q22+/1dixYxUTE2O+FH7YsGH65Zdf9MILL2jHjh364IMP9OWXX14Ww2EMHDjwjGP3Sad/fzabTQMHDqz+xv5i3rx5uuOOO+Tr6ytPT0+Fh4fr22+/dahp3rx5uTEJbTabYmJizrrdjz/+WDfffLN8fHzk4+OjiIgIrVu3rty+e/TooUaNGslms5nhHwAAXJwKBbvp06crLy9Pt956qwICAszPF198IUlycXHR0qVL1aNHD7Vu3VrPPvus+vXrp4ULF5rbcHZ21qJFi+Ts7Kzw8HA9+uijGjBggMO4dyEhIVq8eLFSUlLUoUMHvfXWW/rnP/952YxhFxQUpOTkZDPwStLJkyc1Z84cBQcH12Bn/7Ny5Urdcccd+vrrr5WRkaHbbrtNvXv31saNG82aH374QQcPHjQ/KSkpkhwHJ/6rtLQ0Pfzww1q+fLnS09MVFBSkHj16aP/+/WZNQUGBbrrpJr355ptVd4AAANRCFzWO3aWspsaxGzhwoHJzc7Vr1y69+OKL6t+/vyRpzpw5evPNNxUSEiJvb2/zTRpLlizRa6+9pi1btphh99133zUfNJk1a5ZGjBihjRs36qqrrpIkjRgxQsuWLdOGDRscBn++WNdcc40efPBBxcfHn3H5yJEjtWjRIu3cuVM2m+28tllSUiIfHx9NnTpVAwYMcFi2Z88ehYSEaOPGjeUGSYZ1MI7d5Y9x7ICaVW3j2OHsBg0apMTERHN65syZevzxx8vVFRQUKC4uTuvXr1dqaqqcnJzUt29f872qAwYM0J133qn+/fvr1KlTWrx4sf75z39q9uzZZw11e/bskc1mU1pa2nn3W1paqqNHj5Ybk7BMUVGRPvvsMw0aNOi8Q50kHT9+XMXFxWfdLgAAqDwXPNwJzu3RRx/VmDFjtHfvXknSqlWrlJycXC5s9evXz2F65syZ8vX11bZt28zxAT/88EO1b99eTz/9tObNm6fx48erc+fOZ9133bp11apVqwqdzZs8ebKOHTumBx544IzLFyxYoNzc3ArfHzh69GgFBgaWG3AaAABUPoJdFfH19VVUVJSSkpJkGIaioqLUuHHjcnU7d+5UfHy81q5dq99//908U5ednW0GOx8fH33yySeKjIzUDTfcoBdffPGc+77iiiu0Y8eO8+51zpw5euWVV/Sf//xHTZo0OWPNJ598ol69eikwMPC8t/vGG2+YYbZevXrnvR4AALgwBLsqNGjQIMXGxkqSpk2bdsaa3r17q1mzZvr4448VGBio0tJStW3bVkVFRQ51K1eulLOzsw4ePKiCggI1aNCgUnpMTk7WE088oblz5571rNrevXu1dOlS8+0h52Py5Ml64403tHTpUvOJaAAAULW4x64K9ezZU0VFRSouLj7jE72HDx9WVlaWxo4dq+7du6tNmzb6448/ytWtXr1ab775phYuXCgPDw8zLF6szz//XI8//rg+//xzRUVFnbUuMTFRTZo0OWfNn02cOFGvvvqqlixZouuuu65SegUAAH+PM3ZVyNnZWdu3bzd//isfHx81atRIH330kQICApSdnV3uMuvRo0f12GOP6emnn1avXr3UtGlTXX/99erdu7fuu+8+Sadfp7Z//37NmjVLkrR//351795ds2bNUpcuXc7Y25w5cxQdHa13331XYWFh5nt63dzc5OXlZdaVlpYqMTFR0dHRqlOn/H8uAwYM0BVXXKGEhARJ0ptvvqn4+HjNmTNHzZs3N7fr4eEhDw8PSdKRI0eUnZ2tAwcOSJKysrIknX7jSNnbRwAAQMVxxq6Knev1Zk5OTkpOTlZGRobatm2rUaNGadKkSQ41zzzzjOrX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GTsAwDlV17A8NTUkT0SoX7XsB6gOnLEDAACwiAoHu5UrV6p3794KDAyUzWbTggULHJYPHDjQfFy97NOzZ0+HmiNHjqh///7y9PSUt7e3Bg8erGPHjjnUbNq0STfffLPq1aunoKAgTZw4seJHBwAAUItUONgVFBSoQ4cOmjZt2llrevbsqYMHD5qfzz//3GF5//79tXXrVqWkpGjRokVauXKlhg4dai7Pz89Xjx491KxZM2VkZGjSpEkaP368Pvroo4q2CwAAUGtU+B67Xr16qVevXuescXV1lb+//xmXbd++XUuWLNEPP/yg6667TpL0/vvv684779TkyZMVGBio2bNnq6ioSDNnzpSLi4uuueYaZWZm6u2333YIgAAAAPifKrnHLi0tTU2aNFGrVq00fPhwHT582FyWnp4ub29vM9RJUkREhJycnLR27Vqzplu3bnJxcTFrIiMjlZWVpT/++OOM+ywsLFR+fr7DBwAAoDap9GDXs2dPzZo1S6mpqXrzzTe1YsUK9erVSyUlJZIku92uJk2aOKxTp04dNWzYUHa73azx83N8SqlsuqzmrxISEuTl5WV+goKCKvvQAABVqGysxZSt9mp7Ihawmkof7uShhx4yf27Xrp3at2+vK6+8UmlpaerevXtl7840ZswYxcXFmdP5+fmEOwAAUKtU+XAnLVq0UOPGjfXzzz9Lkvz9/XXo0CGHmlOnTunIkSPmfXn+/v7KyXEcN6ls+mz37rm6usrT09PhAwAAUJtUebD79ddfdfjwYQUEBEiSwsPDlZubq4yMDLNm2bJlKi0tVVhYmFmzcuVKFRcXmzUpKSlq1aqVfHx8qrplAACAy1KFg92xY8eUmZmpzMxMSdLu3buVmZmp7OxsHTt2TM8//7zWrFmjPXv2KDU1Vffcc49atmypyMhISVKbNm3Us2dPDRkyROvWrdOqVasUGxurhx56SIGBgZKkRx55RC4uLho8eLC2bt2qL774Qu+++67DpVYAAAA4qnCwW79+vTp27KiOHTtKkuLi4tSxY0fFx8fL2dlZmzZt0t13362rr75agwcPVufOnfXf//5Xrq6u5jZmz56t1q1bq3v37rrzzjt10003OYxR5+Xlpe+++067d+9W586d9eyzzyo+Pp6hTgAAAM7BZhiGUdNNVIX8/Hx5eXkpLy+P++1wyaqud3ACODveFYtL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AOsi2AGo1QoKChQXF6f169crNTVVTk5O6tu3r0pLSzVgwADdeeed6t+/v06dOqXFixfrn//8p2bPnn3Gs3T//ve/9c477+jDDz/Uzp07tWDBArVr106StHv3btntdkVERJj1Xl5eCgsLU3p6erUdLwBrq1PTDQBATerXr5/D9MyZM+Xr66tt27apbdu2+vDDD9W+fXs9/fTTmjdvnsaPH6/OnTufcVvZ2dny9/dXRESE6tatq+DgYHXp0kWSZLfbJUl+fn4O6/j5+ZnLAOBiccYOQK22c+dOPfzww2rRooU8PT3VvHlzSadDmiT5+Pjok08+0fTp03XllVfqxRdfPOu27r//fp04cUItWrTQkCFDNH/+fJ06dao6DgMAJBHsANRyvXv31pEjR/Txxx9r7dq1Wrt2rSSpqKjIrFm5cqWcnZ118OBBFRQUnHVbQUFBysrK0gcffCA3NzeNGDFC3bp1U3Fxsfz9/SVJOTk5Duvk5OSYywDgYhHsANRahw8fVlZWlsaOHavu3burTZs2+uOPPxxqVq9erTfffFMLFy6Uh4eHYmNjz7lNNzc39e7dW++9957S0tKUnp6uzZs3KyQkRP7+/kpNTTVr8/PztXbtWoWHh1fJ8QGofbjHDkCt5ePjo0aNGumjjz5SQECAsrOzHS61Hj16VI899piefvpp9erVS02bNtX111+v3r1767777iu3vaSkJJWUlCgsLEzu7u767LPP5ObmpmbNmslms2nkyJF67bXXdNVVVykkJEQvv/yyAgMD1adPn2o8agBWxhk7ALWWk5OTkpOTlZGRobZt22rUqFGaNGmSufyZZ55R/fr1NWHCBElSu3btNGHCBD355JPav39/ue15e3vr448/1o033qj27dtr6dKlWrhwoRo1aiRJeuGFF/TUU09p6NChuv7663Xs2DEtWbJE9erVq54DBmB5NsMwjJpuAgAAABePM3YAAAAWQbADAACwCIIdAACARRDsAAAALIJgBwAAYBEEOwAAAIsg2AEAAFgEwQ4AAMAiCHYAAAAWQbADAACwCIIdAACARRDsAAAALOL/AxyKuACNiVc9AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(show_stats=True, errors=True, alpha=0.3); # Show summary statistics (not fully supported yet)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "image/png": "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WrVqlf70pz/pnXfeueBZuv/8z//Uq6++qvnz52vPnj1avny5evToIUnau3ev/H6/srKynPGJiYnKyMiQz+e7ausFYJem0Z4AANQngwcPDnv85z//We3atdOuXbvUvXt3zZ8/XzfffLOeeuop/dd//ZemT5+uXr16XfC19u3bJ6/Xq6ysLMXFxaljx466/fbbJUl+v1+S5PF4wp7j8XicYwBwuThjBwBn2bNnj4YOHarOnTvL7Xbr2muvlfRjpElScnKy/v3f/13z5s3Tddddp0mTJv3saz3wwAM6ceKEOnfurJEjR2rZsmU6derU1VgGgEaKsAOAswwYMEBHjhzR22+/raKiIhUVFUmSqqurnTEbNmxQkyZN9P333+v48eM/+1ppaWkqKSnR3LlzlZCQoCeeeEJ33323ampq5PV6JUmlpaVhzyktLXWOAcDlIuwA4Cfl5eUqKSnRc889p379+unGG2/U0aNHw8Zs3LhRL7/8slasWKGWLVtqzJgxF33NhIQEDRgwQHPmzNG6devk8/m0fft2paeny+v1qrCw0BkbDAZVVFSkzMzMOlkfAPvxM3YA8JPk5GS1adNGCxYsUPv27bVv376wS62VlZV6+OGH9dRTT+m+++5Thw4ddNttt2nAgAH6h3/4h/Neb9GiRTp9+rQyMjLUvHlz/cd//IcSEhLUqVMnxcTEaNy4cXrhhRd0ww03KD09XVOnTlVqaqoGDhx4FVcNwCacsQOAn8TGxmrJkiUqLi5W9+7dNX78eM2ePds5PnbsWLVo0UIvvfSSJKlHjx566aWX9Pvf/14HDhw47/WSkpL09ttvq0+fPrr55pv13//931qxYoXatGkjSZo4caKefPJJjRo1SrfddpuOHTum1atXq1mzZldnwQCsE2OMMdGeBAAAAH45ztgBAABYgrADAACwBGEHAABgCcIOAADAEoQdAACAJQg7AAAASxB2AAAAliDsAAAALEHYAQAAWIKwAwAAsARhBwAAYAnCDgAAwBL/D+YPIVyTVUCIAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(cumulative=True, color=\"yellow\", lw=3, edgecolor=\"red\"); # Use matplotlib parameters" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(kind=\"scatter\", s=hist.frequencies, cmap=\"rainbow\", density=True); # Another plot type" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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MWOGjyf3D8uXL7ccDoeVk5NjHThwwJowYYIVERHhdZUyrpwTJ07Y/0YkWS+99JK1e/du6+9//7tlWZb1wgsvWBEREdZf/vIXa8+ePdbdd99txcfHW6dPn/bx5P5h4sSJVnh4uLVp0yav/29OnTplr3n88cetuLg4a+PGjdauXbssl8tluVwuH059dSPs/MzixYstSQ3efuqzzz6zBg8ebDkcDutf/uVfrBdeeMFHE/ufMWPGNPj6fPTRR/aar7/+2hoxYoQVEhJiderUyXrqqaes6upq3w3tZ1577TUrLi7OCg4OtgYMGGBt377d1yP5rY8++qjBfy9jxoyxLOvHrzz57W9/a0VHR1sOh8MaPny4VVxc7Nuh/ci5/r9ZvHixveb06dPWE088YXXo0MEKDQ217rnnHq+TDWicAMuyrCt4ghAAAADNhKtiAQAADEHYAQAAGIKwAwAAMARhBwAAYAjCDgAAwBCEHQAAgCEIOwAAAEMQdgAAAIYg7ADgMlxzzTV6+eWXfT0GAEgi7ADgsnz66aeaMGHCRa21LEuzZs1Sly5dFBISouTkZB08eLCZJwTgTwg7ALgMnTt3Vmho6EWtnTt3rl599VUtWrRIO3bsUNu2bZWamqozZ84085QA/AVhB8Cv5ebmavDgwYqIiFDHjh1155136quvvpIkvfvuu2rXrp3XWbUnnnhCPXv21KlTpyR5vxVrWZZmz56tuLg4ORwOxcTE6Mknn7S3vfzyy5o5c6buvvtu9e3bV++++66OHDmi999//4oeMwBzEXYA/FpFRYWysrK0a9cu5efnKzAwUPfcc4/q6uo0evRo3XHHHXr44YdVU1OjdevW6a233tLSpUsbPEv33//935o/f77eeOMNHTx4UO+//7769OkjSTp06JDcbreSk5Pt9eHh4UpKSlJBQcEVO14AZmvl6wEAwJfS09O97r/zzjvq3LmzDhw4oN69e+uNN95Q37599eSTT+q9997T7NmzlZiY2OC+SkpK5HQ6lZycrNatWysuLk4DBgyQJLndbklSdHS013Oio6PtbQBwuThjB8CvHTx4UA8++KCuvfZahYWF6ZprrpH0Y6RJUocOHfT222/r9ddf13XXXaff/OY359zX/fffr9OnT+vaa6/V+PHjtXr1atXU1FyJwwAASYQdAD9311136fjx4/rTn/6kHTt2aMeOHZKkqqoqe82WLVsUFBSko0ePqqKi4pz7io2NVXFxsRYuXKiQkBA98cQTGjJkiKqrq+V0OiVJpaWlXs8pLS21twHA5SLsAPit77//XsXFxZo5c6aGDx+uXr166YcffvBas23bNv3+97/XmjVr1K5dO2VmZp53nyEhIbrrrrv06quvatOmTSooKNDevXsVHx8vp9Op/Px8e63H49GOHTvkcrma5fgA+B8+YwfAb3Xo0EEdO3bUm2++qS5duqikpMTrrdYTJ05o1KhRevLJJzVixAh17dpVt9xyi+666y7dd999Z+0vJydHtbW1SkpKUmhoqP785z8rJCRE3bp1U0BAgCZPnqzf/e53uv766xUfH6/f/va3iomJ0ciRI6/gUQMwGWfsAPitwMBALV++XIWFherdu7emTJmiefPm2dv//d//XW3bttXzzz8vSerTp4+ef/55/frXv9a333571v4iIiL0pz/9SYMGDVLfvn21YcMGrVmzRh07dpQkTZs2TZMmTdKECRN0yy236OTJk8rNzVWbNm2uzAEDMF6AZVmWr4cAAADA5eOMHQAAgCEIOwAAAEMQdgAAAIYg7AAAAAxB2AEAABiCsAMAADAEYQcAAGAIwg4AAMAQhB0AAIAhCDsAAABDEHYAAACGIOwAAAAM8f8Bkfa//reASigAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "hist.plot(kind=\"step\", lw=4)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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WKgRI0aoffv2io2N1QMPPKDa2lqfNuvXr9fll18uu92u3r17Kysrq3FnCAAA0EY0KNht2LBBmZmZ2rx5s7Kzs1VTU6P09HSVl5d720yfPl0rV67Um2++qQ0bNqioqEi33nqrd39dXZ1GjBih6upqbdq0Sa+88oqysrI0d+5cb5uDBw9qxIgRuv7665Wfn69p06bpxz/+sdauXeuHUwYAADCTzbIsq7EfPnr0qGJjY7VhwwYNHTpUZWVl6tatm5YuXarbbrtNkrRv3z71799fubm5uvrqq/X3v/9dN998s4qKihQXFydJWrRokWbNmqWjR48qIiJCs2bN0urVq7V7927vscaMGaPS0lKtWbPmgmpzu92Kjo5WWVmZHA5HY08RQBMtzP4w0CWgiabf2CfQJQBtWkMyTZPesSsrK5Mkde7cWZKUl5enmpoapaWledv069dPPXr0UG5uriQpNzdXAwcO9IY6ScrIyJDb7daePXu8bb7cx+k2p/s4m6qqKrndbp8FAACgLWl0sPN4PJo2bZquueYaDRgwQJLkcrkUERGhmJgYn7ZxcXFyuVzeNl8Odaf3n953vjZut1sVFRVnrWf+/PmKjo72LomJiY09NQAAgFap0cEuMzNTu3fv1rJly/xZT6PNnj1bZWVl3uXQoUOBLgkAAKBFhTXmQ1OnTtWqVau0ceNGde/e3bvd6XSqurpapaWlPnftiouL5XQ6vW22bt3q09/pUbNfbvPVkbTFxcVyOByKjIw8a012u112u70xpwMAAGCEBt2xsyxLU6dO1fLly7Vu3TolJSX57E9JSVF4eLhycnK82woKClRYWKjU1FRJUmpqqnbt2qWSkhJvm+zsbDkcDiUnJ3vbfLmP021O9wEAAIAzNeiOXWZmppYuXaq//vWv6tixo/eduOjoaEVGRio6OloTJ07UjBkz1LlzZzkcDt13331KTU3V1VdfLUlKT09XcnKyxo0bpwULFsjlcmnOnDnKzMz03nG755579Mc//lEzZ87U3XffrXXr1umNN97Q6tWr/Xz6AAAA5mjQHbtnn31WZWVl+va3v634+Hjv8vrrr3vbLFy4UDfffLNGjx6toUOHyul06q233vLuDw0N1apVqxQaGqrU1FT98Ic/1Pjx4/Xoo4962yQlJWn16tXKzs7W4MGD9fjjj+vFF19URkaGH04ZAADATE2a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f//buvbaay273W594xvfsH77298GqOK2Z8KECWe9Pu+99563zccff2wNHz7cioyMtLp27Wrdf//9Vk1NTeCKbmP+8Ic/WD169LAiIiKsq666ytq8eXOgS2qz3nvvvbP+vkyYMMGyrPopT37xi19YcXFxlt1ut2644QaroKAgsEW3Ief6+2bx4sXeNhUVFda9995rderUyWrfvr31ve99z+dmAxrGZlmW1YI3CAEAANBMGBULAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcATXDRRRfp97//faDLAABJBDsAaJJt27Zp8uTJF9TWsizNnTtX8fHxioyMVFpamvbv39/MFQJoSwh2ANAE3bp1U/v27S+o7YIFC/TUU09p0aJF2rJlizp06KCMjAxVVlY2c5UA2gqCHYA2bc2aNbr22msVExOjLl266Oabb9aBAwckSa+++qqioqJ87qrde++96tevn06dOiXJ91GsZVl65JFH1KNHD9ntdiUkJOinP/2pd9/vf/97zZkzR7fccosGDRqkV199VUVFRVqxYkWLnjMAcxHsALRp5eXlmjFjhrZv366cnByFhIToe9/7njwej8aPH6+bbrpJY8eOVW1trVavXq0XX3xRS5YsOetdur/85S9auHChnnvuOe3fv18rVqzQwIEDJUkHDx6Uy+VSWlqat310dLSGDBmi3NzcFjtfAGYLC3QBABBIo0eP9ll/+eWX1a1bN+3du1cDBgzQc889p0GDBumnP/2p3nrrLT3yyCNKSUk5a1+FhYVyOp1KS0tTeHi4evTooauuukqS5HK5JElxcXE+n4mLi/PuA4Cm4o4dgDZt//79uuOOO9SrVy85HA5ddNFFkupDmiR16tRJL730kp599lldfPHFevDBB8/Z1+23366Kigr16tVLkyZN0vLly1VbW9sSpwEAkgh2ANq4kSNH6vjx43rhhRe0ZcsWbdmyRZJUXV3tbbNx40aFhobqyJEjKi8vP2dfiYmJKigo0DPPPKPIyEjde++9Gjp0qGpqauR0OiVJxcXFPp8pLi727gOApiLYAWizjh07poKCAs2ZM0c33HCD+vfvr88//9ynzaZNm/S73/1OK1euVFRUlKZOnXrePiMjIzVy5Eg99dRTWr9+vXJzc7Vr1y4lJSXJ6XQqJyfH29btdmvLli1KTU1tlvMD0Pbwjh2ANqtTp07q0qWLnn/+ecXHx6uwsNDnUeuJEyc0btw4/fSnP9Xw4cPVvXt3XXnllRo5cqRuu+22M/rLyspSXV2dhgwZovbt2+u1115TZGSkevbsKZvNpmnTpulXv/qVvvnNbyopKUm/+MUvlJCQoFGjRrXgWQMwGXfsALRZISEhWrZsmfLy8jRgwABNnz5djz32mHf/z372M3Xo0EG/+c1vJEkDBw7Ub37zG/3kJz/Rp59+ekZ/MTExeuGFF3TNNddo0KBBevfdd7Vy5Up16dJFkjRz5kzdd999mjx5sq688kqdPHlSa9asUbt27VrmhAEYz2ZZlhXoIgAAANB03LEDAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAM8f8BtfpYvP/FO4IAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot different bins using different styles\n", "axis = hist[hist.frequencies > 5].plot(label=\"High\", alpha=0.5)\n", "hist[1:-1][hist[1:-1].frequencies <= 5].plot(ax=axis, color=\"green\", label=\"Low\", alpha=0.5)\n", "hist[[0, -1]].plot(ax=axis, color=\"red\", label=\"Edge cases\", alpha=0.5)\n", "hist.plot(kind=\"scatter\", ax=axis, s=hist.frequencies / 10, label=\"Scatter\")\n", "# axis.legend(); # Does not work - why?" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1HUlEQVR4nO3df1yV9f3/8Sc/BAQVBZQf+Yu0VKaiU2Q0azqZSM7UnP1yhubUFdSUlulnqeVcmrnyY52i+qTkp5rMLdnXWmyKKfaRCDHUIk2cZqVg6QBBBYTr+0cfz2dnAokCh/Pmcb/dzu3m9X6/z3VeV1fI0/d1rvflZlmWJQAAALg8d2cXAAAAgKZBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQ3g6u4DGqq2t1YkTJ9SxY0e5ubk5uxwAAIBmZVmWzp49q7CwMLm7Nzwn53LB7sSJE+rRo4ezywAAAGhRX3zxhbp3797gGJcLdh07dpT07cF16tTJydUAuFq///3vtWXLFh0+fFg+Pj6Kjo7WE088oRtuuME+pri4WIsXL9Z7772n8vJy9e3bV7/+9a81ceJE+5gzZ85owYIFysjIkLu7uyZMmKCnnnpKHTp0kCQdPnxY8+fP18GDB1VWVqaQkBBNnTpVCxcuVLt27Zr9OG+//XZNmTJF3//+93Xx4kUtW7ZMn376qXJycuTn5ydJmjRpkkpLS7V69WoFBAToT3/6k5588knt2LFDkZGRkqRBgwZp+vTpSkhIsO+7Q4cO9n2UlZVp2LBhGjVqlJKTk/XJJ58oKSlJK1as0MyZM5v9OAE0n7KyMvXo0cOegRpkuZjS0lJLklVaWursUgBcg7i4OGv9+vXWxx9/bOXn51u33nqr1bNnT6u8vNw+5ic/+YkVFRVl5eTkWEeOHLF++9vfWu7u7tbevXvtY8aNG2dFRkZaH3zwgbVr1y6rb9++1t13323vP3LkiLVu3TorPz/fOnbsmPWXv/zF6tatm7Vo0aIWPd5LTp06ZUmydu7caW/z8/OzNmzY4DAuICDAeuWVV+zbvXr1sp599tl69/vCCy9YXbp0sSorK+1tjz76qNWvX7+mKx6AUzQm+xDsALQKVxN4CgoKLElWbm6uvf/dd9+13NzcrK+++qrez5o/f741cuTIJj6CK3P48GFLknXgwAF7209+8hNr/Pjx1unTp62amhrrD3/4g+Xr62sdPnzYPqZXr15WcHCwFRAQYA0ZMsRatWqVVV1dbe+fPn26NXHiRIfP2r59uyXJOnPmTLMfF4Dm05jsw12xAFqF0tJSSVJAQIC97aabblJaWprOnDmj2tpabdy4URcuXNCoUaMkSdnZ2ercubOGDx9uf09sbKzc3d2Vk5NT5+cUFhYqIyNDP/rRj5rvYOpRW1urefPm6Yc//KEGDhxob//jH/+o6upqBQYGytvbW3PnztXmzZvVt29f+5iHHnpIGzdu1Hvvvae5c+fqySef1IIFC+z9RUVFCg4Odvi8S9tFRUXNfGQAWguX+44dAPM0FHjuvPNOBQYGytPTU76+vg6Bp6ioSN26dXPYl6enpwICAi4LMzfddJP27t2ryspKzZkzR8uWLWv+A/s3iYmJ+vjjj/X+++87tC9evFglJSXatm2bgoKClJ6erjvuuEO7du3SoEGDJEnJycn28YMHD5aXl5fmzp2rFStWyNvbu0WPA0DrRbAD4HTXEniuVFpams6ePat9+/bpkUce0erVqx1mvJpbUlKS3n77bWVlZTnc1XbkyBE9//zz+vjjj/W9731PkhQZGaldu3bJZrMpJSWlzv1FR0fr4sWLOnbsmPr166eQkBAVFxc7jLm0HRIS0kxHBaC1IdgBcKprCTwhISE6deqUw/4uXryoM2fOXBZmLi2TFBERoZqaGs2ZM0cPP/ywPDw8mvX4LMvSgw8+qM2bN2vHjh0KDw936D937pwkXbY2lYeHh2pra+vdb35+vtzd3e0zljExMfrNb36j6upq+92+W7duVb9+/dSlS5emPCQArRjfsQPgFJZlKSkpSZs3b9b27duvKvDExMSopKREeXl59v7t27ertrZW0dHR9X52bW2tqqurGwxOTSUxMVGvv/663nzzTXXs2FFFRUUqKirS+fPnJUn9+/dX3759NXfuXH344Yc6cuSIfv/732vr1q2aNGmSpG+/S7hmzRrt27dP//jHP/TGG29o/vz5+vnPf24Pbffcc4+8vLw0a9YsffLJJ0pLS9N//ud/OlzCBdAGNPutHE2Mu2IBM9x///2Wv7+/tWPHDuvkyZP217lz5yzLsqyqqiqrb9++1s0332zl5ORYhYWF1urVqy03NzfrnXfese9n3Lhx1tChQ62cnBzr/ffft2644QaH5U5ef/11Ky0tzSooKLCOHDlipaWlWWFhYda0adNa5Dgl1flav369fcxnn31m3X777Va3bt0sX19fa/DgwQ53A+fl5VnR0dGWv7+/5ePjYw0YMMB68sknrQsXLjh81r59+6yRI0da3t7e1nXXXWetXLmyRY4RQPNqTPZxsyzLcl6svHI2m002m001NTX67LPPVFpaygLFgAur75GA69ev14wZMyR9u7jwwoUL9f777zssUDx9+nT7+DNnzigpKUlbtmyRu7u7pkyZorVr19oXKE5LS9OqVav02WefybIs9erVSz//+c81f/58+fj4NPtxAsC1Kisrk7+//xVlH5cJdpc05uAAAABcXWOyD9+xAwAAMAR3xQLAlTpX6uwKWoavv7MrAHCVCHYAmsbZ086uoPl58FcmgNaNS7EAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABjCZYKdzWZTRESEoqKinF0KAABAq+RmWZbl7CIao6ysTP7+/iotLVWnTp2cXQ6AS86ednYFzc/D09kVtAxff2dXAOBfNCb7uMyMHQAAABpGsANaoaysLE2YMEFhYWFyc3NTenr6ZWM+/fRT3XbbbfL395efn5+ioqJ0/Phxe/+FCxeUmJiowMBAdejQQVOmTFFxcbHDPo4fP67x48fL19dX3bp10yOPPKKLFy829+EBAJoJwQ5ohSoqKhQZGSmbzVZn/5EjRzRy5Ej1799fO3bs0P79+7V48WL5+PjYx8yfP19btmzRpk2btHPnTp04cUK33367vb+mpkbjx49XVVWVdu/erddee02pqalasmRJsx8fAKB58B07oJVzc3PT5s2bNWnSJHvbXXfdpXbt2um///u/63xPaWmpunbtqjfffFM/+9nPJEkHDx7UgAEDlJ2drR/84Ad699139dOf/lQnTpxQcHCwJCklJUWPPvqovv76a3l5eTWuUL5jZ46r+I5dVlaWnn76aeXl5enkyZOX/T87Y8YMvfbaaw7viYuLU0ZGxmX7qqysVHR0tPbt26ePPvpIQ4YMuWxMYWGhhg4dKg8PD5WUlDS6XsCV8B07wGC1tbV65513dOONNyouLk7dunVTdHS0w+XavLw8VVdXKzY21t7Wv39/9ezZU9nZ2ZKk7OxsDRo0yB7qpG9/0ZaVlemTTz5pseOBGb5rllmSxo0bp5MnT9pff/jDH+oct2DBAoWFhdW7n+rqat199926+eabr7luwDQEO8DFnDp1SuXl5Vq5cqXGjRunv//975o8ebJuv/127dy5U5JUVFQkLy8vde7c2eG9wcHBKioqso/511B3qf9SH9AY8fHxWr58uSZPnlzvGG9vb4WEhNhfXbp0uWzMu+++q7///e9avXp1vft57LHH1L9/f91xxx1NUjtgkjZyXQEwR21trSRp4sSJmj9/viRpyJAh2r17t1JSUvSjH/3ImeUB9dqxY4e6deumLl266Mc//rGWL1+uwMBAe39xcbFmz56t9PR0+fr61rmP7du3a9OmTcrPz9dbb73VUqUDLoMZO8DFBAUFydPTUxEREQ7tAwYMsN8VGxISoqqqqsu+e1RcXKyQkBD7mH+/S/bS9qUxQFMZN26cNmzYoMzMTD311FPauXOn4uPjVVNTI0myLEszZszQL3/5Sw0fPrzOfZw+fVozZsxQamoq37EG6kGwA1yMl5eXoqKidOjQIYf2zz77TL169ZIkDRs2TO3atVNmZqa9/9ChQzp+/LhiYmIkSTExMTpw4IBOnTplH7N161Z16tTpstAIXKu77rpLt912mwYNGqRJkybp7bffVm5urnbs2CFJeu6553T27FktWrSo3n3Mnj1b99xzj2655ZYWqhpwPQQ7oBUqLy9Xfn6+8vPzJUlHjx5Vfn6+fUbukUceUVpaml555RUVFhbq+eef15YtW/TAAw9Ikvz9/TVr1iwlJyfrvffeU15enmbOnKmYmBj94Ac/kCSNHTtWERERmj59uvbt26e//e1veuyxx5SYmChvb2+nHDfajuuvv15BQUEqLCyU9O0l1uzsbHl7e8vT01N9+/aVJA0fPlwJCQn2MatXr5anp6c8PT01a9YslZaWytPTU+vWrXPasQCtCd+xA1qhPXv2aPTo0fbt5ORkSVJCQoJSU1M1efJkpaSkaMWKFXrooYfUr18//fnPf9bIkSPt73n22Wfl7u6uKVOmqLKyUnFxcXrhhRfs/R4eHnr77bd1//33KyYmRn5+fkpISNCyZcta7kDRZn355Zc6ffq0QkNDJUlr167V8uXL7f0nTpxQXFyc0tLSFB0dLenbO7kvXbqVpL/85S966qmntHv3bl133XUtewBAK8U6dgCaBuvYmeMq1rErLy+3z74NHTpUzzzzjEaPHq2AgAAFBAToiSee0JQpUxQSEqIjR45owYIFOnv2rA4cOFDnDPGxY8cUHh5e7zp2kpSamqp58+axjh2M15js00b+lgIANKeGZplffPFF7d+/X6+99ppKSkoUFhamsWPH6re//S2X/YEmxowdgKbBjJ05rmLGDkDzYcYOaEUuLrnX2SW0CM9HnnV2CQDQ5nFXLAAAgCGYsQMAOLi48C5nl9DsPFdudHYJQLNgxg4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEO0eLArKSnR8OHDNWTIEA0cOFCvvPJKS5cAAABgJM+W/sCOHTsqKytLvr6+qqio0MCBA3X77bcrMDCwpUsBAAAwSovP2Hl4eMjX11eSVFlZKcuyZFlWS5cBAABgnEYHu6ysLE2YMEFhYWFyc3NTenr6ZWNsNpt69+4tHx8fRUdH68MPP3ToLykpUWRkpLp3765HHnlEQUFBV30AAAAA+Fajg11FRYUiIyNls9nq7E9LS1NycrKWLl2qvXv3KjIyUnFxcTp16pR9TOfOnbVv3z4dPXpUb775poqLi6/+CAAAACDpKoJdfHy8li9frsmTJ9fZ/8wzz2j27NmaOXOmIiIilJKSIl9fX61bt+6yscHBwYqMjNSuXbsaXzkAAAAcNOl37KqqqpSXl6fY2Nj/+wB3d8XGxio7O1uSVFxcrLNnz0qSSktLlZWVpX79+tW7z8rKSpWVlTm8AAAAcLkmDXbffPONampqFBwc7NAeHBysoqIiSdLnn3+um2++WZGRkbr55pv14IMPatCgQfXuc8WKFfL397e/evTo0ZQlAwAAGKPFlzsZMWKE8vPzr3j8okWLlJycbN8uKysj3AEAANShSYNdUFCQPDw8LrsZori4WCEhIVe1T29vb3l7ezdFeQAAAEZr0kuxXl5eGjZsmDIzM+1ttbW1yszMVExMTFN+FAAAAP5No2fsysvLVVhYaN8+evSo8vPzFRAQoJ49eyo5OVkJCQkaPny4RowYoTVr1qiiokIzZ85s0sIBAADgqNHBbs+ePRo9erR9+9L33xISEpSamqo777xTX3/9tZYsWaKioiINGTJEGRkZl91QAQAAgKbV6GA3atSo73wEWFJSkpKSkq66KAAAADReiz8r9mrZbDZFREQoKirK2aUAAAC0Si4T7BITE1VQUKDc3FxnlwIAANAquUywAwAAQMMIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGcJlgxzp2AAAADXOZYMc6dgAAAA1zmWAHAACAhhHsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADCEywQ7FigGAABomMsEOxYoBgAAaJjLBDsAAAA0jGAHAABgCIIdAACAIQh2AAAAhiDYweU9/vjjcnNzc3j179/f3j937lz16dNH7du3V9euXTVx4kQdPHiwzn2dPn1a3bt3l5ubm0pKSlroCAAAaBoEOxjhe9/7nk6ePGl/vf/++/a+YcOGaf369fr000/1t7/9TZZlaezYsaqpqblsP7NmzdLgwYNbsnQAAJqMp7MLAJqCp6enQkJC6uybM2eO/c+9e/fW8uXLFRkZqWPHjqlPnz72vhdffFElJSVasmSJ3n333WavGQCApsaMHYxw+PBhhYWF6frrr9e0adN0/PjxOsdVVFRo/fr1Cg8PV48ePeztBQUFWrZsmTZs2CB3d34sAACuid9gcHnR0dFKTU1VRkaGXnzxRR09elQ333yzzp49ax/zwgsvqEOHDurQoYPeffddbd26VV5eXpKkyspK3X333Xr66afVs2dPZx0GAADXzGWCHY8UQ33i4+M1depUDR48WHFxcfrrX/+qkpIS/fGPf7SPmTZtmj766CPt3LlTN954o+644w5duHBBkrRo0SINGDBAP//5z511CAAANAmXCXY8UgxXqnPnzrrxxhtVWFhob/P399cNN9ygW265RX/605908OBBbd68WZK0fft2bdq0SZ6envL09NSYMWMkSUFBQVq6dKlTjgEAgKvBzRMwTnl5uY4cOaLp06fX2W9ZlizLUmVlpSTpz3/+s86fP2/vz83N1X333addu3Y53FwBAEBr5zIzdkB9fv3r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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Bar plot with colormap (with logarithmic scale)\n", "ax = hist.plot(cmap=\"Reds_r\", yscale=\"log\", show_values=True);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Irregular binning and densities" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABEEAAAE4CAYAAAC0dO16AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAABOyUlEQVR4nO3deVyU5f7/8feAMiACroAo7pa7drCQzCVFkZK0rMwsl8yssFJOG53UbMMWTTOX7LjUSY9Lqdmmx1S0vqIlRdmGSxpmgpkJOCUoXL8/+jk1Ago6MDDzej4e9+PBXPd13/fnkplP04f7vi6LMcYIAAAAAADAzXm5OgAAAAAAAICKQBEEAAAAAAB4BIogAAAAAADAI1AEAQAAAAAAHoEiCAAAAAAA8AgUQQAAAAAAgEegCAIAAAAAADwCRRAAAAAAAOARKIIAAAAAAACPQBEEZXLgwAFZLBa9+OKLFXrdkSNHqmnTphV6zYr2xBNPyGKxuDoMAKhSLBaLnnjiiVL1bdq0qUaOHFmu8QAA/lIe3+EXL14si8WiAwcOOPW88BwUQeBgzpw5slgsioyMdHUoTvPBBx+U+gsyAOBPZ75kntl8fX0VFhammJgYvfzyy8rNzXV1iMXatm2bnnjiCR0/ftzVoQCA0+zbt09jx45V8+bN5evrq8DAQHXr1k0zZ87UH3/84erwysWzzz6rNWvWuDoMuKFqrg4AlcuSJUvUtGlTffrpp9q7d69atmzp6pAu2gcffKDZs2dTCAGAC/Dkk0+qWbNmOnXqlDIzM5WcnKzx48dr+vTpWrt2rTp27OjS+P744w9Vq/bX15lt27ZpypQpGjlypGrVquXQNz09XV5e/P0HQNXy/vvv66abbpLVatXw4cPVvn175efn65NPPtFDDz2kb775RvPnz3d1mE737LPP6sYbb9SgQYMc2m+//XbdcsstslqtrgkMVR5FENjt379f27Zt06pVqzR27FgtWbJEkydPdnVYAAAXio2NVZcuXeyvExMTtWnTJg0YMEDXXXedvvvuO/n5+bksPl9f31L35QszgKpm//79uuWWW9SkSRNt2rRJDRo0sO+Lj4/X3r179f7777swworn7e0tb29vV4eBKow/h8BuyZIlql27tq699lrdeOONWrJkyTn7v/TSS2rSpIn8/PzUs2dPff311w77MzMzNWrUKDVq1EhWq1UNGjTQwIEDizy/N2fOHLVr105Wq1VhYWGKj48/723MycnJslgsSk5Odmg/M2fJ4sWLJf35HOLs2bMlyeG27jMKCws1Y8YMtWvXTr6+vgoJCdHYsWP122+/nfP6L774oiwWi3788cci+xITE+Xj42M/x8cff6ybbrpJjRs3ltVqVXh4uCZMmHDeWxfPHsvfFfcM/KFDh3THHXcoJCREVqtV7dq108KFC4scO2vWLLVr1041atRQ7dq11aVLFy1duvScsQDA3/Xu3VsTJ07Ujz/+qDfffNPe/v333+vGG29UnTp15Ovrqy5dumjt2rUOx555zOb//u//lJCQoPr168vf31/XX3+9fvnlF4e+O3fuVExMjOrVqyc/Pz81a9ZMd9xxh0Ofv+fDJ554Qg899JAkqVmzZvacf+a/O8XNCXL8+HGNHz9e4eHhslqtatmypZ577jkVFhY69Fu2bJkiIiIUEBCgwMBAdejQQTNnzrzQf0IAKJXnn39eJ06c0IIFCxwKIGe0bNlSDzzwQJm+N56Zh2737t267bbbFBQUpPr162vixIkyxujgwYMaOHCgAgMDFRoaqmnTpjmcr6Q5OUr6fn62F198UVdeeaXq1q0rPz8/RURE6K233ioSs81m0+uvv27P5Wfy99nXHzBggJo3b17staKiohwK+ZL05ptvKiIiQn5+fqpTp45uueUWHTx48Jwxw71QBIHdkiVLdMMNN8jHx0dDhw7Vnj179NlnnxXb94033tDLL7+s+Ph4JSYm6uuvv1bv3r2VlZVl7zN48GCtXr1ao0aN0pw5c3T//fcrNzdXGRkZ9j5PPPGE4uPjFRYWpmnTpmnw4MF69dVX1a9fP506deqixzR27Fj17dtXkvSf//zHvv19/0MPPWR/pnLUqFFasmSJYmJiznn9m2++WRaLRStWrCiyb8WKFerXr59q164tSVq5cqV+//133XPPPZo1a5ZiYmI0a9YsDR8+/KLHd0ZWVpa6du2qjz76SOPGjdPMmTPVsmVLjR49WjNmzLD3e+2113T//ferbdu2mjFjhqZMmaLOnTtrx44dTosFgGe4/fbbJUn/+9//JEnffPONunbtqu+++06PPvqopk2bJn9/fw0aNEirV68ucvx9992nL7/8UpMnT9Y999yjd999V+PGjbPvP3LkiPr166cDBw7o0Ucf1axZszRs2DBt3769xJhuuOEGDR06VNKfhfozOb9+/frF9v/999/Vs2dPvfnmmxo+fLhefvlldevWTYmJiUpISLD327Bhg4YOHaratWvrueee09SpU9WrVy/93//9X9n/4QCgDN599101b95cV155pdPPPWTIEBUWFmrq1KmKjIzU008/rRkzZqhv375q2LChnnvuObVs2VIPPvigtm7d6rTrzpw5U5dddpmefPJJPfvss6pWrZpuuukmhzta/vOf/8hqtap79+72XD527NgSx7F///4i/9/y448/avv27brlllvsbc8884yGDx+uVq1aafr06Ro/frw2btyoHj16MJeUJzGAMWbnzp1GktmwYYMxxpjCwkLTqFEj88ADDzj0279/v5Fk/Pz8zE8//WRv37Fjh5FkJkyYYIwx5rfffjOSzAsvvFDiNY8cOWJ8fHxMv379TEFBgb39lVdeMZLMwoUL7W0jRowwTZo0sb/evHmzkWQ2b95cbHyLFi2yt8XHx5vi3uoff/yxkWSWLFni0L5u3bpi288WFRVlIiIiHNo+/fRTI8m88cYb9rbff/+9yLFJSUnGYrGYH3/80d42efJkhziLG8sZkszkyZPtr0ePHm0aNGhgjh496tDvlltuMUFBQfYYBg4caNq1a3fOcQGAMcYsWrTISDKfffZZiX2CgoLMZZddZowxpk+fPqZDhw7m5MmT9v2FhYXmyiuvNK1atSpy3ujoaFNYWGhvnzBhgvH29jbHjx83xhizevXq817fmKL58IUXXjCSzP79+4v0bdKkiRkxYoT99VNPPWX8/f3N7t27Hfo9+uijxtvb22RkZBhjjHnggQdMYGCgOX369DljAQBnys7ONpLMwIEDz9u3LN8bz3znvOuuu+xtp0+fNo0aNTIWi8VMnTrV3v7bb78ZPz8/h9x5Jo+fnWeL+35+9nd4Y4p+N87Pzzft27c3vXv3dmj39/d3uG5J18/OzjZWq9X885//dOj3/PPPO3zfPnDggPH29jbPPPOMQ79du3aZatWqFWmH++JOEEj68y6QkJAQXX311ZL+vAVtyJAhWrZsmQoKCor0HzRokBo2bGh/fcUVVygyMlIffPCBJMnPz08+Pj5KTk4u8dGSjz76SPn5+Ro/frzDRHVjxoxRYGBguT/fuHLlSgUFBalv3746evSofYuIiFDNmjW1efPmcx4/ZMgQpaamat++ffa25cuXy2q1auDAgfa2vz8rb7PZdPToUV155ZUyxuiLL7646HEYY/T2228rLi5OxhiHscTExCg7O1uff/65JKlWrVr66aefSrzDBwDKombNmsrNzdWxY8e0adMm3XzzzcrNzbXnoF9//VUxMTHas2ePDh065HDsXXfd5fB4Yvfu3VVQUGB/zPDMpKbvvfeeU+4MLM7KlSvVvXt31a5d2yF3RkdHq6CgwP6Xz1q1aslms2nDhg3lEgcAFCcnJ0eSFBAQUC7nv/POO+0/e3t7q0uXLjLGaPTo0fb2WrVq6dJLL9UPP/zgtOv+/bvxb7/9puzsbHXv3t3+fbWsAgMDFRsbqxUrVsgYY29fvny5unbtqsaNG0uSVq1apcLCQt18880OOT80NFStWrU673d/uA+KIFBBQYGWLVumq6++Wvv379fevXu1d+9eRUZGKisrSxs3bixyTKtWrYq0XXLJJfZn86xWq5577jl9+OGHCgkJUY8ePfT8888rMzPT3v/MF91LL73U4Tw+Pj5q3rx5sfNtONOePXuUnZ2t4OBg1a9f32E7ceKEjhw5cs7jb7rpJnl5eWn58uWS/ixGrFy5UrGxsQoMDLT3y8jI0MiRI1WnTh3VrFlT9evXV8+ePSVJ2dnZFz2OX375RcePH9f8+fOLjGPUqFGSZB/LI488opo1a+qKK65Qq1atFB8fz+3cAC7YiRMnFBAQoL1798oYo4kTJxbJQ2cm2D47p575UnrGmUcIzxTOe/bsqcGDB2vKlCmqV6+eBg4cqEWLFikvL89p8e/Zs0fr1q0rEnN0dLRDzPfee68uueQSxcbGqlGjRrrjjju0bt06p8UBAMU5832yvJYkPzsPBwUFydfXV/Xq1SvSfr758srivffeU9euXeXr66s6deqofv36mjt37kV9Lx4yZIgOHjyolJQUSX8uKZyamqohQ4bY++zZs0fGGLVq1apI3v/uu+/O+90f7oPVYaBNmzbp8OHDWrZsmZYtW1Zk/5IlS9SvX78yn3f8+PGKi4vTmjVrtH79ek2cOFFJSUnatGmTLrvssouK+e9/Pfy74u5aKUlhYaGCg4NLnAC2pGfIzwgLC1P37t21YsUKPfbYY9q+fbsyMjL03HPPOcTTt29fHTt2TI888ohat24tf39/HTp0SCNHjiwy8d7flXaMZ85x2223acSIEcUec2YJyzZt2ig9PV3vvfee1q1bp7fffltz5szRpEmTNGXKlHOOFwD+7qefflJ2drZatmxpz0MPPvigYmJiiu1/9pLrJc3sf+aveBaLRW+99Za2b9+ud999V+vXr9cdd9yhadOmafv27apZs+ZFj6GwsFB9+/bVww8/XOz+Sy65RJIUHBystLQ0rV+/Xh9++KE+/PBDLVq0SMOHD9frr79+0XEAQHECAwMVFhZWZPGB4lzId+Pi8vD5cvOFXuuMjz/+WNddd5169OihOXPmqEGDBqpevboWLVp0URP1x8XFqUaNGlqxYoWuvPJKrVixQl5eXrrpppvsfQoLC2WxWPThhx8WO05n/HcFVQNFEGjJkiUKDg62r6Lyd6tWrdLq1as1b948h1vX9uzZU6Tv7t271bRpU4e2Fi1a6J///Kf++c9/as+ePercubOmTZumN998U02aNJEkpaenO8zonJ+fr/3799v/ElecM38xPHsCo+LuHikpUbdo0UIfffSRunXrdsHLOw4ZMkT33nuv0tPTtXz5ctWoUUNxcXH2/bt27dLu3bv1+uuvO0yEWppbqks7xvr16ysgIEAFBQXn/Dc7w9/fX0OGDNGQIUOUn5+vG264Qc8884wSExPLtNQkAM92ZpLpmJgYew6vXr16qfJQWXTt2lVdu3bVM888o6VLl2rYsGFatmyZw23cf1dSzi9OixYtdOLEiVLF7OPjo7i4OMXFxamwsFD33nuvXn31VU2cOLFIgQcAnGXAgAGaP3++UlJSFBUVVWK/snw3vlgXc623335bvr6+Wr9+vcOy5YsWLSrStyz53N/fXwMGDNDKlSs1ffp0LV++XN27d1dYWJi9T4sWLWSMUbNmzexFbngmHofxcH/88YdWrVqlAQMG6MYbbyyyjRs3Trm5uUWWOFyzZo3D892ffvqpduzYodjYWEl/zrh/8uRJh2NatGihgIAA+63M0dHR8vHx0csvv+xQXV6wYIGys7N17bXXlhh3kyZN5O3tXWSm6jlz5hTp6+/vL6loor755ptVUFCgp556qsgxp0+fLtUM0YMHD5a3t7f++9//auXKlRowYID9etJf1fS/j88YU6plFQMDA1WvXr3zjtHb21uDBw/W22+/XexfCv6+5OSvv/7qsM/Hx0dt27aVMabcnrkH4H42bdqkp556Ss2aNdOwYcMUHBysXr166dVXX9Xhw4eL9D976dvS+O233xxypyR17txZks75SExJOb84N998s1JSUrR+/foi+44fP67Tp09LKpo7vby87HfYOfPxHAA428MPPyx/f3/deeedDqswnrFv3z7NnDmz1N8bnaFFixaS5HCtgoICzZ8//7zHent7y2KxONw1cuDAAa1Zs6ZIX39//zKt2DJkyBD9/PPP+ve//60vv/zS4VEY6c8VxLy9vTVlypQi/30xxhTJ9XBf3Ani4dauXavc3Fxdd911xe7v2rWr6tevryVLljgkkpYtW+qqq67SPffco7y8PM2YMUN169a131K8e/du9enTRzfffLPatm2ratWqafXq1crKyrIvU1W/fn0lJiZqypQp6t+/v6677jqlp6drzpw5uvzyy3XbbbeVGHdQUJBuuukmzZo1SxaLRS1atNB7771X7LN8ERERkqT7779fMTEx8vb21i233KKePXtq7NixSkpKUlpamvr166fq1atrz549WrlypWbOnKkbb7zxnP9+wcHBuvrqqzV9+nTl5uYWSbatW7dWixYt9OCDD+rQoUMKDAzU22+/XernKu+8805NnTpVd955p7p06aKtW7dq9+7dRfpNnTpVmzdvVmRkpMaMGaO2bdvq2LFj+vzzz/XRRx/p2LFjkqR+/fopNDRU3bp1U0hIiL777ju98soruvbaa8tt0i0AVduHH36o77//XqdPn1ZWVpY2bdqkDRs2qEmTJlq7dq39DrLZs2frqquuUocOHTRmzBg1b95cWVlZSklJ0U8//aQvv/yyTNd9/fXXNWfOHF1//fVq0aKFcnNz9dprrykwMFDXXHNNicedyfn/+te/dMstt6h69eqKi4tzKFCf8dBDD2nt2rUaMGCARo4cqYiICNlsNu3atUtvvfWWDhw4oHr16unOO+/UsWPH1Lt3bzVq1Eg//vijZs2apc6dO6tNmzZlGhcAlEWLFi20dOlSDRkyRG3atNHw4cPVvn175efna9u2bVq5cqVGjhwpqfTfGy9Wu3bt1LVrVyUmJurYsWOqU6eOli1bZi8cn8u1116r6dOnq3///rr11lt15MgRzZ49Wy1bttRXX33l0DciIkIfffSRpk+frrCwMDVr1kyRkZElnvuaa65RQECAHnzwQfsfCf+uRYsWevrpp5WYmKgDBw5o0KBBCggI0P79+7V6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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure, axes = plt.subplots(1, 3, figsize=(11, 3))\n", "\n", "hist_irregular = h1(heights, (160, 162, 166, 167, 175, 188, 191))\n", "hist_irregular.plot(ax=axes[0], errors=True, cmap=\"rainbow\")\n", "hist_irregular.plot(ax=axes[1], density=True, errors=True, cmap=\"rainbow\")\n", "hist_irregular.plot(ax=axes[2], density=True, cumulative=True, cmap=\"rainbow\")\n", "\n", "axes[0].set_title(\"Absolute values\")\n", "axes[1].set_title(\"Densities\")\n", "axes[2].set_title(\"Cumulative\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding new values" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Add (fill) single values" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "After 0 batches: Histogram1D(bins=(20,), total=9648, dtype=int32)\n", "After 1 batches: Histogram1D(bins=(20,), total=19648, dtype=int32)\n", "After 2 batches: Histogram1D(bins=(20,), total=29648, dtype=int32)\n", "After 3 batches: Histogram1D(bins=(20,), total=39251, dtype=int32)\n" ] }, { "data": { "image/png": "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NH78eOt4VVWV0tLSlJycrKKiIr344ouaPn26Xn311WtYIoDmoqCgQMOGDVNiYqIiIiK0Zs0av+PGGE2bNk2dO3dWdHS0UlNTdejQIb8xJ0+e1KhRo+R2u9W+fXuNGzdOp06d8huzd+9e3XXXXWrdurWSkpI0a9asQC8NQIgjnwA4FfkEIJga/UypjIwMZWRkNHjMGKOXX35ZU6dO1f333y9JeuONN5SQkKA1a9booYce0sGDB7VhwwZ99NFHuv322yVJ8+bN03333aff/va3SkxM1IoVK1RTU6PFixcrKipKvXr1UnFxsWbPnu1XXl2N3s9tVKQrprHLBBCC6kvzxx57TCNGjPjG8frSfNmyZerWrZueffZZpaen68CBA2rdurWkv5fmZWVlysvLU21trcaOHavx48dr5cqVkv5RmqempmrRokXat2+fHnvsMbVv3558AnBJ5BMApwq1fJLIKCCcNOm77x05ckQ+n0+pqanWvtjYWA0cOFCFhYV66KGHVFhYqPbt21uFlCSlpqYqMjJSO3fu1AMPPKDCwkLdfffdioqKssakp6frhRde0JdffqkOHTp842NXV1erurraul1VVdWUSwMQApxampNPAMgnAE7l1HySyCigOWjSC537fD5JUkJCgt/+hIQE65jP51N8fLzf8ZYtWyouLs5vTEPnuPBjXGzmzJmKjY21tqSkpOtfEICwcaXSXNIVS/P6MQ2V5iUlJfryyy8b/NjkE4DLIZ8AOFUw80kio4BAu/GZdVe19X5uY8DmEDbvvpebm6vKykprO3bsWLCnBMBBglmak08ALod8AuBUwcwniYwCmoMmffmex+ORJJWXl6tz587W/vLycvXv398ac+LECb/7nTt3TidPnrTu7/F4VF5e7jem/nb9mIu5XC65XK4mWQcANCXyCYBTkU8AnIyMAsJfkz5Tqlu3bvJ4PMrPz7f2VVVVaefOnfJ6vZIkr9eriooKFRUVWWM2b96suro6DRw40BpTUFCg2tpaa0xeXp5uvfXWBq8nBQBXcmFpfqHy8nK/QjwQpTkAXA75BMCpyCcAgdboUurUqVMqLi5WcXGxpL+/zri4uFilpaWKiIjQpEmT9Ktf/Urvvvuu9u3bp0cffVSJiYkaPny4JKlHjx4aOnSoHn/8ce3atUt/+tOflJ2drYceekiJiYmSpB/96EeKiorSuHHjtH//fr311luaO3eucnJymmzhAJoXSnMATkU+AXAq8glAoDW6lNq9e7duu+023XbbbZKknJwc3XbbbZo2bZokacqUKXryySc1fvx4DRgwQKdOndKGDRustwuVpBUrVqh79+4aMmSI7rvvPt1555169dVXreOxsbHatGmTjhw5opSUFD311FOaNm3aNb1dKIDmg9IcgFORTwCcinwCEEyNvqbU4MGDZYy55PGIiAg9//zzev755y85Ji4uTitXrrzsx+nbt68++OCDxk4PQDO2e/du3XPPPdbt+h90Ro8eraVLl2rKlCk6ffq0xo8fr4qKCt15550NlubZ2dkaMmSIIiMjNXLkSL3yyivW8frSPCsrSykpKerYsSOlOYArIp8AOBX5BCCYIszlGqYQVlVV9fe3DZ20SpGumGBPJyCO/iYz2FMAvqH+sVdZWSm32x3s6ThSc8incEf+hiby6crIJzhdOOcvGXVlZBQQHHXVX+vYy/9fQPKpSS90DgAAAAAAAFwNSikAAAAAAADYjlIKAAAAAAAAtqOUAgAAAAAAgO0opQAAAAAAAGA7SikAAAAAAADYjlIKAAAAAAAAtqOUAgAAAAAAgO0opQAAAAAAAGA7SikAAAAAAADYjlIKAAAAAAAAtqOUAgAAAAAAgO0opQAAAAAAAGA7SikAAAAAAADYjlIKAAAAAAAAtqOUAgAAAAAAgO0opQAAAAAAAGA7SikAAAAAAADYjlIKAAAAAAAAtqOUAgAAAAAAgO0opQAAAAAAAGA7SikAAAAAAADYjlIKAAAAAAAAtqOUAgAAAAAAgO0opQAAAAAAAGC7Ji+lpk+froiICL+te/fu1vGzZ88qKytLN9xwg9q2bauRI0eqvLzc7xylpaXKzMxUTEyM4uPj9fTTT+vcuXNNPVUAzQz5BAAAAADOEZBnSvXq1UtlZWXW9uGHH1rHJk+erPfee09vv/22tm3bpuPHj2vEiBHW8fPnzyszM1M1NTXavn27li1bpqVLl2ratGmBmCqAZoZ8AuBElOYAnIyMAhAoLQNy0pYt5fF4vrG/srJSr7/+ulauXKl7771XkrRkyRL16NFDO3bs0KBBg7Rp0yYdOHBA77//vhISEtS/f3/NmDFDP//5zzV9+nRFRUUFYsoAmgnyCYBT9erVS++//751u2XLf/yYNnnyZK1bt05vv/22YmNjlZ2drREjRuhPf/qTpH+U5h6PR9u3b1dZWZkeffRRtWrVSr/+9a9tXwuA8ENGAQiEgDxT6tChQ0pMTNRNN92kUaNGqbS0VJJUVFSk2tpapaamWmO7d++url27qrCwUJJUWFioPn36KCEhwRqTnp6uqqoq7d+//5Ifs7q6WlVVVX4bAFyMfALgVPWlef3WsWNHSf8ozWfPnq17771XKSkpWrJkibZv364dO3ZIklWaL1++XP3791dGRoZmzJih+fPnq6am5pIfk3wCcLXIKACB0OSl1MCBA7V06VJt2LBBCxcu1JEjR3TXXXfpq6++ks/nU1RUlNq3b+93n4SEBPl8PkmSz+fz+4Wv/nj9sUuZOXOmYmNjrS0pKalpFwYg5JFPAJwsGKU5+QTgapFRAAKhyUupjIwM/fCHP1Tfvn2Vnp6u9evXq6KiQqtWrWrqD+UnNzdXlZWV1nbs2LGAfjwAoYd8AuBUwSrNyScAV4OMAhAoAbmm1IXat2+vb3/72/rLX/6if/qnf1JNTY0qKir8Qqu8vNy6xovH49GuXbv8zlF/kbyGrgNTz+VyyeVyNf0CAIQt8gmAU2RkZFj/7tu3rwYOHKjk5GStWrVK0dHRAfu45BOAq0FGAQiUgFxT6kKnTp3SZ599ps6dOyslJUWtWrVSfn6+dbykpESlpaXyer2SJK/Xq3379unEiRPWmLy8PLndbvXs2TPQ0wXQjJBPAJzqwtLc4/FYpfmFLi7NL36nq6spzQHgWpBRAJpKk5dSP/vZz7Rt2zYdPXpU27dv1wMPPKAWLVro4YcfVmxsrMaNG6ecnBxt2bJFRUVFGjt2rLxerwYNGiRJSktLU8+ePfXII4/o448/1saNGzV16lRlZWXRkgO4LuQTgFBBaQ7AycgoAE2lyV++9/nnn+vhhx/WF198oU6dOunOO+/Ujh071KlTJ0nSnDlzFBkZqZEjR6q6ulrp6elasGCBdf8WLVpo7dq1mjhxorxer9q0aaPRo0fr+eefb+qpAmhmyCcATvWzn/1Mw4YNU3Jyso4fP67nnnuuwdI8Li5ObrdbTz755CVL81mzZsnn81GaA2gyZBSAQGnyUurNN9+87PHWrVtr/vz5mj9//iXHJCcna/369U09NQDNHPkEwKkozQE4GRkFIFACfqFzAAAAXB6lOQAnI6MABErAL3QOAAAAAAAAXIxSCgAAAAAAALajlAIAAAAAAIDtKKUAAAAAAABgO0opAAAAAAAA2I5SCgAAAAAAALajlAIAAAAAAIDtWgZ7Arh2Nz6z7qrHHv1NZgBnAgDNC/kLAAAAXD+eKQUAAAAAAADbUUoBAAAAAADAdrx8DwAAAEBI4OXTABBeeKYUAAAAAAAAbEcpBQAAAAAAANtRSgEAAAAAAMB2lFIAAAAAAACwHaUUAAAAAAAAbEcpBQAAAAAAANtRSgEAAAAAAMB2lFIAAAAAAACwHaUUAAAAAAAAbEcpBQAAAAAAANtRSgEAAAAAAMB2lFIAAAAAAACwHaUUAAAAAAAAbEcpBQAAAAAAANu1DPYELmf+/Pl68cUX5fP51K9fP82bN0/f/e53gz0tAJBERuHq3PjMuqsee/Q3mQGcCZoT8gkgf52KfAJwIceWUm+99ZZycnK0aNEiDRw4UC+//LLS09NVUlKi+Pj4YE8v5PA/ZaBpkVEAnIp8AuBU5BOAizn25XuzZ8/W448/rrFjx6pnz55atGiRYmJitHjx4mBPDQDIKACORT4BcCryCcDFHPlMqZqaGhUVFSk3N9faFxkZqdTUVBUWFjZ4n+rqalVXV1u3KysrJUl11V8HdrJhqOvkt6967Ce/TA/gTBCKqqqqJEnGmCDPJHAam1HkE64W+RtY5BP5BFyKE/I33DOK3/GA0FX/mAtEPjmylPq///s/nT9/XgkJCX77ExIS9OmnnzZ4n5kzZ+qXv/zlN/b/beGYQEwR/0/sy8GeAZzqiy++UGxsbLCnERCNzSjyCYFA/l478ukfyCeg8QKdv+GaUfyOB4S+QOSTI0upa5Gbm6ucnBzrdkVFhZKTk1VaWhqWoV5VVaWkpCQdO3ZMbrc72NNpUuG8Nin811dZWamuXbsqLi4u2FNxDPIpvLC+0EU+fRP5FF5YX2gjo76pOWVUuH9/s77QFsh8cmQp1bFjR7Vo0ULl5eV++8vLy+XxeBq8j8vlksvl+sb+2NjYsPymqOd2u8N2feG8Nin81xcZ6dhL1l23xmYU+RSeWF/oIp/+gXwKT6wvtIVrRvE73tUJ9+9v1hfaApFPjky8qKgopaSkKD8/39pXV1en/Px8eb3eIM4MAMgoAM5FPgFwKvIJQEMc+UwpScrJydHo0aN1++2367vf/a5efvllnT59WmPHjg321ACAjALgWOQTAKcinwBczLGl1IMPPqj//d//1bRp0+Tz+dS/f39t2LDhGxfGuxSXy6Xnnnuuwad7hoNwXl84r01ifeHiejIq3D9HrC+0hfP6wnltFyKfLo31hTbWF/r4He/SwnltEusLdYFcX4QJ1/ccBQAAAAAAgGM58ppSAAAAAAAACG+UUgAAAAAAALAdpRQAAAAAAABsRykFAAAAAAAA24VUKVVQUKBhw4YpMTFRERERWrNmzTfGHDx4UP/yL/+i2NhYtWnTRgMGDFBpaal1/OzZs8rKytINN9ygtm3bauTIkSovL7dxFZd2pfVFREQ0uL344ovWmJMnT2rUqFFyu91q3769xo0bp1OnTtm8koZdaX2nTp1Sdna2unTpoujoaPXs2VOLFi3yGxPKX7/y8nKNGTNGiYmJiomJ0dChQ3Xo0CG/MU5d38yZMzVgwAC1a9dO8fHxGj58uEpKSvzGXM3cS0tLlZmZqZiYGMXHx+vpp5/WuXPn7FxKwJBP5FMof/3Ip/DOJ4mMCuWMIp/IJ/KJfHJqPknhnVHhnE+SczIqpEqp06dPq1+/fpo/f36Dxz/77DPdeeed6t69u7Zu3aq9e/fq2WefVevWra0xkydP1nvvvae3335b27Zt0/HjxzVixAi7lnBZV1pfWVmZ37Z48WJFRERo5MiR1phRo0Zp//79ysvL09q1a1VQUKDx48fbtYTLutL6cnJytGHDBi1fvlwHDx7UpEmTlJ2drXfffdcaE6pfP2OMhg8frsOHD+uPf/yj9uzZo+TkZKWmpur06dPWOKeub9u2bcrKytKOHTuUl5en2tpapaWlNWru58+fV2ZmpmpqarR9+3YtW7ZMS5cu1bRp04KxpCZHPpFPofr1I5/CP58kMiqUM4p8Ip/IJ/LJqfkkhXdGhXM+SQ7KKBOiJJnVq1f77XvwwQfNj3/840vep6KiwrRq1cq8/fbb1r6DBw8aSaawsDBQU70mDa3vYvfff7+59957rdsHDhwwksxHH31k7fvv//5vExERYf72t78FaqrXpKH19erVyzz//PN++77zne+Yf/u3fzPGhPbXr6SkxEgyn3zyibXv/PnzplOnTub3v/+9MSa01nfixAkjyWzbts0Yc3VzX79+vYmMjDQ+n88as3DhQuN2u011dbW9Cwgw8ol8MiZ0vn7kU/PKJ2PIKGNCN6PIJ/LJGPLpYqH0PRDO+WRMeGdUuOeTMcHLqJB6ptTl1NXVad26dfr2t7+t9PR0xcfHa+DAgX5PsSsqKlJtba1SU1Otfd27d1fXrl1VWFgYhFlfu/Lycq1bt07jxo2z9hUWFqp9+/a6/fbbrX2pqamKjIzUzp07gzHNRvne976nd999V3/7299kjNGWLVv05z//WWlpaZJC++tXXV0tSX5/0YmMjJTL5dKHH34oKbTWV1lZKUmKi4uTdHVzLywsVJ8+fZSQkGCNSU9PV1VVlfbv32/j7O1HPpFPTkY+Ne98ksgoKbQzinwKnfWRT41HPoV2Pknhm1Hhlk9S8DIqbEqpEydO6NSpU/rNb36joUOHatOmTXrggQc0YsQIbdu2TZLk8/kUFRWl9u3b+903ISFBPp8vCLO+dsuWLVO7du38njrn8/kUHx/vN65ly5aKi4sLifXNmzdPPXv2VJcuXRQVFaWhQ4dq/vz5uvvuuyWF9tev/sGbm5urL7/8UjU1NXrhhRf0+eefq6ysTFLorK+urk6TJk3SHXfcod69e0u6urn7fD6/sKo/Xn8snJFP5JOTkU/NO58kMkoK7Ywin0JjfeTTtSGfQjufpPDNqHDKJym4GdXyOufuGHV1dZKk+++/X5MnT5Yk9e/fX9u3b9eiRYv0/e9/P5jTa3KLFy/WqFGj/JrZUDdv3jzt2LFD7777rpKTk1VQUKCsrCwlJib6tbOhqFWrVnrnnXc0btw4xcXFqUWLFkpNTVVGRoaMMcGeXqNkZWXpk08+sf4CgCsjn0If+RQayKdrQ0aFNvIpNJBP14Z8Cn3hmlHhlE9ScDMqbEqpjh07qmXLlurZs6ff/h49elifWI/Ho5qaGlVUVPi1feXl5fJ4PHZO97p88MEHKikp0VtvveW33+Px6MSJE377zp07p5MnTzp+fWfOnNEvfvELrV69WpmZmZKkvn37qri4WL/97W+Vmpoa8l+/lJQUFRcXq7KyUjU1NerUqZMGDhxoPRU3FNaXnZ1tXVyxS5cu1v6rmbvH49GuXbv8zlf/zg1OWV+gkE/kk9ORT803nyQySgrdjCKfQuN7k3y6duRT6OaTFP4ZFQ75JAU/o8Lm5XtRUVEaMGDAN97C8M9//rOSk5Ml/f2bplWrVsrPz7eOl5SUqLS0VF6v19b5Xo/XX39dKSkp6tevn99+r9eriooKFRUVWfs2b96suro6DRw40O5pNkptba1qa2sVGen/LdmiRQvrLyTh8vWLjY1Vp06ddOjQIe3evVv333+/JGevzxij7OxsrV69Wps3b1a3bt38jl/N3L1er/bt2+f3P9W8vDy53e5v/KARbsgn8ilUkE/NL58kMkoK3Ywin5y9PvLp+pFPoZtPUvPJqFDMJ8lBGXWdF2i31VdffWX27Nlj9uzZYySZ2bNnmz179pi//vWvxhhj3nnnHdOqVSvz6quvmkOHDpl58+aZFi1amA8++MA6x4QJE0zXrl3N5s2bze7du43X6zVerzdYS/JzpfUZY0xlZaWJiYkxCxcubPAcQ4cONbfddpvZuXOn+fDDD823vvUt8/DDD9u1hMu60vq+//3vm169epktW7aYw4cPmyVLlpjWrVubBQsWWOcI5a/fqlWrzJYtW8xnn31m1qxZY5KTk82IESP8zuHU9U2cONHExsaarVu3mrKyMmv7+uuvrTFXmvu5c+dM7969TVpamikuLjYbNmwwnTp1Mrm5ucFYUpMjn8inUP76kU/hnU/GkFHGhG5GkU/kE/lEPjk1n4wJ74wK53wyxjkZFVKl1JYtW4ykb2yjR4+2xrz++uvmlltuMa1btzb9+vUza9as8TvHmTNnzBNPPGE6dOhgYmJizAMPPGDKyspsXknDrmZ9v/vd70x0dLSpqKho8BxffPGFefjhh03btm2N2+02Y8eONV999ZVNK7i8K62vrKzMjBkzxiQmJprWrVubW2+91bz00kumrq7OOkcof/3mzp1runTpYlq1amW6du1qpk6d+o23yXTq+hpalySzZMkSa8zVzP3o0aMmIyPDREdHm44dO5qnnnrK1NbW2ryawCCfyKdQ/vqRT+GdT8aQUcaEbkaRT+QT+UQ+OTWfjAnvjArnfDLGORkV8f8mAwAAAAAAANgmbK4pBQAAAAAAgNBBKQUAAAAAAADbUUoBAAAAAADAdpRSAAAAAAAAsB2lFAAAAAAAAGxHKQUAAAAAAADbUUoBAAAAAADAdpRSAAAAAAAAsB2lFBzpxhtv1MsvvxzsaQDAN5BPAJyMjALgVOQTGkIpBUf66KOPNH78+Ksaa4zRtGnT1LlzZ0VHRys1NVWHDh0K8AwBNFfkEwAnI6MAOBX5hIZQSsGROnXqpJiYmKsaO2vWLL3yyitatGiRdu7cqTZt2ig9PV1nz54N8CwBNEfkEwAnI6MAOBX5hIZQSiEgNmzYoDvvvFPt27fXDTfcoH/+53/WZ599Jkl644031LZtW7+m+4knnlD37t319ddfS/J/aqcxRtOnT1fXrl3lcrmUmJion/70p9axl19+WVOnTtX999+vvn376o033tDx48e1Zs0aW9cMIDSQTwCcjIwC4FTkEwKBUgoBcfr0aeXk5Gj37t3Kz89XZGSkHnjgAdXV1enRRx/Vfffdp1GjRuncuXNat26dXnvtNa1YsaLB5vy//uu/NGfOHP3ud7/ToUOHtGbNGvXp00eSdOTIEfl8PqWmplrjY2NjNXDgQBUWFtq2XgChg3wC4GRkFACnIp8QCC2DPQGEp5EjR/rdXrx4sTp16qQDBw6od+/e+t3vfqe+ffvqpz/9qd555x1Nnz5dKSkpDZ6rtLRUHo9HqampatWqlbp27arvfve7kiSfzydJSkhI8LtPQkKCdQwALkQ+AXAyMgqAU5FPCASeKYWAOHTokB5++GHddNNNcrvduvHGGyX9PXwkqUOHDnr99de1cOFC3XzzzXrmmWcuea4f/vCHOnPmjG666SY9/vjjWr16tc6dO2fHMgCEIfIJgJORUQCcinxCIFBKISCGDRumkydP6ve//7127typnTt3SpJqamqsMQUFBWrRooXKysp0+vTpS54rKSlJJSUlWrBggaKjo/XEE0/o7rvvVm1trTwejySpvLzc7z7l5eXWMQC4EPkEwMnIKABORT4hECil0OS++OILlZSUaOrUqRoyZIh69OihL7/80m/M9u3b9cILL+i9995T27ZtlZ2dfdlzRkdHa9iwYXrllVe0detWFRYWat++ferWrZs8Ho/y8/OtsVVVVdq5c6e8Xm9A1gcgdJFPAJyMjALgVOQTAoVrSqHJdejQQTfccINeffVVde7cWaWlpX5P3fzqq6/0yCOP6Kc//akyMjLUpUsXDRgwQMOGDdMPfvCDb5xv6dKlOn/+vAYOHKiYmBgtX75c0dHRSk5OVkREhCZNmqRf/epX+ta3vqVu3brp2WefVWJiooYPH27jqgGEAvIJgJORUQCcinxCwBggAPLy8kyPHj2My+Uyffv2NVu3bjWSzOrVq83YsWNNnz59zNmzZ63xL730komLizOff/65McaY5ORkM2fOHGOMMatXrzYDBw40brfbtGnTxgwaNMi8//771n3r6urMs88+axISEozL5TJDhgwxJSUltq4XQOggnwA4GRkFwKnIJwRChDHGBLcWAwAAAAAAQHPDNaUAAAAAAABgO0opAAAAAAAA2I5SCgAAAAAAALajlAIAAAAAAIDtKKUAAAAAAABgO0opAAAAAAAA2I5SCgAAAAAAALajlAIAAAAAAIDtKKUAAAAAAABgO0opAAAAAAAA2I5SCgAAAAAAALb7/wFzpmDDgDmsBwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure, axes = plt.subplots(1, 4, figsize=(12, 3))\n", "\n", "hist3 = h1([], 20, range=(160, 200))\n", "\n", "for i, ax in enumerate(axes):\n", " for height in np.random.normal(165 + 10 * i, 2.8, 10000):\n", " hist3.fill(height)\n", " hist3.plot(ax=ax);\n", " print(\"After {0} batches: {1}\".format(i, hist3))\n", "figure.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Add histograms with the same binning" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "image/png": "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xIkT9d5770mSjh8/ruTkZEVFRWnr1q3av3+/br75ZgUGBuqhhx6SJJWWlio5OVkzZ87Uq6++qvz8fN12223q0aOHkpKSzvV8gWZXUFDg7S4APsmT78bo0aNbrB9Ae+JxsOvQoYOioqJO2l5VVaVly5Zp5cqVuuqqqyRJy5cv14ABA/T+++9rxIgRevvtt/Xxxx9r48aNioyM1MUXX6wHHnhA8+bN08KFCxUUFKTs7GzFxcXpsccekyQNGDBA7777rhYvXkywAwAA+Ake32O3d+9eRUdHq3fv3po8ebLKysokScXFxaqrq1NiYqLZtn///oqNjVVRUZEkqaioSAMHDlRkZKTZJikpSS6XS3v27DHbnHiMxjaNxwAAAMCpeVSxGz58uHJyctSvXz/t379f9913n37xi19o9+7dcjqdCgoKUlhYmNtnIiMj5XQ6JUlOp9Mt1DXub9z3U21cLpeOHTumkJCQU/atpqZGNTU15nuXy+XJqQEAALR5HgW7cePGmT8PGjRIw4cPV69evbRq1arTBq7WkpWVpfvuu8+rfQAAAPCmc1ruJCwsTD//+c/12WefKSoqSrW1taqsrHRrU15ebt6TFxUVddIs2cb3Z2pjs9l+MjxmZmaqqqrKfH399dfncmoAAABtzjkFu8OHD+vzzz9Xjx49NHToUAUGBio/P9/cX1JSorKyMjkcDkmSw+HQrl27VFFRYbbJy8uTzWZTfHy82ebEYzS2aTzG6QQHB8tms7m9AAAA2hOPgt1dd92lwsJCffnll9q6dauuu+46BQQE6MYbb5Tdbtf06dOVkZGhzZs3q7i4WLfeeqscDodGjBghSRozZozi4+N100036X/+53+0YcMGzZ8/X6mpqQoODpYkzZw5U1988YXmzp2rTz/9VM8884xWrVql9PT05j97AAAAC/HoHrtvvvlGN954o77//nuFh4dr5MiRev/99xUeHi5JWrx4sfz9/ZWSkqKamholJSXpmWeeMT8fEBCgtWvXatasWXI4HOrUqZOmTp2q+++/32wTFxen3Nxcpaena8mSJerZs6defPFFljoBAAtjzTugefgZhmF4uxMtweVyyW63q6qqimFZtCgWKAZaF8EObVlL5xOeFQsAAGARBDsAAACLINgBAABYBMEOAADAIgh2AAAAFkGwAwAAsAiCHQAAgEUQ7AAAACyCYAcA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E088oSNHjpizZAEAAODOZ4PdDTfcoO+++04LFiyQ0+nUxRdfrPXr1580oQIAAAA/8NlgJ0lpaWmnHXo9k+DgYP3pT3865fAsfBfXre3i2rVNXLe2ievWdrX0tfMzWmq+LQAAAFqVzz5SDAAAAJ4h2AEAAFgEwQ4AAMAi2lSw27Jli6699lpFR0fLz89Pa9ascdt/yy23yM/Pz+01duxYtzYHDhzQ5MmTZbPZFBYWpunTp+vw4cOteBbt05munSR98skn+q//+i/Z7XZ16tRJl156qcrKysz91dXVSk1NVffu3dW5c2elpKSctIg1mteZrtuPv2+Nr0cffdRsw3eu9Z3puh0+fFhpaWnq2bOnQkJCFB8fr+zsbLc2fN+840zXrry8XLfccouio6MVGhqqsWPHau/evW5tuHatLysrS5deeqm6dOmiiIgITZgwQSUlJW5tzua6lJWVKTk5WaGhoYqIiNCcOXNUX1/vUV/aVLA7cuSIBg8erKVLl562zdixY7V//37z9de//tVt/+TJk7Vnzx7l5eVp7dq12rJli2bMmNHSXW/3znTtPv/8c40cOVL9+/dXQUGBPvroI917773q2LGj2SY9PV1vvfWWXn/9dRUWFmrfvn2aOHFia51Cu3Sm63bid23//v166aWX5Ofnp5SUFLMN37nWd6brlpGRofXr1+uVV17RJ598otmzZystLU1vvvmm2Ybvm3f81LUzDEMTJkzQF198oX/+85/68MMP1atXLyUmJurIkSNmO65d6yssLFRqaqref/995eXlqa6uTmPGjPHouhw/flzJycmqra3V1q1btWLFCuXk5GjBggWedcZooyQZq1evdts2depUY/z48af9zMcff2xIMrZv325uW7duneHn52d8++23LdRT/Niprt0NN9xgTJky5bSfqaysNAIDA43XX3/d3PbJJ58YkoyioqKW6ipOcKrr9mPjx483rrrqKvM93znvO9V1u/DCC43777/fbduQIUOMe+65xzAMvm++4sfXrqSkxJBk7N6929x2/PhxIzw83HjhhRcMw+Da+YqKigpDklFYWGgYxtldl3/961+Gv7+/4XQ6zTbPPvusYbPZjJqamrP+3W2qYnc2CgoKFBERoX79+mnWrFn6/vvvzX1FRUUKCwvTsGHDzG2JiYny9/fXtm3bvNFd6IfHxeXm5urnP/+5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "heights1 = h1(np.random.normal(169, 10, 100000), 50, range=(150, 200))\n", "heights2 = h1(np.random.normal(180, 11, 100000), 50, range=(150, 200))\n", "\n", "\n", "total = heights1 + heights2\n", "\n", "axis = heights1.plot(label=\"Women\", color=\"red\", alpha=0.5)\n", "heights2.plot(label=\"Men\", color=\"blue\", alpha=0.5, ax=axis)\n", "total.plot(label=\"All\", color=\"gray\", alpha=0.5, ax=axis)\n", "axis.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Compatibility\n", "\n", "Note: Mostly, the compatibility is a trivial consequence of the object being convertible to numpy array" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
frequencyerror
[-26.890925629481504, -21.481103759077783)103.162278
[-21.481103759077783, -16.071281888674058)10010.000000
[-16.071281888674058, -10.661460018270336)53423.108440
[-10.661460018270336, -5.251638147866615)160040.000000
[-5.251638147866615, 0.15818372253710677)280352.943366
[0.15818372253710677, 5.568005592940832)285053.385391
[5.568005592940832, 10.97782746334455)154439.293765
[10.97782746334455, 16.387649333748275)47121.702534
[16.387649333748275, 21.797471204152)758.660254
[21.797471204152, 27.207293074555718)133.605551
\n", "
" ], "text/plain": [ " frequency error\n", "[-26.890925629481504, -21.481103759077783) 10 3.162278\n", "[-21.481103759077783, -16.071281888674058) 100 10.000000\n", "[-16.071281888674058, -10.661460018270336) 534 23.108440\n", "[-10.661460018270336, -5.251638147866615) 1600 40.000000\n", "[-5.251638147866615, 0.15818372253710677) 2803 52.943366\n", "[0.15818372253710677, 5.568005592940832) 2850 53.385391\n", "[5.568005592940832, 10.97782746334455) 1544 39.293765\n", "[10.97782746334455, 16.387649333748275) 471 21.702534\n", "[16.387649333748275, 21.797471204152) 75 8.660254\n", "[21.797471204152, 27.207293074555718) 13 3.605551" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Convert to pandas DataFrames\n", "hist.to_dataframe()" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "image/png": "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t29v3Xvvvfb2wsJCq2XLllZUVJS1bds2a+XKlVa9evWs0aNH2zX79++3XnrpJWvBggVWmzZtrOHDh5dJf69HfHy8JcmpDfv27bN69uxp1atXz/L19bUef/xxKzMz02m/9PR069e//rVVt25dy9fX17rvvvus5ORke/v8+fMtSZdcsrKyKqp7Rho3bpzVunXrS247efKkVb16dWvp0qX2ut27d1uSrJSUFJeOVWLAgAHWo48+WooWu64i+jhr1iyrdu3aVl5enr1u1KhRVtOmTUvdfledOnXKql27tjV9+nS7f3/729/s7Xv27HHq34wZM6zg4GCruLjYrikoKLBq1qxpLVy40LIsy1q9erUlydq3b59dk5aWZkmy0tPTy71PN9s5hBnuuusu69VXX7WSkpIsSdaJEyectjdq1Mh65513LMuyrA8++MCSZB08eNCpJjAw0Hr//fcty7KssWPHWh4eHk7bz5w5Y0my1qxZ41LbrjXTMFL3CyU3TpYs9erVk/R/N06+88476tKliyIjIzV//nxt2rRJmzdvliStWbNGu3bt0kcffaQ2bdqoW7dumjhxombOnGkPxzZp0kTTp09X//795e/vX2n93Lp1q9577z2nmzpzc3PVtWtXubm5KTk5WV999ZXy8/PVo0cPFRcX23Xdu3dXYWGhkpOTlZqaqtatW6t79+72sPSTTz7pdIV+5MgRRUdH64EHHlBgYGCF99U0pbkPpKoo7z6mpKSoY8eO8vT0tNdFR0crPT1dJ06cKLuOXMLvf/97bdiwQQcOHNCmTZv0m9/8RtWqVdNTTz0lf39/DRw4UCNHjtTnn3+u1NRUPfvss3I4HGrfvr0k6aGHHtKJEycUGxur3bt3a+fOnXr22Wfl4eGhzp07S5KioqLUtm1bPffcc9q2bZtSU1P1wgsv6KGHHnIavStPJp9DmOf06dP6/vvv1aBBA0VGRqp69epKSkqyt6enpysjI0MOh0OSdN9999nrSxw/flzHjh1T48aN7ZrCwkJ9//33ds1//vMfSbJryhqh7hdK80aUkpKiVq1aKSgoyK6Jjo5WTk6Odu7cWbEduYLTp0+rb9++mjt3rmrXrm2v/+qrr3TgwAElJiaqVatWatWqlRYsWKBvvvlGycnJkqRjx45p7969evXVVxUREaE77rhDkydP1pkzZ7Rjxw5Jko+Pj1Mw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kjRy5EgNGDBAd911l+655x5NmzZNubm5evbZZyu7aQAAADecGzbUPfnkk/r55581duxYZWZmqk2bNlq1atVFD08AAADgBg51kjRs2LDLftwK83l5eWncuHEXfayOqoNzWPVxDqs+zuHNw82yrvZ8LAAAAG50N+TkwwAAAHANoQ4AAMAAhDoAAAADEOpQqWbOnKkmTZrI29tb7dq109dff33Z2rlz56pDhw6qXbu2ateuraioqCvWo2K4cg4vtHjxYrm5udlzUaLyuHoOT548qdjYWDVo0EBeXl668847tXLlygpqLS7F1XM4bdo0NW3aVD4+PgoNDVVcXJzOnTPva+BuOmXzxV6A6xYvXmx5enpaH3zwgbVz507r+eeftwICAqysrKxL1vfp08eaOXOmtW3bNmv37t3WM888Y/n7+1s//fRTBbccJVw9hyX2799v3XLLLVaHDh2sRx99tGIai0ty9Rzm5eVZd911l/XII49YGzdutPbv32+tX7/eSktLq+CWo4Sr53DhwoWWl5eXtXDhQmv//v3W6tWrrQYNGlhxcXEV3HKUNUIdKs0999xjxcbG2q+LioqskJAQKz4+/pr2LywstHx9fa0FCxaUVxNxFddzDgsLC617773XmjdvnjVgwABCXSVz9RzOnj3buvXWW638/PyKaiKuwtVzGBsba3Xp0sVp3ciRI6377ruvXNuJ8sfHr6gU+fn5Sk1NVVRUlL3O3d1dUVFRSklJuaZjnDlzRgUFBapTp055NRNXcL3ncMKECQoMDNTAgQMropm4gus5h//85z/lcDgUGxuroKAgtWzZUpMmTVJRUVFFNRsXuJ5zeO+99yo1NdX+iPaHH37QypUr9cgjj1RIm1F+bujJh2GuY8eOqaio6KJvCAkKCtKePXuu6RijRo1SSEiI05sZKs71nMONGzcqISFBaWlpFdBCXM31nMMffvhBycnJ6tu3r1auXKl9+/bpd7/7nQoKCjRu3LiKaDYucD3nsE+fPjp27Jjuv/9+WZalwsJCDRkyRH/4wx8qoskoR4zUoUqaPHmyFi9erE8//VTe3t6V3Rxcg1OnTqlfv36aO3eu6tWrV9nNwXUqLi5WYGCg3n//fUVGRurJJ5/Ua6+9pjlz5lR203CN1q9fr0mTJmnWrFn69ttv9cknn2jFihWaOHFiZTcNpcRIHSpFvXr1VK1a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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Works on xarray\n", "import xarray as xr\n", "arr = xr.DataArray(np.random.rand(10, 50, 100))\n", "h1(arr).plot(cmap=\"Reds_r\", cmap_min=4744, cmap_max=5100, lw=1, edgecolor=\"red\", show_values=True);" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=100, dtype=int32)" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4WUlEQVR4nO3deVyVdd7/8fcBFEwBRZFlVDDNfStTwswlvUVrTLTJJWdEx2XyFpdIU1pUWgYnx3JKy6Y7l7nVFmfSLIsZc1zqBi01UpsiZUCwAJcSAhWNc/3+6OeZTix69ByRL6/n43E9Hl3f6/u9rs+X09W851rOsVmWZQkAAAA1nld1FwAAAAD3INgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AHwuPHjxysyMvKKxzZo0MC9BVVh9erVstlsys7OdrT169dP/fr1uybHt9lsWrhwoWN94cKFstlsOnny5DU5fmRkpMaPH39NjgXA/Qh2ACT9J9Ds3bu3wu39+vVTp06drnFVl+/MmTNauHChduzYUd2lSJJSU1O1cOFCnT59urpLKed6rg3A1fGp7gIAmO+VV16R3W736DHOnDmjpKQkSXL71bV//OMfLo9JTU1VUlKSxo8fr4YNG172uLNnz8rHx7P/aa6qtoyMDHl58f/5gZqKYAfA4+rUqVPdJVyVunXrenT/drtd58+fl5+fn/z8/Dx6rEvx9fWt1uMDuDr83zIAV2Xt2rXq3r276tWrp6CgII0ePVq5ublOfSp6xu7UqVP6zW9+o4CAADVs2FBxcXH67LPPZLPZtHr16nLH+frrrxUbG6sGDRooODhYs2fPVllZmSQpOztbwcHBkqSkpCTZbLZyz6pV5PPPP9edd96pevXqqVmzZnrqqacqvLJY0TN2L7zwgjp27KgbbrhBjRo10q233qr169dL+vG5uDlz5kiSWrZs6ajn4nN7NptN8fHxWrdunTp27ChfX1+lpKQ4tlVU98mTJzVy5EgFBASocePGmjlzps6dO+fYnp2dXenf7qf7vFRtFT1j9+9//1v33XefgoKCdMMNN+i2227Tli1bnPrs2LFDNptNb775pp5++mk1a9ZMfn5+GjBggI4cOVKuJgCewRU7AE4KCwsrfFD/woUL5dqefvppPf744xo5cqQmTZqkEydO6IUXXlCfPn306aefVnoL0m63a+jQofr44481depUtWvXTm+//bbi4uIq7F9WVqaYmBhFRUXpj3/8oz744AMtWbJErVq10tSpUxUcHKyXXnpJU6dO1fDhwzVixAhJUpcuXSqdZ35+vvr3768ffvhB8+bNU/369fXnP/9Z9erVu+Tf6JVXXtGMGTP0q1/9yhGwDhw4oD179uj+++/XiBEj9NVXX+m1117Tc889pyZNmkiSI3xK0j//+U+9+eabio+PV5MmTS75csnIkSMVGRmp5ORk7d69W88//7y+++47/eUvf7lkvT91ObX9VEFBgXr16qUzZ85oxowZaty4sdasWaN77rlHf/3rXzV8+HCn/osWLZKXl5dmz56twsJCPfPMMxo7dqz27NnjUp0ArpAFAJZlrVq1ypJU5dKxY0dH/+zsbMvb29t6+umnnfZz8OBBy8fHx6k9Li7OioiIcKz/7W9/syRZS5cudbSVlZVZd955pyXJWrVqldNYSdYTTzzhdJybb77Z6t69u2P9xIkTliRrwYIFlzXfWbNmWZKsPXv2ONqOHz9uBQYGWpKsrKwsR3vfvn2tvn37OtaHDRvm9LeoyOLFi8vt5yJJlpeXl/X5559XuO2nc1iwYIElybrnnnuc+v33f/+3Jcn67LPPLMuyrKysrHJ/u8r2WVVtERERVlxcnGP94t/pww8/dLR9//33VsuWLa3IyEirrKzMsizL2r59uyXJat++vVVaWuro+6c//cmSZB08eLDcsQC4H7diAThZvny5tm7dWm75+dWvt956S3a7XSNHjtTJkycdS2hoqG666SZt37690mOkpKSoTp06mjx5sqPNy8tL06ZNq3TMAw884LR+xx136N///vcVzlJ67733dNttt6lnz56OtuDgYI0dO/aSYxs2bKhjx47pk08+ueLj9+3bVx06dLjs/j//20yfPl3Sj/PwpPfee089e/ZU7969HW0NGjTQlClTlJ2drX/9619O/SdMmOD0TOIdd9whSVf1WQG4fNyKBeCkZ8+euvXWW8u1N2rUyOkW7eHDh2VZlm666aYK91PVCxNHjx5VWFiYbrjhBqf21q1bV9jfz8+v3K3CRo0a6bvvvqv0GJdy9OhRRUVFlWtv27btJcfOnTtXH3zwgXr27KnWrVtr0KBBuv/++3X77bdf9vFbtmzpUr0//zu3atVKXl5eTt+35wmV/Z3at2/v2P7Tr8Fp0aKFU79GjRpJ0lV9VgAuH8EOwBWx2+2y2Wx6//335e3tXW67O79UuKL9V6f27dsrIyND7777rlJSUvS3v/1NL774oubPn+/4ypVLuZxn+apis9mqXL/o4gsm10pln5VlWde0DqC2ItgBuCKtWrWSZVlq2bKl2rRp49LYiIgIbd++XWfOnHG6anc1b09WFmyqquHw4cPl2jMyMi5rfP369TVq1CiNGjVK58+f14gRI/T0008rMTFRfn5+LtdzKYcPH3a6ynfkyBHZ7XbHSxcXr4z9/EuHjx49Wm5frtQWERFR4d/kyy+/dGwHcP3gGTsAV2TEiBHy9vZWUlJSuasxlmXp1KlTlY6NiYnRhQsX9Morrzja7Ha7li9ffsX1XAyIl/trCnfddZd2796tjz/+2NF24sQJrVu37pJjfz63unXrqkOHDrIsy/H2cP369V2q51J+/rd54YUXJElDhgyRJAUEBKhJkybatWuXU78XX3yx3L5cqe2uu+7Sxx9/rLS0NEdbSUmJ/vznPysyMtKl5wQBeB5X7ABckVatWumpp55SYmKisrOzFRsbK39/f2VlZWnjxo2aMmWKZs+eXeHY2NhY9ezZUw899JCOHDmidu3aafPmzfr2228luX71Tfrx1maHDh30xhtvqE2bNgoKClKnTp0q/Rm0hx9+WP/7v/+rwYMHa+bMmY6vO4mIiNCBAweqPNagQYMUGhqq22+/XSEhIfriiy+0bNky3X333fL395ckde/eXZL06KOPavTo0apTp46GDh3qCFWuysrK0j333KPBgwcrLS1Na9eu1f3336+uXbs6+kyaNEmLFi3SpEmTdOutt2rXrl366quvyu3LldrmzZun1157TUOGDNGMGTMUFBSkNWvWKCsrS3/729/4lQrgOkOwA3DF5s2bpzZt2ui5555zPFvWvHlzDRo0SPfcc0+l47y9vbVlyxbNnDlTa9askZeXl4YPH64FCxbo9ttvv+JfX/if//kfTZ8+XQ8++KDOnz+vBQsWVBrswsLCtH37dk2fPl2LFi1S48aN9cADDyg8PFwTJ06s8ji/+93vtG7dOj377LMqLi5Ws2bNNGPGDD322GOOPj169NCTTz6pFStWKCUlRXa7XVlZWVcc7N544w3Nnz9f8+bNk4+Pj+Lj47V48WKn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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Works on pandas Series\n", "import pandas as pd\n", "series = pd.Series(heights, name=\"height [cm]\")\n", "hist = h1(series, title=\"Height distribution\")\n", "hist.plot()\n", "hist" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=100, dtype=int32)" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA000lEQVR4nO3deVxVdf7H8fcFFExZcmNJBNNSc8EyI8xxSUakckkrNctl1JYRy1BTrMyl+WE5pjWa9uuR0mSrPXJJy4lca0RLjTFLSRkRHLmYliCUuHB+f/TzTjcWuXqvyJfX8/E4j4fne77fcz5fr6fej7Pca7MsyxIAAACqPa+qLgAAAADuQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsANQbUyfPl02m+2yHKt79+7q3r27Y33Tpk2y2Wz64IMPLsvxR4wYocjIyMtyLADmINgBqDIpKSmy2WyOxc/PT2FhYYqLi9PLL7+skydPXvIxjhw5ounTpys9Pf3SC3azK7k2ANUTwQ5AlZs5c6befPNNLVq0SOPGjZMkjR8/Xu3atdPu3bsd/Z5++mn98ssvLu37yJEjmjFjhsvh6dNPP9Wnn37q0hhXVVTba6+9poyMDI8eH4B5fKq6AACIj4/XzTff7FhPSkrShg0bdNddd6lv377au3ev6tSpIx8fH/n4ePY/Wz///LOuuuoq1a5d26PHuZBatWpV6fEBVE9csQNwRbr99tv1zDPP6NChQ1q2bJmksp+xS01NVZcuXRQUFKR69eqpZcuWmjp1qqRfn4vr1KmTJGnkyJGOW74pKSmSfn2Orm3bttq5c6e6du2qq666yjH298/YnXfu3DlNnTpVISEhqlu3rvr27aucnBynPpGRkRoxYkSpsb/d54VqK+sZu6KiIk2YMEHh4eHy9fVVy5Yt9de//lWWZTn1s9lsSkhI0MqVK9W2bVv5+vqqTZs2WrduXfl/4QCMQLADcMV68MEHJancW6Lffvut7rrrLhUXF2vmzJmaO3eu+vbtq3/+85+SpNatW2vmzJmSpIceekhvvvmm3nzzTXXt2tWxj+PHjys+Pl4dOnTQ/Pnz1aNHjwpr+stf/qK1a9dq8uTJeuyxx5SamqrY2FiXbxFXprbfsixLffv21bx589S7d2+9+OKLatmypSZNmqTExMRS/b/44gv9+c9/1uDBg/XCCy/o1KlTGjhwoI4fP+5SnQCqF27FArhiNWnSRIGBgcrMzCxze2pqqk6fPq1PPvlEDRs2LLU9ODhY8fHxmjZtmmJiYvTAAw+U6mO327V48WI9/PDDlarpxx9/1N69e+Xv7y9Juummm3Tffffptdde02OPPVbpuVWmtt9avXq1NmzYoOeee05PPfWUJGns2LG699579dJLLykhIUHNmzd39N+7d6++++47R1uPHj0UFRWld955RwkJCZWuE0D1whU7AFe0evXqlft2bFBQkCRp1apVKikpuaj9+/r6auTIkZXuP2zYMEeok6R77rlHoaGh+vjjjy/q+JX18ccfy9vbu1R4nDBhgizL0ieffOLUHhsb6xT02rdvr4CAAP373//2aJ0AqhbBDsAVrbCw0ClI/dagQYN02223afTo0QoODtbgwYP1/vvvuxTyrrnmGpdelLjuuuuc1m02m1q0aKGsrKxK7+NiHDp0SGFhYaX+Llq3bu3Y/ltNmzYttY+rr75aP/30k+eKBFDlCHYArliHDx9Wfn6+WrRoUeb2OnXqaMuWLfrss8/04IMPavfu3Ro0aJD++Mc/6ty5c5U6Rp06ddxZsiSV+yXKla3JHby9vcts//2LFgDMQrADcMV68803JUlxcXHl9vHy8lLPnj314osv6rvvvtNf/vIXbdiwQRs3bpRUfsi6WPv373datyxLBw4ccHqD9eqrr9aJEydKjf39VTVXaouIiNCRI0dK3Zbet2+fYzsAEOwAXJE2bNigWbNmqVmzZho6dGiZfX788cdSbR06dJAkFRcXS5Lq1q0rSWUGrYvx97//3SlcffDBB8rNzVV8fLyjrXnz5tq2bZtOnz7taFuzZk2pr0VxpbY77rhD586d04IFC5za582bJ5vN5nR8ADUXb8UCqHKffPKJ9u3bp7NnzyovL08bNmxQamqqIiIitHr1avn5+ZU5bubMmdqyZYvuvPNORURE6OjRo3rllVfUpEkTdenSRdKvISsoKEiLFy+Wv7+/6tatq+joaDVr1uyiaq1fv766dOmikSNHKi8vT/Pnz1eLFi00ZswYR5/Ro0frgw8+UO/evXXfffcpMzNTy5Ytc3qZwdXa+vTpox49euipp55SVlaWoqKi9Omnn2rVqlUaP358qX0DqJkIdgCq3LRp0yRJtWvXVv369dWuXTvNnz9fI0eOLPfFCUnq27evsrKytGTJEh07dkwNGzZUt27dNGPGDAUGBkr69Rcc3njjDSUlJemRRx7R2bNntXTp0osOdlOnTtXu3buVnJyskydPqmfPnnrllVd01VVXOfrExcVp7ty5evHFFzV+/HjdfPPNWrNmjSZMmOC0L1dq8/Ly0urVqzVt2jS99957Wrp0qSIjIzVnzpxS+wVQc9ksnqQFAAAwAs/YAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAII77HrqSkREeOHJG/v7/bfz4IAACgKlmWpZMnTyosLExeXhVfkzMi2B05ckTh4eFVXQYAAIDH5OTkqEmTJhX2MSLYnf9m+pycHAUEBFRxNQAAAO5TUFCg8PDwCn+J5zwjgt35268BAQEEOwAAYKTKPG7GyxMAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIZwKdglJyerU6dO8vf3V+PGjdW/f39lZGQ49Tl16pTGjh2rBg0aqF69eho4cKDy8vIq3K9lWZo2bZpCQ0NVp04dxcbGav/+/a7PBgAAoAZzKdht3rxZY8eO1bZt25SamqozZ86oV69eKioqcvR54okn9NFHH2n58uXavHmzjhw5ogEDBlS43xdeeEEvv/yyFi9erO3bt6tu3bqKi4vTqVOnLm5WAAAANZDNsizrYgf/8MMPaty4sTZv3qyuXbsqPz9fjRo10ttvv6177rlHkrRv3z61bt1aaWlpuvXWW0vtw7IshYWFacKECZo4caIkKT8/X8HBwUpJSdHgwYMvWEdBQYECAwOVn5/Pb8UCAACjuJJzLukZu/z8fElS/fr1JUk7d+7UmTNnFBsb6+jTqlUrNW3aVGlpaWXu4+DBg7Lb7U5jAgMDFR0dXe4YAAAAlOZzsQNLSko0fvx43XbbbWrbtq0kyW63q3bt2goKCnLqGxwcLLvdXuZ+zrcHBwdXekxxcbGKi4sd6wUFBRc7DQAAAGNc9BW7sWPHas+ePXr33XfdWU+lJCcnKzAw0LGEh4df9hoAAACuNBcV7BISErRmzRpt3LhRTZo0cbSHhITo9OnTOnHihFP/vLw8hYSElLmv8+2/f3O2ojFJSUnKz893LDk5ORczDQAAAKO4FOwsy1JCQoJWrFihDRs2qFmzZk7bO3bsqFq1amn9+vWOtoyMDGVnZysmJqbMfTZr1kwhISFOYwoKCrR9+/Zyx/j6+iogIMBpAQAAqOlcCnZjx47VsmXL9Pbbb8vf3192u112u12//PKLpF9fehg1apQSExO1ceNG7dy5UyNHjlRMTIzTG7GtWrXSihUrJEk2m03jx4/Xc889p9WrV+ubb77RsGHDFBYWpv79+7tvpgAAAIZz6eWJRYsWSZK6d+/u1L506VKNGDFCkjRv3jx5eXlp4MCBKi4uVlxcnF555RWn/hkZGY43aiXpySefVFFRkR566CGdOHFCXbp00bp16+Tn53cRUwIAAKiZLul77K4UfI8dAAAw1WX7HjsAAABcOQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCJ+qLgAAcGWKnLK2qkvwuKzZd1Z1CYBbccUOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDuBzstmzZoj59+igsLEw2m00rV6502m6z2cpc5syZU+4+p0+fXqp/q1atXJ4MAABATeZysCsqKlJUVJQWLlxY5vbc3FynZcmSJbLZbBo4cGCF+23Tpo3TuC+++MLV0gAAAGo0H1cHxMfHKz4+vtztISEhTuurVq1Sjx49dO2111ZciI9PqbEAAACoPI8+Y5eXl6e1a9dq1KhRF+y7f/9+hYWF6dprr9XQoUOVnZ3tydIAAACM4/IVO1e88cYb8vf314ABAyrsFx0drZSUFLVs2VK5ubmaMWOG/vCHP2jPnj3y9/cv1b+4uFjFxcWO9YKCArfXDgAAUN14NNgtWbJEQ4cOlZ+fX4X9fntrt3379oqOjlZERITef//9Mq/2JScna8aMGW6vFwAAoDrz2K3Yzz//XBkZGRo9erTLY4OCgnT99dfrwIEDZW5PSkpSfn6+Y8nJybnUcgEAAKo9jwW7119/XR07dlRUVJTLYwsLC5WZmanQ0NAyt/v6+iogIMBpAQAAqOlcDnaFhYVKT09Xenq6JOngwYNKT093etmhoKBAy5cvL/dqXc+ePbVgwQLH+sSJE7V582ZlZWVp69atuvvuu+Xt7a0hQ4a4Wh4AAECN5fIzdjt27FCPHj0c64mJiZKk4cOHKyUlRZL07rvvyrKscoNZZmamjh075lg/fPiwhgwZouPHj6tRo0bq0qWLtm3bpkaNGrlaHgAAQI1lsyzLquoiLlVBQYECAwOVn5/PbVkAcJPIKWurugSPy5p9Z1WXAFyQKzmH34oFAAAwBMEOAADAEAQ7AAAAQ3j0C4oBALiS8RwhTMMVOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwhMvBbsuWLerTp4/CwsJks9m0cuVKp+0jRoyQzWZzWnr37n3B/S5cuFCRkZHy8/NTdHS0vvzyS1dLAwAAqNFcDnZFRUWKiorSwoULy+3Tu3dv5ebmOpZ33nmnwn2+9957SkxM1LPPPqtdu3YpKipKcXFxOnr0qKvlAQAA1Fg+rg6Ij49XfHx8hX18fX0VEhJS6X2++OKLGjNmjEaOHClJWrx4sdauXaslS5ZoypQprpYIAABQI3nkGbtNmzapcePGatmypR599FEdP3683L6nT5/Wzp07FRsb+9+ivLwUGxurtLQ0T5QHAABgJJev2F1I7969NWDAADVr1kyZmZmaOnWq4uPjlZaWJm9v71L9jx07pnPnzik4ONipPTg4WPv27SvzGMXFxSouLnasFxQUuHcSAAAA1ZDbg93gwYMdf27Xrp3at2+v5s2ba9OmTerZs6dbjpGcnKwZM2a4ZV/A5RY5ZW1Vl+BxWbPvrOoSAKBG8vjXnVx77bVq2LChDhw4UOb2hg0bytvbW3l5eU7teXl55T6nl5SUpPz8fMeSk5Pj9roBAACqG48Hu8OHD+v48eMKDQ0tc3vt2rXVsWNHrV+/3tFWUlKi9evXKyYmpswxvr6+CggIcFoAAABqOpeDXWFhodLT05Weni5JOnjwoNLT05Wdna3CwkJNmjRJ27ZtU1ZWltavX69+/fqpRYsWiouLc+yjZ8+eWrBggWM9MTFRr732mt544w3t3btXjz76qIqKihxvyQIAAODCXH7GbseOHerRo4djPTExUZI0fPhwLVq0SLt379Ybb7yhEydOKCwsTL169dKsWbPk6+vrGJOZmaljx4451gcNGqQffvhB06ZNk91uV4cOHbRu3bpSL1QAAACgfC4Hu+7du8uyrHK3/+Mf/7jgPrKyskq1JSQkKCEhwdVyAAAA8P/4rVgAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADCEy8Fuy5Yt6tOnj8LCwmSz2bRy5UrHtjNnzmjy5Mlq166d6tatq7CwMA0bNkxHjhypcJ/Tp0+XzWZzWlq1auXyZAAAAGoyl4NdUVGRoqKitHDhwlLbfv75Z+3atUvPPPOMdu3apQ8//FAZGRnq27fvBffbpk0b5ebmOpYvvvjC1dIAAABqNB9XB8THxys+Pr7MbYGBgUpNTXVqW7BggW655RZlZ2eradOm5Rfi46OQkBBXywEAAMD/8/gzdvn5+bLZbAoKCqqw3/79+xUWFqZrr71WQ4cOVXZ2tqdLAwAAMIrLV+xccerUKU2ePFlDhgxRQEBAuf2io6OVkpKili1bKjc3VzNmzNAf/vAH7dmzR/7+/qX6FxcXq7i42LFeUFDgkfoBAACqE48FuzNnzui+++6TZVlatGhRhX1/e2u3ffv2io6OVkREhN5//32NGjWqVP/k5GTNmDHD7TUDAABUZx65FXs+1B06dEipqakVXq0rS1BQkK6//nodOHCgzO1JSUnKz893LDk5Oe4oGwAAoFpze7A7H+r279+vzz77TA0aNHB5H4WFhcrMzFRoaGiZ2319fRUQEOC0AAAA1HQuB7vCwkKlp6crPT1dknTw4EGlp6crOztbZ86c0T333KMdO3borbfe0rlz52S322W323X69GnHPnr27KkFCxY41idOnKjNmzcrKytLW7du1d133y1vb28NGTLk0mcIAABQQ7j8jN2OHTvUo0cPx3piYqIkafjw4Zo+fbpWr14tSerQoYPTuI0bN6p79+6SpMzMTB07dsyx7fDhwxoyZIiOHz+uRo0aqUuXLtq2bZsaNWrkankAAAA1lsvBrnv37rIsq9ztFW07Lysry2n93XffdbUMAAAA/A6/FQsAAGAIgh0AAIAhCHYAAACG8OgvTwCAqSKnrK3qEgCgFK7YAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABjCp6oLAGCeyClrq7oEAKiRuGIHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCJeD3ZYtW9SnTx+FhYXJZrNp5cqVTtsty9K0adMUGhqqOnXqKDY2Vvv377/gfhcuXKjIyEj5+fkpOjpaX375paulAQAA1GguB7uioiJFRUVp4cKFZW5/4YUX9PLLL2vx4sXavn276tatq7i4OJ06darcfb733ntKTEzUs88+q127dikqKkpxcXE6evSoq+UBAADUWDbLsqyLHmyzacWKFerfv7+kX6/WhYWFacKECZo4caIkKT8/X8HBwUpJSdHgwYPL3E90dLQ6deqkBQsWSJJKSkoUHh6ucePGacqUKReso6CgQIGBgcrPz1dAQMDFTge4LCKnrK3qEgDUIFmz76zqEnCJXMk5bn3G7uDBg7Lb7YqNjXW0BQYGKjo6WmlpaWWOOX36tHbu3Ok0xsvLS7GxseWOAQAAQGk+7tyZ3W6XJAUHBzu1BwcHO7b93rFjx3Tu3Lkyx+zbt6/MMcXFxSouLnasFxQUXErZAAAARqiWb8UmJycrMDDQsYSHh1d1SQAAAFXOrcEuJCREkpSXl+fUnpeX59j2ew0bNpS3t7dLY5KSkpSfn+9YcnJy3FA9AABA9ebWYNesWTOFhIRo/fr1jraCggJt375dMTExZY6pXbu2Onbs6DSmpKRE69evL3eMr6+vAgICnBYAAICazuVn7AoLC3XgwAHH+sGDB5Wenq769euradOmGj9+vJ577jldd911atasmZ555hmFhYU53pyVpJ49e+ruu+9WQkKCJCkxMVHDhw/XzTffrFtuuUXz589XUVGRRo4ceekzBAAAqCFcDnY7duxQjx49HOuJiYmSpOHDhyslJUVPPvmkioqK9NBDD+nEiRPq0qWL1q1bJz8/P8eYzMxMHTt2zLE+aNAg/fDDD5o2bZrsdrs6dOigdevWlXqhAgAAAOW7pO+xu1LwPXaoTvgeOwCXE99jV/1V2ffYAQAAoOoQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBA+VV0AAADApYicsraqS/CokuKfK92XK3YAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABjC7cEuMjJSNput1DJ27Ngy+6ekpJTq6+fn5+6yAAAAjOfj7h1+9dVXOnfunGN9z549+uMf/6h777233DEBAQHKyMhwrNtsNneXBQAAYDy3B7tGjRo5rc+ePVvNmzdXt27dyh1js9kUEhLi7lIAAABqFI8+Y3f69GktW7ZMf/rTnyq8CldYWKiIiAiFh4erX79++vbbbz1ZFgAAgJE8GuxWrlypEydOaMSIEeX2admypZYsWaJVq1Zp2bJlKikpUefOnXX48OFyxxQXF6ugoMBpAQAAqOk8Guxef/11xcfHKywsrNw+MTExGjZsmDp06KBu3brpww8/VKNGjfTqq6+WOyY5OVmBgYGOJTw83BPlAwAAVCseC3aHDh3SZ599ptGjR7s0rlatWrrxxht14MCBcvskJSUpPz/fseTk5FxquQAAANWex4Ld0qVL1bhxY915550ujTt37py++eYbhYaGltvH19dXAQEBTgsAAEBN55FgV1JSoqVLl2r48OHy8XF+8XbYsGFKSkpyrM+cOVOffvqp/v3vf2vXrl164IEHdOjQIZev9AEAANR0bv+6E0n67LPPlJ2drT/96U+ltmVnZ8vL67958qefftKYMWNkt9t19dVXq2PHjtq6datuuOEGT5QGAABgLI8Eu169esmyrDK3bdq0yWl93rx5mjdvnifKAAAAqFH4rVgAAABDEOwAAAAMQbADAAAwhEeesQMAAFeGyClrq7oEXEZcsQMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQ7g92E2fPl02m81padWqVYVjli9frlatWsnPz0/t2rXTxx9/7O6yAAAAjOeRK3Zt2rRRbm6uY/niiy/K7bt161YNGTJEo0aN0tdff63+/furf//+2rNnjydKAwAAMJZHgp2Pj49CQkIcS8OGDcvt+9JLL6l3796aNGmSWrdurVmzZummm27SggULPFEaAACAsTwS7Pbv36+wsDBde+21Gjp0qLKzs8vtm5aWptjYWKe2uLg4paWleaI0AAAAY/m4e4fR0dFKSUlRy5YtlZubqxkzZugPf/iD9uzZI39//1L97Xa7goODndqCg4Nlt9vLPUZxcbGKi4sd6wUFBe6bAAAAQDXl9mAXHx/v+HP79u0VHR2tiIgIvf/++xo1apRbjpGcnKwZM2a4ZV8AAACm8PjXnQQFBen666/XgQMHytweEhKivLw8p7a8vDyFhISUu8+kpCTl5+c7lpycHLfWDAAAUB15PNgVFhYqMzNToaGhZW6PiYnR+vXrndpSU1MVExNT7j59fX0VEBDgtAAAANR0bg92EydO1ObNm5WVlaWtW7fq7rvvlre3t4YMGSJJGjZsmJKSkhz9H3/8ca1bt05z587Vvn37NH36dO3YsUMJCQnuLg0AAMBobn/G7vDhwxoyZIiOHz+uRo0aqUuXLtq2bZsaNWokScrOzpaX13/zZOfOnfX222/r6aef1tSpU3Xddddp5cqVatu2rbtLAwAAMJrNsiyrqou4VAUFBQoMDFR+fj63ZXHFi5yytqpLAABUIyXFPytn/n2Vyjn8ViwAAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIn6ouAJXHj8cDAICKcMUOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDuD3YJScnq1OnTvL391fjxo3Vv39/ZWRkVDgmJSVFNpvNafHz83N3aQAAAEZze7DbvHmzxo4dq23btik1NVVnzpxRr169VFRUVOG4gIAA5ebmOpZDhw65uzQAAACj+bh7h+vWrXNaT0lJUePGjbVz50517dq13HE2m00hISHuLgcAAKDG8Pgzdvn5+ZKk+vXrV9ivsLBQERERCg8PV79+/fTtt996ujQAAACjeDTYlZSUaPz48brtttvUtm3bcvu1bNlSS5Ys0apVq7Rs2TKVlJSoc+fOOnz4cJn9i4uLVVBQ4LQAAADUdG6/FftbY8eO1Z49e/TFF19U2C8mJkYxMTGO9c6dO6t169Z69dVXNWvWrFL9k5OTNWPGDLfXCwAAUJ157IpdQkKC1qxZo40bN6pJkyYuja1Vq5ZuvPFGHThwoMztSUlJys/Pdyw5OTnuKBkAAKBac/sVO8uyNG7cOK1YsUKbNm1Ss2bNXN7HuXPn9M033+iOO+4oc7uvr698fX0vtVQAAACjuD3YjR07Vm+//bZWrVolf39/2e12SVJgYKDq1KkjSRo2bJiuueYaJScnS5JmzpypW2+9VS1atNCJEyc0Z84cHTp0SKNHj3Z3eQAAAMZye7BbtGiRJKl79+5O7UuXLtWIESMkSdnZ2fLy+u9d4J9++kljxoyR3W7X1VdfrY4dO2rr1q264YYb3F0eAACAsWyWZVlVXcSlKigoUGBgoPLz8xUQEFDV5XhM5JS1VV0CAAC4zEqKf1bO/PsqlXP4rVgAAABDEOwAAAAMQbADAAAwhEe/oPhya/vsP+Tle1VVlwEAAFAluGIHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIbwWLBbuHChIiMj5efnp+joaH355ZcV9l++fLlatWolPz8/tWvXTh9//LGnSgMAADCSR4Lde++9p8TERD377LPatWuXoqKiFBcXp6NHj5bZf+vWrRoyZIhGjRqlr7/+Wv3791f//v21Z88eT5QHAABgJJtlWZa7dxodHa1OnTppwYIFkqSSkhKFh4dr3LhxmjJlSqn+gwYNUlFRkdasWeNou/XWW9WhQwctXrz4gscrKChQYGCgwse/Ly/fq9w3EQAAgCpWUvyzcubfp/z8fAUEBFTY1+1X7E6fPq2dO3cqNjb2vwfx8lJsbKzS0tLKHJOWlubUX5Li4uLK7Q8AAIDSfNy9w2PHjuncuXMKDg52ag8ODta+ffvKHGO328vsb7fby+xfXFys4uJix3p+fr6kXxMtAACASc7nm8rcZHV7sLsckpOTNWPGjFLt/1k04vIXAwAAcBmcPHlSgYGBFfZxe7Br2LChvL29lZeX59Sel5enkJCQMseEhIS41D8pKUmJiYmO9ZKSEv34449q0KCBbDabU9+CggKFh4crJyfngvelTcT8mT/zZ/7Mn/kz/+o9f8uydPLkSYWFhV2wr9uDXe3atdWxY0etX79e/fv3l/Rr8Fq/fr0SEhLKHBMTE6P169dr/PjxjrbU1FTFxMSU2d/X11e+vr5ObUFBQRXWFRAQUO0/2EvB/Jk/82f+NRXzZ/4mzP9CV+rO88it2MTERA0fPlw333yzbrnlFs2fP19FRUUaOXKkJGnYsGG65pprlJycLEl6/PHH1a1bN82dO1d33nmn3n33Xe3YsUP/+7//64nyAAAAjOSRYDdo0CD98MMPmjZtmux2uzp06KB169Y5XpDIzs6Wl9d/X8jt3Lmz3n77bT399NOaOnWqrrvuOq1cuVJt27b1RHkAAABG8tjLEwkJCeXeet20aVOptnvvvVf33nuv2+vw9fXVs88+W+rWbU3B/Jk/82f+zJ/510Q1df4e+YJiAAAAXH4e+61YAAAAXF4EOwAAAEMQ7AAAAAxRbYPdli1b1KdPH4WFhclms2nlypXl9n3kkUdks9k0f/58p/bIyEjZbDanZfbs2Z4t3E0uNP8RI0aUmlvv3r2d+vz4448aOnSoAgICFBQUpFGjRqmwsPAyzuLiuWP+Jn/+krR371717dtXgYGBqlu3rjp16qTs7GzH9lOnTmns2LFq0KCB6tWrp4EDB5b6ovArkTvm3r1791Kf/SOPPHIZZ3FpLvR38Pu5nV/mzJnj6FNdz393zN3kc7+wsFAJCQlq0qSJ6tSpoxtuuEGLFy926lNdz33JPfOv7uf/hVTbYFdUVKSoqCgtXLiwwn4rVqzQtm3byv225pkzZyo3N9exjBs3zhPlul1l5t+7d2+nub3zzjtO24cOHapvv/1WqampWrNmjbZs2aKHHnrI06W7hTvmL5n7+WdmZqpLly5q1aqVNm3apN27d+uZZ56Rn5+fo88TTzyhjz76SMuXL9fmzZt15MgRDRgw4HJN4aK5Y+6SNGbMGKfP/oUXXrgc5bvFhf4Ofjuv3NxcLVmyRDabTQMHDnT0qa7nvzvmLpl77icmJmrdunVatmyZ9u7dq/HjxyshIUGrV6929Kmu577knvlL1fv8vyDLAJKsFStWlGo/fPiwdc0111h79uyxIiIirHnz5jltL6utOipr/sOHD7f69etX7pjvvvvOkmR99dVXjrZPPvnEstls1n/+8x8PVeoZFzN/yzL78x80aJD1wAMPlDvmxIkTVq1atazly5c72vbu3WtJstLS0jxVqttdzNwty7K6detmPf74454r7DIq779/v9WvXz/r9ttvd6ybcv5fzNwty+xzv02bNtbMmTOd2m666SbrqaeesizLnHPfsi5u/pZl1vlflmp7xe5CSkpK9OCDD2rSpElq06ZNuf1mz56tBg0a6MYbb9ScOXN09uzZy1ilZ23atEmNGzdWy5Yt9eijj+r48eOObWlpaQoKCtLNN9/saIuNjZWXl5e2b99eFeW6XUXzP8/Ez7+kpERr167V9ddfr7i4ODVu3FjR0dFOtyx27typM2fOKDY21tHWqlUrNW3aVGlpaVVQtXtUZu7nvfXWW2rYsKHatm2rpKQk/fzzz5e/4MsgLy9Pa9eu1ahRoxxtNeH8l8qe+3kmnvvSr1/4v3r1av3nP/+RZVnauHGjvv/+e/Xq1UuSuef+eRea/3kmn/8e+4Liqvb888/Lx8dHjz32WLl9HnvsMd10002qX7++tm7dqqSkJOXm5urFF1+8jJV6Ru/evTVgwAA1a9ZMmZmZmjp1quLj45WWliZvb2/Z7XY1btzYaYyPj4/q168vu91eRVW7z4XmL5n7+R89elSFhYWaPXu2nnvuOT3//PNat26dBgwYoI0bN6pbt26y2+2qXbt2qd9YDg4Ortaff2XmLkn333+/IiIiFBYWpt27d2vy5MnKyMjQhx9+WMUzcL833nhD/v7+TrfaTD//zytr7pK5574k/e1vf9NDDz2kJk2ayMfHR15eXnrttdfUtWtXSTL23D/vQvOXzD//jQx2O3fu1EsvvaRdu3bJZrOV2y8xMdHx5/bt26t27dp6+OGHlZycXO2/qXrw4MGOP7dr107t27dX8+bNtWnTJvXs2bMKK7s8KjN/Uz//kpISSVK/fv30xBNPSJI6dOigrVu3avHixY5wY6LKzv23z5K1a9dOoaGh6tmzpzIzM9W8efPLX7gHLVmyREOHDi31jGFNUN7cTT33pV+DzbZt27R69WpFRERoy5YtGjt2rMLCwpyu0pmqMvM3/fw38lbs559/rqNHj6pp06by8fGRj4+PDh06pAkTJigyMrLccdHR0Tp79qyysrIuW62Xy7XXXquGDRvqwIEDkqSQkBAdPXrUqc/Zs2f1448/KiQkpCpK9Kjfz78spnz+DRs2lI+Pj2644Qan9tatWzveDA0JCdHp06d14sQJpz55eXnV+vOvzNzLEh0dLUkV/vuojj7//HNlZGRo9OjRTu014fwvb+5lMeXc/+WXXzR16lS9+OKL6tOnj9q3b6+EhAQNGjRIf/3rXyWZe+5LlZt/WUw7/40Mdg8++KB2796t9PR0xxIWFqZJkybpH//4R7nj0tPT5eXlVeoWhQkOHz6s48ePKzQ0VJIUExOjEydOaOfOnY4+GzZsUElJieMfuUl+P/+ymPL5165dW506dVJGRoZT+/fff6+IiAhJUseOHVWrVi2tX7/esT0jI0PZ2dmKiYm5rPW6U2XmXpb09HRJqvDfR3X0+uuvq2PHjoqKinJqrwnnf3lzL4sp5/6ZM2d05swZeXk5/6/d29vbcTXb1HNfqtz8y2La+V9tb8UWFhY6peuDBw8qPT1d9evXV9OmTdWgQQOn/rVq1VJISIhatmwp6deHh7dv364ePXrI399faWlpeuKJJ/TAAw/o6quvvqxzuRgVzb9+/fqaMWOGBg4cqJCQEGVmZurJJ59UixYtFBcXJ+nXKxi9e/fWmDFjtHjxYp05c0YJCQkaPHhwuV8NcyW51Pmb/Pk3bdpUkyZN0qBBg9S1a1f16NFD69at00cffaRNmzZJkgIDAzVq1CglJiaqfv36CggI0Lhx4xQTE6Nbb721imZVOZc698zMTL399tu644471KBBA+3evVtPPPGEunbtqvbt21fRrFxzob8DSSooKNDy5cs1d+7cUuOr8/l/qXM3/dzv1q2bJk2apDp16igiIkKbN2/W3//+d8fzg9X53Jcuff4mnP8XVNWv5V6sjRs3WpJKLcOHDy+z/+9fb9+5c6cVHR1tBQYGWn5+flbr1q2t//mf/7FOnTp1eSZwiSqa/88//2z16tXLatSokVWrVi0rIiLCGjNmjGW32532cfz4cWvIkCFWvXr1rICAAGvkyJHWyZMnq2hGrrnU+Zv8+Z/3+uuvWy1atLD8/PysqKgoa+XKlU77+OWXX6w///nP1tVXX21dddVV1t13323l5uZe5pm47lLnnp2dbXXt2tWqX7++5evra7Vo0cKaNGmSlZ+fXwWzuTiV+Tt49dVXrTp16lgnTpwocx/V9fy/1Lmbfu7n5uZaI0aMsMLCwiw/Pz+rZcuW1ty5c62SkhLHPqrruW9Zlz5/E87/C7FZlmV5JDECAADgsjLyGTsAAICaiGAHAABgCIIdAACAIQh2AAAAhiDYAQAAGIJgBwAAYAiCHQAAgCEIdgAAAIYg2AG4YnXv3l3jx4+/pH1Mnz5dHTp0uOzHlaSsrCzZbDbZbDaXa3BVSkqK41juqB1A9USwA2C0iRMnOv3gubvYbDatXLmyUn0/++wzj9TwW4MGDVJubm61/yF3AJfGp6oLAABPqlevnurVq1elNTRo0EANGjTw6DHq1KmjOnXqqHbt2h49DoArG1fsAFzRSkpK9OSTT6p+/foKCQnR9OnTnbafOHFCo0ePVqNGjRQQEKDbb79d//rXvxzbf38r9uzZs3rssccUFBSkBg0aaPLkyRo+fLj69+9f6eNGRkZKku6++27ZbDbHuiuWLFmiNm3ayNfXV6GhoUpISHBss9lsevXVV3XXXXfpqquuUuvWrZWWlqYDBw6oe/fuqlu3rjp37qzMzEyXjwvAbAQ7AFe0N954Q3Xr1tX27dv1wgsvaObMmUpNTXVsv/fee3X06FF98skn2rlzp2666Sb17NlTP/74Y5n7e/755/XWW29p6dKl+uc//6mCgoIyb6lWdNyvvvpKkrR06VLl5uY61itr0aJFGjt2rB566CF98803Wr16tVq0aOHUZ9asWRo2bJjS09PVqlUr3X///Xr44YeVlJSkHTt2yLIspzAIAJIkCwCuUN26dbO6dOni1NapUydr8uTJlmVZ1ueff24FBARYp06dcurTvHlz69VXX7Usy7KeffZZKyoqyrEtODjYmjNnjmP97NmzVtOmTa1+/fpV+riWZVmSrBUrVlRY/8GDBy1J1tdff+3UHhYWZj311FPljpNkPf300471tLQ0S5L1+uuvO9reeecdy8/Pr9TYbt26WY8//niFdQEwF8/YAbiitW/f3mk9NDRUR48elST961//UmFhYann13755Zcyb1Pm5+crLy9Pt9xyi6PN29tbHTt2VElJSaWPeymOHj2qI0eOqGfPnhX2++3xg4ODJUnt2rVzajt16pQKCgoUEBBwyXUBMAPBDsAVrVatWk7rNpvNEcIKCwsVGhqqTZs2lRoXFBTkseNeijp16rh8fJvNVm6bO2oCYA6esQNQbd10002y2+3y8fFRixYtnJaGDRuW6h8YGKjg4GCnZ+LOnTunXbt2uXzsWrVq6dy5cy6P8/f3V2RkpMe//gRAzUSwA1BtxcbGKiYmRv3799enn36qrKwsbd26VU899ZR27NhR5phx48YpOTlZq1atUkZGhh5//HH99NNPjitglXU+nNntdv30008ujZ0+fbrmzp2rl19+Wfv379euXbv0t7/9zaV9AEBZCHYAqi2bzaaPP/5YXbt21ciRI3X99ddr8ODBOnTokOO5tN+bPHmyhgwZomHDhikmJkb16tVTXFyc/Pz8XDr23LlzlZqaqvDwcN14440ujR0+fLjmz5+vV155RW3atNFdd92l/fv3u7QPACiLzbIsq6qLAICqUlJSotatW+u+++7TrFmz3LrvrKwsNWvWTF9//bXHf1LsvO7du6tDhw6aP3/+ZTkegCsLV+wA1CiHDh3Sa6+9pu+//17ffPONHn30UR08eFD333+/x47ZuXNnde7c2WP7l6S33npL9erV0+eff+7R4wC4snHFDkCNkpOTo8GDB2vPnj2yLEtt27bV7Nmz1bVrV7cf6+zZs8rKypIk+fr6Kjw83O3HOO/kyZPKy8uT9OsbwWW9PALAfAQ7AAAAQ3ArFgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEP8Hk2w17fEKEmgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Or\n", "hist = series.physt.h1(title=\"Distribution\")\n", "hist.plot()\n", "hist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Export & import" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'{\"histogram_type\": \"Histogram1D\", \"binnings\": [{\"adaptive\": false, \"binning_type\": \"NumpyBinning\", \"numpy_bins\": [144.46274207992508, 148.91498677707023, 153.36723147421537, 157.81947617136055, 162.2717208685057, 166.72396556565084, 171.176210262796, 175.62845495994114, 180.0806996570863, 184.53294435423146, 188.9851890513766]}], \"frequencies\": [2, 4, 4, 15, 11, 12, 19, 17, 7, 9], \"dtype\": \"int32\", \"errors2\": [2, 4, 4, 15, 11, 12, 19, 17, 7, 9], \"meta_data\": {\"name\": null, \"title\": \"Distribution\", \"axis_names\": [\"height [cm]\"]}, \"missed\": [0, 0, 0], \"missed_keep\": true, \"physt_version\": \"0.6.0a2\", \"physt_compatible\": \"0.3.20\"}'" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "json = hist.to_json() # add path argument to write it to file\n", "json" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Histogram1D(bins=(10,), total=100, dtype=int32)" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA000lEQVR4nO3deVxVdf7H8fcFFExZcmNJBNNSc8EyI8xxSUakckkrNctl1JYRy1BTrMyl+WE5pjWa9uuR0mSrPXJJy4lca0RLjTFLSRkRHLmYliCUuHB+f/TzTjcWuXqvyJfX8/E4j4fne77fcz5fr6fej7Pca7MsyxIAAACqPa+qLgAAAADuQbADAAAwBMEOAADAEAQ7AAAAQxDsAAAADEGwAwAAMATBDgAAwBAEOwAAAEMQ7AAAAAxBsANQbUyfPl02m+2yHKt79+7q3r27Y33Tpk2y2Wz64IMPLsvxR4wYocjIyMtyLADmINgBqDIpKSmy2WyOxc/PT2FhYYqLi9PLL7+skydPXvIxjhw5ounTpys9Pf3SC3azK7k2ANUTwQ5AlZs5c6befPNNLVq0SOPGjZMkjR8/Xu3atdPu3bsd/Z5++mn98ssvLu37yJEjmjFjhsvh6dNPP9Wnn37q0hhXVVTba6+9poyMDI8eH4B5fKq6AACIj4/XzTff7FhPSkrShg0bdNddd6lv377au3ev6tSpIx8fH/n4ePY/Wz///LOuuuoq1a5d26PHuZBatWpV6fEBVE9csQNwRbr99tv1zDPP6NChQ1q2bJmksp+xS01NVZcuXRQUFKR69eqpZcuWmjp1qqRfn4vr1KmTJGnkyJGOW74pKSmSfn2Orm3bttq5c6e6du2qq666yjH298/YnXfu3DlNnTpVISEhqlu3rvr27aucnBynPpGRkRoxYkSpsb/d54VqK+sZu6KiIk2YMEHh4eHy9fVVy5Yt9de//lWWZTn1s9lsSkhI0MqVK9W2bVv5+vqqTZs2WrduXfl/4QCMQLADcMV68MEHJancW6Lffvut7rrrLhUXF2vmzJmaO3eu+vbtq3/+85+SpNatW2vmzJmSpIceekhvvvmm3nzzTXXt2tWxj+PHjys+Pl4dOnTQ/Pnz1aNHjwpr+stf/qK1a9dq8uTJeuyxx5SamqrY2FiXbxFXprbfsixLffv21bx589S7d2+9+OKLatmypSZNmqTExMRS/b/44gv9+c9/1uDBg/XCCy/o1KlTGjhwoI4fP+5SnQCqF27FArhiNWnSRIGBgcrMzCxze2pqqk6fPq1PPvlEDRs2LLU9ODhY8fHxmjZtmmJiYvTAAw+U6mO327V48WI9/PDDlarpxx9/1N69e+Xv7y9Juummm3Tffffptdde02OPPVbpuVWmtt9avXq1NmzYoOeee05PPfWUJGns2LG699579dJLLykhIUHNmzd39N+7d6++++47R1uPHj0UFRWld955RwkJCZWuE0D1whU7AFe0evXqlft2bFBQkCRp1apVKikpuaj9+/r6auTIkZXuP2zYMEeok6R77rlHoaGh+vjjjy/q+JX18ccfy9vbu1R4nDBhgizL0ieffOLUHhsb6xT02rdvr4CAAP373//2aJ0AqhbBDsAVrbCw0ClI/dagQYN02223afTo0QoODtbgwYP1/vvvuxTyrrnmGpdelLjuuuuc1m02m1q0aKGsrKxK7+NiHDp0SGFhYaX+Llq3bu3Y/ltNmzYttY+rr75aP/30k+eKBFDlCHYArliHDx9Wfn6+WrRoUeb2OnXqaMuWLfrss8/04IMPavfu3Ro0aJD++Mc/6ty5c5U6Rp06ddxZsiSV+yXKla3JHby9vcts//2LFgDMQrADcMV68803JUlxcXHl9vHy8lLPnj314osv6rvvvtNf/vIXbdiwQRs3bpRUfsi6WPv373datyxLBw4ccHqD9eqrr9aJEydKjf39VTVXaouIiNCRI0dK3Zbet2+fYzsAEOwAXJE2bNigWbNmqVmzZho6dGiZfX788cdSbR06dJAkFRcXS5Lq1q0rSWUGrYvx97//3SlcffDBB8rNzVV8fLyjrXnz5tq2bZtOnz7taFuzZk2pr0VxpbY77rhD586d04IFC5za582bJ5vN5nR8ADUXb8UCqHKffPKJ9u3bp7NnzyovL08bNmxQamqqIiIitHr1avn5+ZU5bubMmdqyZYvuvPNORURE6OjRo3rllVfUpEkTdenSRdKvISsoKEiLFy+Wv7+/6tatq+joaDVr1uyiaq1fv766dOmikSNHKi8vT/Pnz1eLFi00ZswYR5/Ro0frgw8+UO/evXXfffcpMzNTy5Ytc3qZwdXa+vTpox49euipp55SVlaWoqKi9Omnn2rVqlUaP358qX0DqJkIdgCq3LRp0yRJ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qquuUuvWrZWWlqYDBw6oe/fuqlu3rjp37qzMzEyXjwvAbAQ7AFe0N954Q3Xr1tX27dv1wgsvaObMmUpNTXVsv/fee3X06FF98skn2rlzp2666Sb17NlTP/74Y5n7e/755/XWW29p6dKl+uc//6mCgoIyb6lWdNyvvvpKkrR06VLl5uY61itr0aJFGjt2rB566CF98803Wr16tVq0aOHUZ9asWRo2bJjS09PVqlUr3X///Xr44YeVlJSkHTt2yLIspzAIAJIkCwCuUN26dbO6dOni1NapUydr8uTJlmVZ1ueff24FBARYp06dcurTvHlz69VXX7Usy7KeffZZKyoqyrEtODjYmjNnjmP97NmzVtOmTa1+/fpV+riWZVmSrBUrVlRY/8GDBy1J1tdff+3UHhYWZj311FPljpNkPf300471tLQ0S5L1+uuvO9reeecdy8/Pr9TYbt26WY8//niFdQEwF8/YAbiitW/f3mk9NDRUR48elST961//UmFhYann13755Zcyb1Pm5+crLy9Pt9xyi6PN29tbHTt2VElJSaWPeymOHj2qI0eOqGfPnhX2++3xg4ODJUnt2rVzajt16pQKCgoUEBBwyXUBMAPBDsAVrVatWk7rNpvNEcIKCwsVGhqqTZs2lRoXFBTkseNeijp16rh8fJvNVm6bO2oCYA6esQNQbd10002y2+3y8fFRixYtnJaGDRuW6h8YGKjg4GCnZ+LOnTunXbt2uXzsWrVq6dy5cy6P8/f3V2RkpMe//gRAzUSwA1BtxcbGKiYmRv3799enn36qrKwsbd26VU899ZR27NhR5phx48YpOTlZq1atUkZGhh5//HH99NNPjitglXU+nNntdv30008ujZ0+fbrmzp2rl19+Wfv379euXbv0t7/9zaV9AEBZCHYAqi2bzaaPP/5YXbt21ciRI3X99ddr8ODBOnTokOO5tN+bPHmyhgwZomHDhikmJkb16tVTXFyc/Pz8XDr23LlzlZqaqvDwcN14440ujR0+fLjmz5+vV155RW3atNFdd92l/fv3u7QPACiLzbIsq6qLAICqUlJSotatW+u+++7TrFmz3LrvrKwsNWvWTF9//bXHf1LsvO7du6tDhw6aP3/+ZTkegCsLV+wA1CiHDh3Sa6+9pu+//17ffPONHn30UR08eFD333+/x47ZuXNnde7c2WP7l6S33npL9erV0+eff+7R4wC4snHFDkCNkpOTo8GDB2vPnj2yLEtt27bV7Nmz1bVrV7cf6+zZs8rKypIk+fr6Kjw83O3HOO/kyZPKy8uT9OsbwWW9PALAfAQ7AAAAQ3ArFgAAwBAEOwAAAEMQ7AAAAAxBsAMAADAEwQ4AAMAQBDsAAABDEOwAAAAMQbADAAAwBMEOAADAEP8Hk2w17fEKEmgAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from physt.io import parse_json\n", "hist = parse_json(json)\n", "hist.plot()\n", "hist" ] } ], "metadata": { "anaconda-cloud": {}, "kernel_info": { "name": "python3" }, "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.11.5" }, "nteract": { "version": "0.9.1" } }, "nbformat": 4, "nbformat_minor": 1 }