{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "initial_id", "metadata": { "collapsed": true }, "outputs": [], "source": [ "" ] }, { "metadata": { "ExecuteTime": { "end_time": "2025-05-19T14:18:52.936653Z", "start_time": "2025-05-19T14:18:52.005816Z" } }, "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "# Data\n", "labels = ['text1', 'text2', 'text3', 'text4', 'text5']\n", "values = np.random.rand(5)\n", "\n", "# Colors: one per label\n", "colors = plt.cm.tab10(np.arange(len(labels)))\n", "\n", "# Plot setup\n", "fig, ax = plt.subplots(figsize=(2, 2)) # Square plot\n", "\n", "# Create bars\n", "bars = ax.barh(range(len(labels)), values, color=colors)\n", "\n", "# Add labels on the bars\n", "for i, (bar, label) in enumerate(zip(bars, labels)):\n", " ax.text(bar.get_width(), bar.get_y() + bar.get_height()/2, label,\n", " va='center', ha='left', fontsize=8)\n", "\n", "# Clean up everything around\n", "ax.set_yticks([])\n", "ax.set_xticks([])\n", "ax.spines['top'].set_visible(False)\n", "ax.spines['right'].set_visible(False)\n", "ax.spines['left'].set_visible(False)\n", "ax.spines['bottom'].set_visible(False)\n", "\n", "ax.set_xlim(0, max(values)*1.1) # Add padding on the right\n", "\n", "plt.tight_layout()\n", "plt.show()\n" ], "id": "6c89db30c7a70d4f", "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 1 }, { "metadata": { "ExecuteTime": { "end_time": "2025-05-19T14:20:27.149882Z", "start_time": "2025-05-19T14:20:27.082592Z" } }, "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "# Data\n", "labels = ['text1', 'text2', 'text3', 'text4', 'text5']\n", "values = np.random.rand(5)\n", "\n", "# Colors: one per label\n", "colors = plt.cm.tab10(np.arange(len(labels)))\n", "\n", "# Plot setup\n", "fig, ax = plt.subplots(figsize=(2, 2)) # Square plot\n", "\n", "# Create bars\n", "bars = ax.barh(range(len(labels)), values, color=colors)\n", "\n", "# Add labels inside the bars, left-aligned\n", "for i, (bar, label) in enumerate(zip(bars, labels)):\n", " ax.text(0.05, bar.get_y() + bar.get_height()/2, label,\n", " va='center', ha='left', fontsize=8, color='white', clip_on=True)\n", "\n", "# Clean up everything around\n", "ax.set_yticks([])\n", "ax.set_xticks([])\n", "for spine in ax.spines.values():\n", " spine.set_visible(False)\n", "\n", "ax.set_xlim(0, max(values)*1.1) # Padding to the right\n", "\n", "plt.tight_layout()\n", "plt.show()\n" ], "id": "d7d0a70cdca8ea0e", "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 2 }, { "metadata": { "ExecuteTime": { "end_time": "2025-05-19T14:46:31.714058Z", "start_time": "2025-05-19T14:46:31.610196Z" } }, "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "# Data\n", "labels = ['LGATr', 'LGATr_GP_IRC_SN', 'text3', 'text4', 'text5']\n", "values = [0.7, 0.71, 0.725, 0.728, 0.711]\n", "\n", "# Colors: one per label\n", "colors = plt.cm.tab10(np.arange(len(labels)))\n", "\n", "# Plot setup\n", "fig, ax = plt.subplots(figsize=(2, 2)) # Square plot\n", "\n", "def ax_tiny_histogram(ax, labels, colors, values):\n", " # Create bars\n", " bars = ax.barh(range(len(labels)), values, color=colors, alpha=0.5)\n", "\n", " # Add labels inside the bars, left-aligned\n", " for i, (bar, label) in enumerate(zip(bars, labels)):\n", " ax.text(min(values)-0.002, bar.get_y() + bar.get_height()/2, label,\n", " va='center', ha='left', fontsize=8, color='black', clip_on=True)\n", " ax.text(max(values)+0.002, bar.get_y() + bar.get_height()/2, f'{values[i]:.3f}',\n", " va='center', ha='right', fontsize=8)\n", "\n", " ax.set_yticks([])\n", " ax.set_xticks([]) # Hide ticks for minimal look\n", " for spine in ax.spines.values():\n", " spine.set_visible(False)\n", "\n", " ax.set_xlim(min(values)-0.005, max(values)+0.005)\n", " return ax\n", "\n", "ax_tiny_histogram(ax,labels, colors, values)\n", "plt.tight_layout()\n", "plt.show()\n" ], "id": "3c83c5af70dd3e27", "outputs": [ { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 17 }, { "metadata": { "ExecuteTime": { "end_time": "2025-05-19T14:46:35.602660Z", "start_time": "2025-05-19T14:46:35.271849Z" } }, "cell_type": "code", "source": [ "r_invs = [0.3, 0.5, 0.7]\n", "mediator_masses = [700, 800, 900, 1000, 1100, 1200]\n", "fig, ax = plt.subplots()\n", "ax.set_xticks(range(len(r_invs)))\n", "ax.set_xticklabels(r_invs)\n", "ax.set_yticks(range(len(mediator_masses)))\n", "ax.set_yticklabels(mediator_masses)\n", "ax.set_xlabel(\"$r_{inv}$\")\n", "ax.set_ylabel(\"$m_{Z'}$ [GeV]\")\n", "# put the tiny histogram in [0,0] tick, need to create a new ax at the right position\n", "ax_new = fig.add_axes([0.1, 0.1, 0.2, 0.2])\n", "ax_tiny_histogram(ax_new, labels, colors, values)\n", "\n" ], "id": "105a2ea4d6f16a0e", "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ], "image/png": "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" }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 18 }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": "", "id": "536dfb070e3ea74" } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }