diff --git a/README.md b/README.md index 95dd049e..cc2c6a32 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +histogram + # Hist [![Actions Status][actions-badge]][actions-link] diff --git a/docs/_images/histlogo.png b/docs/_images/histlogo.png new file mode 100644 index 00000000..adfdfc55 Binary files /dev/null and b/docs/_images/histlogo.png differ diff --git a/docs/_images/histlogo.svg b/docs/_images/histlogo.svg new file mode 100644 index 00000000..4c57e9c2 --- /dev/null +++ b/docs/_images/histlogo.svg @@ -0,0 +1,3184 @@ + + + + + + + + + 2021-03-09T18:28:24.722911 + image/svg+xml + + + Matplotlib v3.3.4, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/notebooks/HistLogo.ipynb b/notebooks/HistLogo.ipynb new file mode 100644 index 00000000..f3ccdec6 --- /dev/null +++ b/notebooks/HistLogo.ipynb @@ -0,0 +1,175 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "bacterial-bread", + "metadata": {}, + "source": [ + "# Hist Logo generation\n", + "\n", + "This makes the Hist logo using Hist, matplotlib, and Pillow." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "professional-order", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import PIL.Image\n", + "import PIL.ImageDraw\n", + "import PIL.ImageFilter\n", + "import PIL.ImageFont\n", + "import numpy as np\n", + "import hist" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "confidential-usage", + "metadata": {}, + "outputs": [], + "source": [ + "image = PIL.Image.new(\"L\", (350, 150), color=255)\n", + "\n", + "draw = PIL.ImageDraw.Draw(image)\n", + "\n", + "# use a truetype font\n", + "font = PIL.ImageFont.truetype(\"Arial Bold.ttf\", 140)\n", + "\n", + "draw.text((30, 0), \"Hist\", font=font)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "otherwise-directive", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "newimage = image.filter(PIL.ImageFilter.GaussianBlur(3))\n", + "newimage" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "cathedral-swimming", + "metadata": {}, + "outputs": [], + "source": [ + "arr = 255 - np.asarray(newimage)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "precious-crossing", + "metadata": {}, + "outputs": [], + "source": [ + "h = hist.Hist(\n", + " hist.axis.Regular(350, 0, 3.5), hist.axis.Regular(150, 0, 1.5), data=arr.T[:, ::-1]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "cellular-driver", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 262, + "width": 424 + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "h2 = h[::10j, ::10j]\n", + "h2.plot();" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "olive-medicaid", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 204, + "width": 404 + }, + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "x, y = np.broadcast_arrays(*h2.axes.centers)\n", + "\n", + "fig, ax = plt.subplots(frameon=False, figsize=(7, 3.5))\n", + "ax.axis(\"off\")\n", + "ax.scatter(x, y, 60 * h2.values() / np.max(h2.values()), marker=\"s\", color=\"#7f7f7f\")\n", + "\n", + "# fig.savefig(\"histlogo.svg\", transparent=True)\n", + "# fig.savefig(\"histlogo.png\", transparent=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "hist2", + "language": "python", + "name": "hist2" + }, + "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.9.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/setup.py b/setup.py index 60822375..30e7f64b 100644 --- a/setup.py +++ b/setup.py @@ -29,6 +29,7 @@ "sphinx_copybutton", "sphinx_rtd_theme >=0.5.0", "ipython", + "pillow", ] extras_require["all"] = sorted(set(sum(extras_require.values(), [])))