{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def plot_hist(file, bins=256):\n", " plt.hist(np.fromfile(file, np.uint8), bins=bins)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD8CAYAAAB5Pm/hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAEjdJREFUeJzt3H+MHGd9x/H3l5ikFdA6Py6RZVu9UKyWqBKJdUotpUItqSgxVZ1KpAqqGje15H9CBaJVa8ofpVX/SCqVQCQUySVpHUQJET9kC1JKZIJQ/0jgAiY/cNOYNI2vduOjSQw0Ahr49o99rtnae765292bnWffL+m0M888u/M8M7Ofm31mdiMzkSTV61VtN0CSNF4GvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6SaqcQS9JlTPoJalyG9puAMAll1ySs7OzbTdDkjrlkUce+U5mzqxUr1HQR8RG4KPALwEJ/AHwJPBJYBZ4BvidzHwhIgL4MLATeAn4/cz8+rlef3Z2lvn5+SZNkSQVEfHvTeo1Hbr5MPCFzPxF4E3AUWAfcDgztwGHyzzAdcC28rcXuHMV7ZYkjdiKQR8RPwO8GbgLIDN/lJkvAruAA6XaAeD6Mr0LuCd7HgI2RsSmkbdcktRIkzP61wOLwN9FxDci4qMR8Rrgssw8CVAeLy31NwPH+56/UMokSS1oEvQbgO3AnZl5FfDfvDJMM0gMKDvrt5AjYm9EzEfE/OLiYqPGSpJWr0nQLwALmflwmf8UveB/bmlIpjye6qu/te/5W4ATZ75oZu7PzLnMnJuZWfGisSRpjVYM+sz8T+B4RPxCKboW+BZwCNhdynYDB8v0IeCm6NkBnF4a4pEkrb+m99H/IfDxiDgfeBq4md4/ifsiYg/wLHBDqXs/vVsrj9G7vfLmkbZYkrQqjYI+M48AcwMWXTugbgK3DNkuSdKI+BMIklS5qQz62X2fZ3bf5xvXlaQum8qgl6RpYtBL0jpoc3TAoJekyhn0klQ5g16SKmfQS328y0o1MuglqXIGvSRVzqBXaxwmUa0m7dg26NWKSXsjTJJzbRu3m9bCoNfIreYnJrqua/3sWns1Ggb9OfimaJfbX8Pwk9ErDPoB1noQTPrBM+ntG5dp7feouP1Gb7236dQE/TQcrOvZx9Wuaxq2/yTo0rBZfzuXplfT9q70cxJMTdAvx4NlMnQpoNaD22L1PIaWN/VBPy18AwzH7dd9k7AP22qDQa9OGuXZ26hea9jhrEkIotVqq81d3FZtMujVmG+uyeJdJWrKoB+R5d5Ygy44Dfua02gtF+tGtd6298OoPm203Y+uGea9O2mqDvpBB/cod1jXd/6wDI+ztblNurgvltteHlujVVXQr/Wsr0sHVZM+dqUva7WW/jX5xFWj5UK0admwZ7W1b9+uqCroJ8VKB/c4/rE0fb2u/FNrO1Qm4Syzf31Njqla1NSXSWHQd8i4hqGanuHVZJj+OfxXn9X+E29St40TvuVUG/RdfAN14Wx72CGjUQwHDKutC7tdMex2qXW7drlfnQ/69b4XeRyvP2kX70YVhG2G+HqsZ72HU9b6el0OKI1Go6CPiGci4rGIOBIR86Xsooh4ICKeKo8XlvKIiDsi4lhEPBoR28fZgS471x0H67Hu1dSd1LCY5LZNs0naJ8McI5PUj2Gs5oz+1zLzysycK/P7gMOZuQ04XOYBrgO2lb+9wJ2jamwXTMN4d1sXJLuoy21vatRj26NYf5vb/cyhyUk4BoYZutkFHCjTB4Dr+8rvyZ6HgI0RsWmI9bRiEnbOMFZzx8Yo1tWkHVrZWq5zjGs941z/cq87zPK2tH3NqYmmQZ/AFyPikYjYW8ouy8yTAOXx0lK+GTje99yFUvb/RMTeiJiPiPnFxcW1tX7Emh7Akza0Mk6T0g5o51uxo6o3rrZP0v6ZZqv559fGPtvQsN41mXkiIi4FHoiIfzlH3RhQlmcVZO4H9gPMzc2dtXzSDPuFm0m74LrWepOq7fav900B4zC77/M8c+vb/2/6zGVd1OQusaU+N3lOVzU6o8/ME+XxFPBZ4GrguaUhmfJ4qlRfALb2PX0LcGJUDZ5G0zT8MS33qE/KOO6o1j2uTzXTdOyP04pn9BHxGuBVmfm9Mv1W4C+BQ8Bu4NbyeLA85RDwroi4F/hl4PTSEE/b1vsi4iS9jtr/dLPcGWRbunj77Ch0td3DaDJ0cxnw2YhYqv8PmfmFiPgacF9E7AGeBW4o9e8HdgLHgJeAm0fe6jOs9SJO22/8UejSm3XS76uf5P28Xoa9SNtFXW33aqwY9Jn5NPCmAeX/BVw7oDyBW0bSOkmdNQ0B2lTb26LpxVhNkLYPmknn9umZpu0wTX1dC4N+jTywBnO7rGxSfhqhrXXVMjzUf5fSpDPopTGbpHBqw7T3fxJ0/kfNusaDXhqdtn/+oCvvZ4NeI9GVA16aRga9Wuc/CU2KWo9Fg35C+AUrafym9f3hxVhNnGl9M2rydfXY9Ixeks6hq+Hez6CXpMoZ9JJUOYNekipn0EuaeDWMk7fJoJekyhn0klQ5g16SKmfQS1LlDHpJqpxBL0mVM+glqXIGvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6Sapc46CPiPMi4hsR8bkyf3lEPBwRT0XEJyPi/FJ+QZk/VpbPjqfpkqQmVnNG/27gaN/8bcDtmbkNeAHYU8r3AC9k5huA20s9SVJLGgV9RGwB3g58tMwH8BbgU6XKAeD6Mr2rzFOWX1vqS5Ja0PSM/kPAnwA/KfMXAy9m5stlfgHYXKY3A8cByvLTpb4kqQUrBn1E/CZwKjMf6S8eUDUbLOt/3b0RMR8R84uLi40aK0lavSZn9NcAvxURzwD30huy+RCwMSI2lDpbgBNlegHYClCW/yzw/Jkvmpn7M3MuM+dmZmaG6oQkaXkrBn1mvi8zt2TmLHAj8KXM/F3gQeAdpdpu4GCZPlTmKcu/lJlnndFLktbHMPfR/ynw3og4Rm8M/q5SfhdwcSl/L7BvuCZKkoaxYeUqr8jMLwNfLtNPA1cPqPMD4IYRtE2SNAJ+M1aSKmfQS1LlDHpJqpxBL0mVM+glqXIGvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6SaqcQS9JlTPoJalyBr0kVc6gl6TKGfSSVDmDXpIqZ9BLUuUMekmqnEEvSZUz6CWpcga9JFXOoJekyhn0klQ5g16SKmfQS1LlDHpJqtyKQR8RPxURX42Ib0bEExHxF6X88oh4OCKeiohPRsT5pfyCMn+sLJ8dbxckSefS5Iz+h8BbMvNNwJXA2yJiB3AbcHtmbgNeAPaU+nuAFzLzDcDtpZ4kqSUrBn32fL/Mvrr8JfAW4FOl/ABwfZneVeYpy6+NiBhZiyVJq9JojD4izouII8Ap4AHg28CLmflyqbIAbC7Tm4HjAGX5aeDiAa+5NyLmI2J+cXFxuF5IkpbVKOgz88eZeSWwBbgaeOOgauVx0Nl7nlWQuT8z5zJzbmZmpml7JUmrtKq7bjLzReDLwA5gY0RsKIu2ACfK9AKwFaAs/1ng+VE0VpK0ek3uupmJiI1l+qeBXweOAg8C7yjVdgMHy/ShMk9Z/qXMPOuMXpK0PjasXIVNwIGIOI/eP4b7MvNzEfEt4N6I+CvgG8Bdpf5dwMci4hi9M/kbx9BuSVJDKwZ9Zj4KXDWg/Gl64/Vnlv8AuGEkrZMkDc1vxkpS5Qx6SaqcQS9JlTPoJalyBr0kVc6gl6TKGfSSVDmDXpIqZ9BLUuUMekmqnEEvSZUz6CWpcga9JFXOoJekyhn0klQ5g16SKmfQS1LlDHpJqpxBL0mVM+glqXIGvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6SarcikEfEVsj4sGIOBoRT0TEu0v5RRHxQEQ8VR4vLOUREXdExLGIeDQito+7E5Kk5TU5o38Z+KPMfCOwA7glIq4A9gGHM3MbcLjMA1wHbCt/e4E7R95qSVJjKwZ9Zp7MzK+X6e8BR4HNwC7gQKl2ALi+TO8C7smeh4CNEbFp5C2XJDWyqjH6iJgFrgIeBi7LzJPQ+2cAXFqqbQaO9z1toZRJklrQOOgj4rXAp4H3ZOZ3z1V1QFkOeL29ETEfEfOLi4tNmyFJWqVGQR8Rr6YX8h/PzM+U4ueWhmTK46lSvgBs7Xv6FuDEma+Zmfszcy4z52ZmZtbafknSCprcdRPAXcDRzPxg36JDwO4yvRs42Fd+U7n7ZgdwemmIR5K0/jY0qHMN8HvAYxFxpJT9GXArcF9E7AGeBW4oy+4HdgLHgJeAm0faYknSqqwY9Jn5zwwedwe4dkD9BG4Zsl2SpBHxm7GSVDmDXpIqZ9BLUuUMekmqnEEvSZUz6CWpcga9JFXOoJekyhn0klQ5g16SKmfQS1LlDHpJqpxBL0mVM+glqXIGvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6SaqcQS9JlTPoJalyBr0kVc6gl6TKGfSSVDmDXpIqZ9BLUuVWDPqIuDsiTkXE431lF0XEAxHxVHm8sJRHRNwREcci4tGI2D7OxkuSVtbkjP7vgbedUbYPOJyZ24DDZR7gOmBb+dsL3DmaZkqS1mrFoM/MrwDPn1G8CzhQpg8A1/eV35M9DwEbI2LTqBorSVq9tY7RX5aZJwHK46WlfDNwvK/eQik7S0TsjYj5iJhfXFxcYzMkSSsZ9cXYGFCWgypm5v7MnMvMuZmZmRE3Q5K0ZK1B/9zSkEx5PFXKF4CtffW2ACfW3jxJ0rDWGvSHgN1lejdwsK/8pnL3zQ7g9NIQjySpHRtWqhARnwB+FbgkIhaAPwduBe6LiD3As8ANpfr9wE7gGPAScPMY2ixJWoUVgz4z37nMomsH1E3glmEbJUkaHb8ZK0mVM+glqXIGvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6SaqcQS9JlTPoJalyBr0kVc6gl6TKGfSSVDmDXpIqZ9BLUuUMekmqnEEvSZUz6CWpcga9JFXOoJekyhn0klQ5g16SKmfQS1LlDHpJqpxBL0mVM+glqXJjCfqIeFtEPBkRxyJi3zjWIUlqZuRBHxHnAR8BrgOuAN4ZEVeMej2SpGbGcUZ/NXAsM5/OzB8B9wK7xrAeSVID4wj6zcDxvvmFUiZJasGGMbxmDCjLsypF7AX2ltnvR8STa1zfJcB31vjcLrK/9ZqmvoL9BSBuG+o1f65JpXEE/QKwtW9+C3DizEqZuR/YP+zKImI+M+eGfZ2usL/1mqa+gv1dT+MYuvkasC0iLo+I84EbgUNjWI8kqYGRn9Fn5ssR8S7gn4DzgLsz84lRr0eS1Mw4hm7IzPuB+8fx2gMMPfzTMfa3XtPUV7C/6yYyz7pOKkmqiD+BIEmV63TQ1/5TCxHxTEQ8FhFHImK+lF0UEQ9ExFPl8cK227lWEXF3RJyKiMf7ygb2L3ruKPv60YjY3l7L12aZ/n4gIv6j7OMjEbGzb9n7Sn+fjIjfaKfVaxMRWyPiwYg4GhFPRMS7S3mV+/cc/Z2M/ZuZnfyjd6H328DrgfOBbwJXtN2uEffxGeCSM8r+GthXpvcBt7XdziH692ZgO/D4Sv0DdgL/SO97GjuAh9tu/4j6+wHgjwfUvaIc0xcAl5dj/by2+7CKvm4Ctpfp1wH/WvpU5f49R38nYv92+Yx+Wn9qYRdwoEwfAK5vsS1DycyvAM+fUbxc/3YB92TPQ8DGiNi0Pi0djWX6u5xdwL2Z+cPM/DfgGL1jvhMy82Rmfr1Mfw84Su8b8lXu33P0dznrun+7HPTT8FMLCXwxIh4p3yQGuCwzT0Lv4AIuba1147Fc/2re3+8qwxV39w3FVdPfiJgFrgIeZgr27xn9hQnYv10O+kY/tdBx12Tmdnq/BHpLRLy57Qa1qNb9fSfw88CVwEngb0p5Ff2NiNcCnwbek5nfPVfVAWU19Hci9m+Xg77RTy10WWaeKI+ngM/S+2j33NJH2vJ4qr0WjsVy/atyf2fmc5n548z8CfC3vPLxvfP9jYhX0wu9j2fmZ0pxtft3UH8nZf92Oeir/qmFiHhNRLxuaRp4K/A4vT7uLtV2AwfbaeHYLNe/Q8BN5e6MHcDppSGALjtjHPq36e1j6PX3xoi4ICIuB7YBX13v9q1VRARwF3A0Mz/Yt6jK/btcfydm/7Z9tXrIK9076V3d/jbw/rbbM+K+vZ7eVflvAk8s9Q+4GDgMPFUeL2q7rUP08RP0Ps7+D70znD3L9Y/eR92PlH39GDDXdvtH1N+Plf48Su/Nv6mv/vtLf58Ermu7/avs66/QG4p4FDhS/nbWun/P0d+J2L9+M1aSKtfloRtJUgMGvSRVzqCXpMoZ9JJUOYNekipn0EtS5Qx6SaqcQS9JlftfMuUgTxJKNwgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot_hist('pi')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" } }, "nbformat": 4, "nbformat_minor": 2 }