{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Using ColumnDefinition\n", "\n", "You can style a column by providing a `ColumnDefinition` and providing it to the table argument\n", "\n", "```python\n", " from plottable import ColumnDefinition\n", "\n", " Table(df, column_definitions: List[ColumnDefinition]=None)\n", "``` \n", "\n", "when instantiating the Table.\n", "\n", "You can also use the alias ColDef\n", "\n", "```python\n", " from plottable import ColDef\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "class ColumnDefinition:\n", " \"\"\"A Class defining attributes for a table column.\n", "\n", " Attributes:\n", " name: str:\n", " the column name\n", " title: str = None:\n", " the plotted title to override the column name\n", " width: float = 1:\n", " the width of the column as a factor of the default width\n", " textprops: Dict[str, Any] = field(default_factory=dict)\n", " textprops provided to each textcell\n", " formatter: Callable = None:\n", " A Callable to format the appearance of the texts\n", " cmap: Callable = None:\n", " A Callable that returns a color based on the cells value.\n", " text_cmap: Callable = None:\n", " A Callable that returns a color based on the cells value.\n", " group: str = None:\n", " Each group will get a spanner column label above the column labels.\n", " plot_fn: Callable = None\n", " A Callable that will take the cells value as input and create a subplot\n", " on top of each cell and plot onto them.\n", " To pass additional arguments to it, use plot_kw (see below).\n", " plot_kw: Dict[str, Any] = field(default_factory=dict)\n", " Additional keywords provided to plot_fn.\n", " border: str | List = None:\n", " Plots a vertical borderline.\n", " can be either \"left\" / \"l\", \"right\" / \"r\" or \"both\"\n", " \"\"\"\n", "\n", "\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting Column Titles\n", "\n", "You can choose a different title for your Column with the `title` argument." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAGVCAYAAAAv0IKdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA60klEQVR4nO3ceVSU99k+8GsEhiFKJIrADBEQXDAK1qVyUPNilETUWPPqr2qDFLNoo9ioEROO1mJjBG2sS4yaxLj1DZFoRWuUuoSIWzSkLFFwYxOrRyAuSVwq6sz9+yOv82YKqAOzfMXrc85zjvPMPQ/3987zzMUMM9GIiICIiIicqpmzGyAiIiIGMhERkRIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpICHKpD79++PqVOnNvjxZ86cgUajQUFBgc16eliMGzcOL7zwwj1rsrOzodFo8P333zukJyIi+j8PVSBnZGRg7ty5zm5DORqN5p7bnDlzsHTpUqxbt878mMb+cnM///73v9GqVSt4e3ujpqbGbj+nqRg3bpzFf7PWrVsjJiYGR48edXZrSqusrMTvf/97BAcHw93dHW3btsWwYcOQlZXl7NaU8/NzzM3NDb6+vnj22WexZs0amEwmZ7entP+8Pu9uMTExNv05D1Ugt2rVCp6ens5uQzkXLlwwb0uWLMHjjz9usS8xMREtW7aEl5eXw3ravHkzunTpgtDQUGzdutVhP/dhFhMTY/5vlpWVBVdXVzz//PPObktZZ86cQc+ePfHll1/i3XffxbFjx7Bz504888wzSEhIcHZ7Srp7jp05cwb/+Mc/8Mwzz2DKlCl4/vnncefOHWe3p7SfX593tw0bNtj2h8hDJCoqSqZMmSIiIoGBgTJv3jx56aWXpEWLFtK2bVv58MMPLeq//vpr+cUvfiHu7u7Ss2dPycjIEACS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wY5o2a44D+s1ZGazZ89GXFwcXn31VYSFheG///u/kZKSgtTUVJhMJgCAXq/HU089ZfG4zp074+zZszZfAwP5PkQEkydPxpYtW/Dll1+iXbt2zm7JZrRaLXr27ImsrCzzPpPJhKysLERGRjbomAMHDsSxY8dQUFBg3nr16oXY2FgUFBTAxcXFVu0rqzFz3bRpE2pqajB27Fh7t6mUxsxMp9PB398fd+7cwebNmzF8+HB7t2t3nIf1GjKzGzdu1HoH4e5zlIgAAPr27Vvrq66nT59GYGCgLdvH3R9K9zBx4kRp2bKlZGdnW3wt5caNG85uzSbS09PF3d1d1q1bJ8ePH5cJEyaIl5eXVFZWiohIXFycJCUlmetramokPz9f8vPzRa/XS2JiouTn50txcXG9P+NR/JS1tXO9q1+/fjJ69GhHt6sEa2d25MgR2bx5s5SWlsr+/ftlwIAB0q5dO7ly5YqTVmBb9pjH1atXzdcvAFm0aJHk5+dLRUWFo5dnF9bOLDk5WTw9PWXDhg1SVlYmu3fvlpCQEBk1apS5JicnR1xdXWXevHlSXFwsaWlp8thjj8knn3xi8/4ZyPcBoM6tKX0/dNmyZRIQECBarVZ69+4tR44cMd8XFRUl8fHx5tvl5eV1ziMqKqre4z+KgSxi3VxFRE6ePCkAZPfu3Q7uVB3WzCw7O1s6d+4s7u7u0rp1a4mLi5Pz5887oWv7sfU89u7dW+f1+5/n4sPMmpndvn1b5syZIyEhIaLT6aRt27YyadKkWr/Uff7559K1a1dxd3eX0NBQ+eijj+zSu0bkf1+XExERkdPwb8hEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpwPVBC0tKSuzZBxERUZMTEBAArVb7QLV8hUxERKQAjYiIs5sgIiJ61PEVMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "from plottable import ColumnDefinition, ColDef, Table\n", "\n", "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"A\", title=\"Title A\")])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting Column Widths\n", "\n", "You can provide a `width (float)` argument to a ColumnDefinition. It's the width as a factor of the default column width. \n", "By default column widths are calculated by dividing the width of the axes into n_columns same widths." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"A\", width=2)])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setting Column Textprops\n", "\n", "You can provide a `textprops (Dict[str: Any])` argument to a ColumnDefinition to adjust the font attributes." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAGVCAYAAAAv0IKdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7EElEQVR4nO3cfVhUdf4//ufAMECKoiLIIKDgDd7fBoGZ3VCh5k26qaUsbq6uhZa1urFal62l1marrpl5A7iVH6m8KVITlURzQyl0UlBRbrQ0wa+aLmhyM/P6/dGPuRzBcvDMzFt7Pq7rXBdzznvOeb1fnTnPmfFMOhEREBERkUu5uboAIiIiYiATEREpgYFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQK0DSQ27RpA51Oh1dfffWW9pOVlQWdTgedToesrCxNaiMiIlKZpoHcq1cvREVFoXXr1lrulm5D2dnZcHd3x+DBg11dym1h/Pjx1jehOp0OLVq0QFxcHA4ePOjq0pRWWlqKqVOnIiwsDJ6enggODsaQIUOQmZnp6tKUc+055uHhgYCAADz88MNISUmBxWJxdXlKu/71WbvExcVpehy9ljvbuHGjlruj21hycjKmTp2K5ORk/PjjjzAaja4uSXlxcXFITU0F8EvQvPzyy3jsscfw/fffu7gyNZ04cQL9+vWDr68v3nrrLXTr1g3V1dXIyMhAYmIijh496uoSlVN7jpnNZpSVlWHr1q14/vnnsW7dOqSnp0Ov1zQS7ijXvj5reXp6anoMh31lfe3Xzp999hnuu+8+eHt7IyIiAps2bbJ53scff4ywsDB4e3tj0KBBOH36dL3737dvHwYNGgRfX194eXmhd+/eWLdunXX7v//9b+h0Onh7e+PYsWMAgHfeece67vDhw1pOl26goqICH330EZ555hkMHjwYq1evdnVJtwVPT0+0atUKrVq1Qs+ePZGUlIQffvgB/+///T9Xl6akZ599FjqdDjk5ORg5ciQ6dOiALl264MUXX8TevXtdXZ6Sas+xoKAg9O7dGzNnzsRnn32GL774gq/T33Dt67N2adasmabHcMpNXU888QRKS0uh0+lQUFCAp556ChcuXAAAmEwmPPnkkygpKYGnpyeOHTuGv/zlL3X28d///hf9+/fHF198AW9vb7Rp0wYHDhzAE088gffffx8AMHXqVDz88MO4evUqJkyYgOLiYiQlJQEA3nzzTXTu3NkZ0/3d+/jjjxEREYGOHTti3LhxSElJgYi4uqzbSkVFBT788EO0a9cOLVq0cHU5yrlw4QK2bt2KxMRENGrUqM52X19f5xd1m3rwwQfRo0cPbNiwwdWl/O45JZCnTp2KY8eOIS0tDQBQXl6OnJwcAMDbb78Ni8WCpk2boqCgAIWFhRgxYkSdfbz88suorq7Gww8/jB9++AFHjx7FtGnTAACzZs0CAOh0OqxevRrNmzfHnj17EBMTg8uXL+ORRx7B1KlTnTFVwi9fV48bNw7AL1/zXLp0Cbt27XJxVerbtGkTGjdujMaNG8PHxwfp6en46KOP4ObGH0Ncr7CwECKCiIgIV5dyR4iIiMCJEydcXYbSrn191i7z5s3T9BhOeaXHx8cDgM0n1LKyMgBAfn4+AKBfv34ICAgA8Msn6uvVBvj27dvh4eEBnU6HRYsWAQBOnTpl/ZrbaDRi2bJl1mM0a9YMq1evhk6nc8DM6HoFBQXIycnBk08+CQDQ6/UYPXo0kpOTXVyZ+h544AGYTCaYTCbk5OTg0UcfxcCBA3Hy5ElXl6YcfuOiLRHhNfI3XPv6rF0mT56s6TGc8i/4tV8fXXvDQENfUEFBQfXexV1TU2P9+9p3ehUVFSgtLUVgYGCDjkf2SU5ORk1Njc1NXCICT09PvPPOO2jatKkLq1Nbo0aN0K5dO+vjVatWoWnTpli5ciVef/11F1amnvbt20On0/HGLY0cOXIEbdu2dXUZSrv+9ekILv8urEuXLgB++Tfis2fPAoDNjVq17r77bgBAaGgodu7cib1792Lv3r1Yt24d/v73vyM0NBQA8N133+GVV14BAPTs2RPV1dUYN24crl696ozp/K7V1NTg/fffx9tvv23zLvK7776D0WjE2rVrXV3ibUWn08HNzQ0///yzq0tRTvPmzfHoo49i6dKluHz5cp3tFy9edH5Rt6kvv/wShw4dwsiRI11dyu+eywP5xRdfhE6nw6VLl9ChQwe0b98eH330UZ1xc+bMgV6vx9dff43AwED06tULrVu3RkhICBYuXAgAuHr1KsaOHYuqqiqMGTMGX375JYxGIw4fPmy9uYscZ9OmTfjpp58wYcIEdO3a1WYZOXIkv7b+DZWVlSgtLUVpaSmOHDmCqVOnoqKiAkOGDHF1aUpaunQpzGYzIiMjsX79ehw/fhxHjhzBv//9b0RHR7u6PCXVnmOnT5/G/v37MW/ePAwbNgyPPfYY/vjHP7q6PKVd+/qsXc6dO6ftQURDoaGhAkBmz54tO3fuFAACQEpKSkREpKSkxLouNTXV+ry1a9dKmzZtxNPTUx566CFJSUmxjtu5c6d13Ndffy0DBw4UX19fMRgM0qZNG/nDH/4gn3/+uYiITJs2TQCIv7+/nDt3TkRENm3aJABEp9PJjh07tJwuXeexxx6TQYMG1btt3759AkC+++47J1d1e0hISLCe8wDEx8dH7r77blm3bp2rS1Pajz/+KImJiRIaGioGg0GCgoJk6NChNtcN+sW155her5eWLVtKbGyspKSkiNlsdnV5Srv+9Vm7dOzYUdPj6ER4dwQREZGrufwrayIiImIgExERKYGBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKUB/swP379/vyDqIiIjuSBEREbjrrrt+c5xORORmdqjT6W65KCIiot+b3Nxc9O7d+zfH3fQn5Nzc3FsqiIiI6PcoIiLipsbd9CdkIiIichze1EVERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQI0D+S0tDT07t0b3t7eaN68Of7whz+g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9f7syc/PT06fPq3loUgjaWlp4unpKatXr5bDhw/LpEmTxNfXV0pLS0VEJD4+XpKSkuo8795775XRo0fXWV9VVSVDhw6V1q1bi8lksvkpT2VlpcPn4wwN7VmtG91lfenSJbnrrrtk2bJljirdZezt2ffffy8+Pj4yZcoUKSgokE2bNom/v7+8/vrr1jFJSUmya9cuKSkpkYMHD0pSUpLodDrZtm2b0+fnCPb27L///a/o9XpZsGCBHDlyRGbPnl3n5zsDBgyQLl26yM6dO6W4uFhSU1PFy8tL3n33XafPz1Ec0bfrOeoua00DWUTkww8/lJ49e4qnp6c0bdpURowYIceOHdP6MKShJUuWSEhIiBgMBomMjJS9e/datw0YMEASEhJsxh89elQA1HvhKykpsb4pu37ZuXOng2fiPPb27Fo3CuTly5eLt7e3XLx40QEVu569Pfv6668lKipKPD09JSwsTObOnSs1NTXW7U8//bSEhoaKwWCQli1bykMPPXTHhHEte3v28ccfS4cOHcRgMEiXLl1k8+bNNtvPnDkj48ePF6PRKF5eXtKxY0d5++23xWKxOGM6TqN1367nqEDWifCuKyIiIlfj/8uaiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBehvdmBhYaEj6yAiIrrjhISEwGAw3NRYfkImIiJSgE5ExNVFEBER/d7xEzIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQATQN59+7dGDRoEFq2bAmdTgedTof33ntPy0OQiyxduhRt2rSBl5cXoqKikJOT86vjL168iMTERAQGBsLT0xMdOnTAli1bnFStGuzp2cqVK9G/f380a9YMzZo1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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"index\", textprops={\"ha\": \"left\", \"weight\": \"bold\"})])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Providing a Text Formatter\n", "\n", "By providing a `formatter (Callable)` to a ColumnDefinition you can adjust the appearance of the plotted cell texts." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAGVCAYAAAAv0IKdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8uElEQVR4nO3ce3iMd/o/8PdIMhkkEUQiUQkRxDE0DldoS0kbh6L0Kr4ljcNSGkV1rXz14FDHqtOmmhIJunTTlkSts6ZJVBtCJCRCSIRubRKlWEGDmfv3R7/mZ5ogiTl8ou/Xdc21O89zz5P7c+/zzNucViMiAiIiIrKpGrZugIiIiBjIRERESmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAqpVIPfs2RNTp06t8uPPnTsHjUaDzMxMs/VERERkDtUqkOPj4/Hhhx/aug2qgNTUVNjZ2aF///62bqVaGDVqFDQajfFWv3599OnTB8ePH7d1a0orKirCW2+9BV9fXzg6OqJx48YYMGAAEhMTbd2acu4/xxwcHODh4YEXXngBsbGxMBgMtm5PaX+8Pu/d+vTpY9a/U60CuV69enB2drZ1G1QBMTExeOutt7B//3785z//sXU71UKfPn1QWFiIwsJCJCYmwt7eHi+99JKt21LWuXPnEBgYiO+++w5LlixBVlYWdu/ejeeffx7h4eG2bk9J986xc+fOYdeuXXj++ecxZcoUvPTSS7h7966t21Pa/dfnvds///lPs/6NahXI979l3aRJEyxYsABjxoyBs7MzvL29sWbNGpP6tLQ0dOzYETqdDp06dUJGRkaZY2ZnZ6Nv375wcnKCh4cHQkNDcenSJQBAcnIytFotvv/+e2P9Rx99BHd3dxQXF1tuodVcSUkJvvzyS0ycOBH9+/fH+vXrbd1SteDo6IiGDRuiYcOG6NChAyIi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evVqqVmzply9etVSbduUua/Nhz1PmptGRMT8r7uJiIioMvgZMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERAqwr2hhXl6eJfsgIiJ64nh7e0Or1Vaolq+QiYiIFKAREbF1E0RERH92fIVMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCA/QlRUFNq3bw8XFxe4uLggKCgIu3btsnVbZrF//34MGDAAXl5e0Gg02Lp1q8n++Ph4vPjii6hfvz40Gg0yMzPLHGPatGmoV68eGjdujE2bNpns+/rrrzFgwAALrsB2Vq1ahSZNmkCn06Fr165IS0ur0OPi4uKg0Wjw8ssvm2wvKSnBpEmT8NRTT6FmzZpo3bo1PvvsMwt0bjuVndnXX38Nf39/6HQ6tGvXDjt37ixTc/LkSQwcOBB16tRB7dq10blzZ/z000+WWoKSKjPXnj17QqPRlLn179/fih1bVmXmER8fj06dOsHV1RW1a9dGhw4d8I9//MOkxqrXptBDbdu2TXbs2CGnT5+W3NxcmTlzpjg4OEh2dratW3tsO3fulHfffVfi4+MFgCQkJJjs//zzz2XOnDkSHR0tACQjI8Nk/7Zt28TDw0MOHz4sX3zxheh0Ovnll19EROTq1avSvHlzOX/+vJVWYz1xcXGi1WolNjZWTpw4IePGjRNXV1cpLi5+6OMKCgqkUaNG8uyzz8qgQYNM9o0bN06aNWsmSUlJUlBQIKtXrxY7Ozv55ptvLLgS66nszH744Qexs7OTjz76SHJycuS9994TBwcHycrKMtbk5eVJvXr1ZPr06XL06FHJy8uTb7755pH/OzxJKjvXy5cvS2FhofGWnZ0tdnZ2sm7dOus2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GMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAD7ihbm5eVZsg8iIqInjre3N7RabYVq+QqZiIhIARoREVs3QURE9GfHV8hEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMiVsGjRImg0GkydOtXWrdhEeeufNm0a6tWrh8aNG2PTpk0m9V9//TUGDBhg5S6tY9WqVWjSpAl0Oh26du2KtLS0B9bGx8ejU6dOcHV1Re3atdGhQwf84x//MKmZPXs2/P39Ubt2bdStWxfBwcE4dOiQpZdhVeaemUajKfe2ZMkSSy9FKZWZa3R0NJ599lnUrVvXeJ49rP5JpezMhCokLS1NmjRpIu3bt5cpU6bYuh2rK2/927ZtEw8PDzl8+LB88cUXotPp5JdffhERkatXr0rz5s3l/PnzNuzaMuLi4kSr1UpsbKycOHFCxo0bJ66urlJcXFxufVJSksTHx0tOTo7k5eXJihUrxM7OTnbv3m2s2bRpk+zbt0/y8/MlOztbxo4dKy4uLnLx4kVrLcuiLDGzwsJCk1tsbKxoNBrJz8+31rJsrrJzfe2112TVqlWSkZEhJ0+elFGjRkmdOnXk559/tnLntqPyzBjIFXD9+nVp3ry57Nu3T3r06PGnC+QHrX/x4sUybNgwY527u7ukpaWJiMj48eNl2bJltmjX4rp06SLh4eHG+3q9Xry8vGThwoUVPkbHjh3lvffee+D+a9euCQD59ttvH6tXVVhjZoMGDZJevXo9Vp/VzePO9e7du+Ls7CwbNmywVIvKUXlmfMu6AsLDw9G/f38EBwfbuhWbeND6AwICcOTIEVy5cgXp6em4desW/Pz8cODAARw9ehSTJ0+2UceWc/v2baSnp5vMokaNGggODkZqauojHy8iSExMRG5uLp577rkH/o01a9agTp06CAgIMFvvtmKNmRUXF2PHjh0YO3as2fpW3ePOFQBu3ryJO3fuoF69epZqUymqz8ze7Ed8wsTFxeHo0aM4fPiwrVuxiYetPyQkBCNHjkTnzp1Rs2ZNbNiwAbVr18bEiROxfv16REVFITIyEm5ublizZg3atGljgxWY16VLl6DX6+Hh4WGy3cPDA6dOnXrg465du4ZGjRqhtLQUdnZ2+PTTT/HCCy+Y1Gzfvh3Dhw/HzZs34enpiX379sHNzc0i67AmS87sng0bNsDZ2RlDhgwxa+8qq+pc7zdjxgx4eXn9aV5sqD4zBvJD/Pvf/8aUKVOwb98+6HQ6W7djdRVZ/+zZszF79mzj/Tlz5iA4OBgODg6YN28esrKysH37drz++utIT0+3UufqcXZ2RmZmJkpKSpCYmIhp06bB19cXPXv2NNY8//zzyMzMxKVLlxAdHY2hQ4fi0KFDcHd3t13jNlSRmd0TGxuLESNG/Cmv06patGgR4uLikJyczLlVkMVnZvY3wZ8gCQkJAkDs7OyMNwCi0WjEzs5O7t69a+sWLaqy6z958qT4+fnJ9evXZeXKlfLqq6+KiEhJSYkAkP/+97+2WIZZlZaWip2dnSQkJJhsf/3112XgwIEVPs7YsWPlxRdffGiNn5+fLFiwoCptKsXSM9u/f78AkMzMzMdttVp5nLkuWbJE6tSpI4cPH7Zgh+pRfWb8DPkhevfujaysLGRmZhpvnTp1wogRI5CZmQk7Oztbt2hRlVm/iOCNN97AsmXL4OTkBL1ejzt37gCA8T/1er1N1mFOWq0WgYGBSExMNG4zGAxITExEUFBQhY9jMBhQWlr62DXVgaVnFhMTg8DAwCfi8/bKqOpcP/roI3z44YfYvXs3OnXqZI1WlaH8zCwW9U+oP+O3rO/3oPWvWbNGXnnlFeP9Q4cOiYuLi6SmpsoHH3wgrVu3tmKXlhUXFyeOjo6yfv16ycnJkfHjx4urq6sUFRWJiEhoaKhEREQY6xcsWCB79+6V/Px8ycnJkY8//ljs7e0lOjpaRH5/B+F///d/JTU1Vc6dOydHjhyR0aNHi6Ojo2RnZ9tkjeZm7pndc+3aNalVq5ZERUVZdT2qqOxcFy1aJFqtVjZv3mzyk7Hr16/baglWp/LMGMiVxEAuu/6ioiLx8fGRCxcumGyfM2eO1KtXT/z9/eXQoUNW7NLyIiMjxdvbW7RarXTp0kUOHjxo3NejRw8JCwsz3n/33XfFz89PdDqd1K1bV4KCgiQuLs64/9atWzJ48GDx8vISrVYrnp6eMnDgQONPyJ4U5pzZPatXr5aaNWvK1atXrbEEJVVmrj4+PgKgzG3WrFnWb9yGVJ2ZRkTEcq+/iYiIqCL4GTIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQK+H/P6PWA+gMbJQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from plottable.formatters import decimal_to_percent\n", "\n", "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"A\", formatter=decimal_to_percent)])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Providing a cmap function\n", "\n", "By providing a `cmap (Callable)` to a ColumnDefinition you can adjust the appearance of the cell backgrounds based on the cells value." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAGVCAYAAAAv0IKdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAABB5klEQVR4nO3beViU5d4H8O8MMELsi6wiKCi4AQpImJomivuSndRMkcxeFU0lzRUxNcW00sL96NGjGZ7XLU8pHENxOeIGEmSIouFCAqJCgrE4M+8fvk5OoALOcoPfz3XNdckz9/PM7/75zHznWUaiVCqVICIiIr2S6rsAIiIiYiATEREJgYFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCqFeB3K1bN0ydOrXO6+fk5EAikSAtLU1jNREREWlCvQrkPXv2YNGiRfoug2ogOTkZBgYG6Nevn75LqRfGjBkDiUSietja2qJ3795IT0/Xd2lCy8vLw+TJk9G8eXM0atQIrq6uGDBgABITE/VdmnCe3MeMjIzg4OCAnj17YvPmzVAoFPouT2h/fX8+fvTu3Vujr1OvAtnGxgbm5ub6LoNqYNOmTZg8eTKOHTuG3377Td/l1Au9e/fGrVu3cOvWLSQmJsLQ0BD9+/fXd1nCysnJgb+/Pw4fPozly5cjIyMD8fHx6N69OyIiIvRdnpAe72M5OTk4ePAgunfvjilTpqB///54+PChvssT2pPvz8ePb7/9VqOvUa8C+clT1u7u7liyZAnee+89mJubo2nTptiwYYPa+DNnzqB9+/YwNjZGQEAAzp8/X2WbP//8M/r06QMzMzM4ODhg1KhRKCwsBAAkJSVBJpPh+PHjqvGfffYZ7O3tkZ+fr72J1nMlJSXYuXMnJkyYgH79+mHLli36LqleaNSoERwdHeHo6Ag/Pz/MmjULN27cwO3bt/VdmpAmTpwIiUSCM2fOYOjQoWjZsiXatGmDyMhInDp1St/lCenxPubi4oIOHTpgzpw5+O6773Dw4EG+T5/jyffn44e1tbVGX6NeBfJfff7556qgnThxIiZMmICsrCwAj0Khf//+aN26NVJSUrBgwQJMnz5dbf2ioiK88cYbaN++Pc6dO4f4+Hjk5+fj7bffBvDnF4BRo0ahuLgY58+fR1RUFP7+97/DwcFB5/OtL/71r3/B29sbXl5eePfdd7F582YolUp9l1WvlJSUYPv27fD09IStra2+yxHO3bt3ER8fj4iICJiamlZ53srKSvdF1VNvvPEGfH19sWfPHn2X8tKr14Hct29fTJw4EZ6enpg5cybs7Oxw5MgRAMCOHTugUCiwadMmtGnTBv3798eMGTPU1o+NjUX79u2xZMkSeHt7o3379ti8eTOOHDmCS5cuAQAWL14Ma2trfPDBB3j33XcRFhaGgQMH6nyu9cmmTZvw7rvvAnh0mqe4uBhHjx7Vc1Xi+/7772FmZgYzMzOYm5tj//792LlzJ6TSev021Yrs7GwolUp4e3vru5QGwdvbGzk5OfouQ2hPvj8fP5YsWaLR1zDU6NZ0zMfHR/VviUQCR0dHFBQUAAAyMzPh4+MDY2Nj1Zjg4GC19X/66SccOXIEZmZmVbZ95coVtGzZEjKZDN988w18fHzg5uaGL7/8UkuzaRiysrJw5swZ7N27FwBgaGiIYcOGYdOmTejWrZt+ixNc9+7dsXbtWgDAvXv3sGbNGvTp0wdnzpyBm5ubnqsTC8+4aJZSqYREItF3GUJ78v35mI2NjUZfo14HspGRkdrfEomkVncLlpSUYMCAAVi2bFmV55ycnFT/PnnyJIBHp8nu3r1b7SkyemTTpk14+PAhnJ2dVcuUSiUaNWqE2NhYWFpa6rE6sZmamsLT01P199///ndYWlpi48aNWLx4sR4rE0+LFi0gkUhw8eJFfZfSIGRmZqJZs2b6LkNof31/akODPRfWqlUrpKeno6ysTLXsrzd6dOjQARcuXIC7uzs8PT3VHo9D98qVK5g2bRo2btyIoKAghIWF8ScCT/Hw4UP885//xOeff460tDTV46effoKzs7PG70hs6CQSCaRSKf744w99lyIcGxsbhIaGYvXq1SgtLa3yfFFRke6LqqcOHz6MjIwMDB06VN+lvPQabCC/8847kEgkGDduHH755RccOHAAK1asUBsTERGBu3fvYsSIETh79iyuXLmChIQEhIeHQy6XQy6X491330VoaCjCw8Pxj3/8A+np6fj888/1NCuxff/997h37x7Gjh2Ltm3bqj2GDh2KTZs26btEoZWXlyMvLw95eXnIzMzE5MmTVWdxqKrVq1dDLpejY8eO2L17Ny5fvozMzEx89dVXVS5P0SOP97Hc3FykpqZiyZIlGDRoEPr374/Ro0fruzyhPfn+fPx4/IscjVHWI6+//rpyypQpSqVSqXRzc1N++eWXas/7+voqo6OjVX8nJycrfX19lTKZTOnn56fcvXu3EoDy/PnzqjGXLl1SDhkyRGllZaU0MTFRent7K6dOnapUKBTKTz75ROnk5KQsLCxUjd+9e7dSJpMp09LStDjT+ql///7Kvn37Vvvc6dOnlQCUP/30k46rqh/CwsKUAFQPc3NzZWBgoHLXrl36Lk1ov/32mzIiIkLp5uamlMlkShcXF+XAgQOVR44c0XdpwnlyHzM0NFQ2btxYGRISoty8ebNSLpfruzyh/fX9+fjh5eWl0deRKJW8O4KIiEjfGuwpayIiovqEgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQAw5oOTE1N1WYdREREDZK3tzdeeeWV546TKJVKZU02KJFIXrgoIiKil01KSgo6dOjw3HE1PkJOSUl5oYJeRqWT3tV3CfWOaex2fZdARKRR3t7eNRpX4yNkqr37vQP1XUK9Yx5/Vt8lEBHpBW/qIiIiEgADmYiISAAMZCIiIgEwkImIiATAQCYiIhIAA5mIiEgADGQiIiIBMJCJiIgEwEAmIiISAAOZiIhIAAxkIiIiATCQiYiIBMBAJiIiEgADmYiISAAMZCIiIgEwkImIiATAQCYiIhIAA5mIiEgADGQiIiIBMJCJiIgEwEAmIiISAAOZiIhIAAzkGlq9ejXc3d1hbGyMoKAgnDlzRt8lacyG6wVoezQdjQ+loPupTJwrKnnq2G9yC2GR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bq2vKehcbXtWVlaGefPm4erVqzAzM0Pfvn2xbds2WFlZ6WkGulfbnq1duxYVFRV466231LYTHR2NBQsWwMDAAOnp6di6dSuKiorg7OyMXr16YdGiRWjUqJFO56Ytte2Zq6srEhISMG3aNPj4+MDFxQVTpkzBzJl//vyyuLgYs2fPxs2bN2FjY4OhQ4fi008/rfZnUi+Kv0PWovrwO2TR1IffIRMRaQOvIRMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQnAsKYDs7OztVlHgyTPK9R3CfWOAfczImpAmjZtCplMVqOxNQ5kqj2Jq6e+SyAionqixoHs6clwqS1FYaa+S6h3pNzPiOglxWvIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIz7F06VIEBgbC3Nwc9vb2GDx4MLKysvRdlkat2fUDmg95H6+8PhTBY6fjzIVLTx278bsEvD5+Fmx7jYBtrxHoNTmqyvg9SScROmU+GoeOhEHwQKRduqrtKejc6tWr4e7uDmNjYwQFBeHMmTPPHP+///u/8Pb2hrGxMdq1a4cDBw6oPV9SUoJJkyahSZMmMDExQevWrbFu3TptTkFIte3rY3FxcZBIJBg8eLB2C9Sx2vRj48aN6NKlC6ytrWFtbY2QkBC18ZWVlZg5cybatWsHU1NTODs7Y/To0fjtt990MRWdqU3PKisrsXDhQnh4eMDY2Bi+vr6Ij49XG7N27Vr4+PjAwsICFhYWCA4OxsGDB7VSOwP5OY4ePYqIiAicOnUKhw4dQmVlJXr16oXS0lJ9l6YRO388jo++2oSoscNxbsuX8Gnhjj7TolFwt6ja8UdTf8bwnl2RGPsp/rthOZo42KH3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+OKLL9C+fXvVKeuoqCgMGDBAFcy6zAAG8nMUFBRg9OjRuHXrFiwtLeHj44OEhATVzSUvg7dfa4/bv5dgwc545BX9Dl93F/ww93/gYPXoRq/rhfcglUhU40vLKjD577tw804xTGRG8HKxxz8nv4u3X2uvryno3LBhw3D79m3Mnz8feXl58PPzQ3x8vOqGk+vXr6t9M7937x7GjRuHvLw8WFtbw9/fHydPnmww9ynUth+lpaWYOHEibt68CRMTE3h7e2P79u0YNmyYasyQIUOwbt06LF26FB9++CG8vLywe/dudO7cWefz04ba9mzt2rWoqKjAW2+9pbad6OhoLFiwAAB79teezZs3DxKJBPPmzUNubi4aN26MAQMG4NNPP1WN0WUG8HfIWtRQfoesSw3ld8hERLXFa8hEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJwLCmA7Ozs7VZR4Mkv3Vb3yXUOwbcz4ioAWnatClkMlmNxtY4kKn2Li/dou8S6h3vPuH6LoGISC8kSqVSqe8iGqp0N3d9l1Dv+FzL0XcJRER6wWvIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjIREREAmAgExERCYCBTEREJAAGMhERkQAYyERERAJgIBMREQmAgUxERCQABjIREZEAGMhEREQCYCATEREJgIFMREQkAAYyERGRABjItRATEwOJRIKpU6fquxSNirt/H31ybyLw+jWMzLuFjPLyp44dm58H3+vXqjwmFRSoxqwtKsKg33IRdOM6Ot+4gQ/y85H+jG3WR6tXr4a7uzuMjY0RFBSEM2fO1Gi9uLg4SCQSDB48WG35ggUL4O3tDVNTU1hbWyMkJASnT5/WQuX6U5uebdmyBRKJRO1hbGxcZVxmZiYGDhwIS0tLmJqaIjAwENevX9fmNHSqNj3bs2cPAgICYGVlBVNTU/j5+WHbtm1P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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from plottable.cmap import normed_cmap\n", "import matplotlib.cm\n", "\n", "\n", "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"A\", cmap=matplotlib.cm.Reds)])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Providing a text_cmap function\n", "\n", "By providing a `text_cmap (Callable)` to a ColumnDefinition you can adjust the color of the plotted cell texts based on the cells value." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAGVCAYAAAAv0IKdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9R0lEQVR4nO3beVxV9b4//tcC3GxMFBxAtgokDjinkvzQOpZxsrTp1PfULeWgdfJqeNKsrt6shx0tta6WHlMrnLpHb9TNIY+ZZAiaBVEMKQ7I5MyQKQSiDGu9f39w3bUDUnAPH/D1fDzWI/dnvdfa78+ntXmxF3trIiIgIiIil3JzdQNERETEQCYiIlICA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTQogL5jjvuwMyZM5t9/PHjx6FpGjIzM+3WExERkT20qEDesmULFixY4Oo26BokJyfD3d0d48ePd3UrLcKkSZOgaZp169SpE+655x4cOHDA1a0praioCH/729/Qs2dPeHp6okePHrj//vuRkJDg6taU8+trrE2bNvD398cf//hHrFu3DoZhuLo9pf329Xllu+eee+z6PC0qkDt27Ahvb29Xt0HXYO3atfjb3/6Gffv24ezZs65up0W45557UFhYiMLCQiQkJMDDwwP33Xefq9tS1vHjxzF8+HDs2bMH//Vf/4WDBw9i165duPPOOxETE+Pq9pR05Ro7fvw4Pv/8c9x5552YMWMG7rvvPtTW1rq6PaX9+vV5Zfvwww/t+hwtKpB/fcs6ODgYCxcuxJNPPglvb28EBgbi/ffft6lPTU3F0KFDYTabERYWhoyMjHrnzMrKwr333ot27drB398fUVFROHfuHAAgKSkJJpMJX331lbX+zTffhJ+fH4qLix030RauoqICH330EaZNm4bx48djw4YNrm6pRfD09ETXrl3RtWtX3HLLLZgzZw5OnTqFH3/80dWtKemZZ56BpmlITU3FI488gj59+mDAgAGYNWsWUlJSXN2ekq5cY926dcOwYcPw0ksv4dNPP8Xnn3/O1+lV/Pr1eWXz9fW163O0qED+raVLl1qD9plnnsG0adOQnZ0NoC4U7rvvPvTv3x9paWl49dVX8cILL9gcX1paijFjxmDo0KH4/vvvsWvXLhQXF+PRRx8F8MsvAFFRUSgrK0NGRgZeeeUVrFmzBv7+/k6fb0vx8ccfIzQ0FH379sXEiROxbt06iIir22pRKioqsHHjRvTq1QudOnVydTvKOX/+PHbt2oWYmBjcdNNN9fb7+Pg4v6kWasyYMRgyZAi2bNni6lZueC06kMeNG4dnnnkGvXr1wuzZs9G5c2ckJiYCAP7nf/4HhmFg7dq1GDBgAO677z68+OKLNse/8847GDp0KBYuXIjQ0FAMHToU69atQ2JiIo4dOwYAeO211+Dr64spU6Zg4sSJiI6OxgMPPOD0ubYka9euxcSJEwHU3eYpKyvD3r17XdyV+nbs2IF27dqhXbt28Pb2xvbt2/HRRx/Bza1Fv0wdIjc3FyKC0NBQV7fSKoSGhuL48eOubkNpv359XtkWLlxo1+fwsOvZnGzw4MHWf2uahq5du6KkpAQAcOTIEQwePBhms9laExERYXP8Dz/8gMTERLRr167eufPy8tCnTx+YTCZs2rQJgwcPRlBQEN5++20HzaZ1yM7ORmpqKrZu3QoA8PDwwGOPPYa1a9fijjvucG1zirvzzjuxevVqAMCFCxewatUq3HvvvUhNTUVQUJCLu1ML77jYl4hA0zRXt6G0X78+r+jYsaNdn6NFB3KbNm1sHmua1qRPC1ZUVOD+++/HG2+8UW9fQECA9d/ffPMNgLrbZOfPn2/wFhnVWbt2LWpra2GxWKxjIgJPT0+888476NChgwu7U9tNN92EXr16WR+vWbMGHTp0QGxsLF577TUXdqae3r17Q9M0HD161NWttApHjhzBzTff7Oo2lPbb16cjtNp7Yf369cOBAwdw+fJl69hvP+gxbNgwHDp0CMHBwejVq5fNdiV08/Ly8NxzzyE2Nhbh4eGIjo7mVwQaUVtbi//+7//G0qVLkZmZad1++OEHWCwWu38isbXTNA1ubm64dOmSq1tRTseOHTF27FisXLkSFy9erLe/tLTU+U21UHv27MHBgwfxyCOPuLqVG16rDeQnnngCmqbh6aefxuHDh7Fz504sWbLEpiYmJgbnz5/H448/ju+++w55eXmIj4/H5MmToes6dF3HxIkTMXbsWEyePBnr16/HgQMHsHTpUhfNSm07duzAhQsX8NRTT2HgwIE22yOPPIK1a9e6ukWlVVVVoaioCEVFRThy5Aj+9re/We/iUH0rV66ErusYMWIENm/ejJycHBw5cgT/+Mc/6v15iupcucbOnDmD9PR0LFy4EA8++CDuu+8+/OUvf3F1e0r79evzynblGzl2Iy3I6NGjZcaMGSIiEhQUJG+//bbN/iFDhsi8efOsj5OTk2XIkCFiMpnklltukc2bNwsAycjIsNYcO3ZM/vSnP4mPj494eXlJaGiozJw5UwzDkL///e8SEBAg586ds9Zv3rxZTCaTZGZmOnCmLdN9990n48aNa3Dft99+KwDkhx9+cHJXLUN0dLQAsG7e3t5y6623yieffOLq1pR29uxZiYmJkaCgIDGZTNKtWzd54IEHJDEx0dWtKefX15iHh4d06dJFIiMjZd26daLruqvbU9pvX59Xtr59+9r1eTQRfjqCiIjI1VrtLWsiIqKWhIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAI9rLUxPT3dkH0RERK1SaGgo2rZte9U6TUTkWk6oadp1N0VERHSjSUtLw7Bhw65ad83vkNPS0q6rISIiohtRaGjoNdVd8ztkIiIichx+qIuIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkK/RypUrERwcDLPZjPDwcKSmprq6Jbup2hqHn//tXpTdPQIV0yai9sjB362Xip9xadlC/PxIJMruvhXlUQ+gJuUr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IiIiBWgiIq5ugoiI6EbHd8hEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhXsWjRItx6663w9vaGn58fHnroIWRnZ7u6LbuSsh8hJ7Ig+RmQ00chly82Xlt9CVKUX1eflw4pLfn9c18oqqs7d8rebStv5cqVCA4OhtlsRnh4OFJTUxutrampwfz58xESEgKz2YwhQ4Zg165dTuzW8ZqyHr8WFxcHTdPw0EMP2YwXFxdj0qRJsFgsaNu2Le655x7k5OQ4oHPXacqaHTp0CI888giCg4OhaRqWLVtWr+bVV1+Fpmk2W2hoqANn4BpNWbfY2Fjcfvvt8PX1ha+vLyIjI3+3furUqY2u7/ViIF/F3r17ERMTg5SUFOzevRs1NTW4++67cfFi46HVkkjFeeDcacA3AOgeCpi8gMJcSG1NwwcYBuBhAjpaAHeP3z/35YvAz+fqznmD+eijjzBr1izMmzcP6enpGDJkCMaOHYuSkoZ/gXn55Zfx3nvvYcWKFTh8+DCmTp2KP/3pT8jIyHBy547R1PW44vjx43jhhRdw++2324yLCB566CHk5+fj008/RUZGBoKCghAZGdlqXptNXbPKykr07NkTixcvRteuXRs974ABA1BYWGjd9u/f76gpuERT1y0pKQmPP/44EhMTkZycjB49euDuu+/GmTNn6tVu3boVKSkpsFgsjmleqElKSkoEgOzdu9fVrdiFceqIGCUnf3lsGGIUHBDjfOHVjz1+UIwLxQ3v02vFOJElxsUyMU5ni/HjyQbrWqsRI0ZITEyM9bGu62KxWGTRokUN1gcEBMg777xjM/bwww/LhAkTHNqnszR1PUREamtrZeTIkbJmzRqJjo6WBx980LovOztbAEhWVpbNObt06SKxsbEOmYOzNWfNrggKCpK333673vi8efNkyJAhduxSPdezbiJ11523t7d88MEHNuOnT5+Wbt26SVZWVqPre734DrmJysrKAAAdO3Z0cSfXT8QAqiqBtt7WMU3TAC9v4HduW1+TH08BbTtAa9v+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jFXniOusvLxcMjIyJCMjQwDIW2+9JRkZGXLiRP1vmFwvBnITtbZAFhExfjwp+qH9ov+QIPqxVDEqSq379JzvRT/xy1eYjKpK0TO/rL/lfP9LTW2N6Kez/++ce0Q//LXoZ3PF0HWnzsuRVqxYIYGBgWIymWTEiBGSkpJi3Td69GiJjo62Pk5KSpJ+/fqJp6endOrUSaKiouTMmTP1zhkfHy8AJDs72xlTcLqmrJmIyDfffCPh4eHi6ekpPXv2lNdff11qa2ttav71r3/JwIEDxdPTU0JDQ+X99993xlScxt7X2UcffSQ9e/YUk8kkXbt2lZiYGCktLZXWxN7XWWJiogCot/32PPagibSC+4hEREQtHP+GTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQL+f/OyMWqE3grRAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from plottable.cmap import normed_cmap\n", "import matplotlib.cm\n", "\n", "\n", "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"A\", text_cmap=matplotlib.cm.Reds)])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Providing a group argument\n", "\n", "By providing a `group (str)` to a ColumnDefinition the group will get a spanner column label above the column labels for spanning all Columns with a shared group." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAGVCAYAAAAv0IKdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9c0lEQVR4nO3ce1yUdd4//tcADoOAYio4owKCB/CEpzDU1sPSah6ibG91UzymW8GmHUzLvDU1rc3jelo1wO7VO8pE86smIuExjERIQUXBQ5vLYS1lQwtx5v37o59zO4HFwBw+4Ov5eMzjIdf1nut6f96P6/LlDDNqRERARERETuXi7AaIiIiIgUxERKQEBjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUz3dfv2bWe3QET0wGAgP0B++OEHjB07Fp6entDr9VixYgUGDBiAGTNmAAACAwOxcOFCjB8/Ho0aNcK0adMAANu3b0enTp3g7u6OwMBALFu2zOK4Go0GO3futNjm4+ODzZs3AwAuX74MjUaDxMRE9OnTBzqdDp07d8ahQ4eq1ffBgweh0WiQmpqKXr16oWHDhujTpw/y8vLMNQUFBYiKioKfnx+8vLzw8MMP48CBAxbHCQwMxKJFizB+/Hh4eXkhICAAu3btwr///W9ERUXBy8sLXbt2xYkTJyyed/ToUTz66KPw8PBA69at8eKLL+LmzZvV6p2IqLoYyA+Ql19+GceOHcOuXbuQkpKCI0eO4OTJkxY1S5cuRVhYGLKysjB37lxkZmZi1KhRGDNmDE6fPo358+dj7ty55rC1xsyZM/HKK68gKysLERERGDFiBL777rtq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1TM//PCDZGVlSVZWlgCQ5cuXS1ZWlly5csXZrdlEYmKiuLu7y+bNm+XMmTMybdo08fHxMX/FJDo6WmbPnm2uX7x4sezfv18KCgrkzJkzsnTpUnFzc5NNmzbd9xz17VPW1s7s+PHjsn37dikoKJDDhw/LoEGDpE2bNnL9+nWL4xqNRvH395dZs2Y5cjkOYe3M3nrrLUlOTpaCggLJzMyUMWPGiE6nk9zcXBERKSsrk9dff13S09Pl8uXLcuLECZk0aZK4u7tLTk6OU9Zoa9bO7K5+/frJ6NGjK21/EGYmYv3cjh07Jm5ubrJ06VI5e/aszJs3r9LXnkR+/kR6w4YNZf369XbrnYH8G9LS0gRApceECROc3ZrNrF69Wvz9/UWr1Up4eLgcP37cvK9///4Wa50zZ460bdtWdDqdNGnSRCIiIiQxMfFXj1/fAlnEupkdPHhQQkNDxd3dXZo2bSrR0dFy9erVSsdMTk4WAJKXl+eIJTicNTObMWOGudbPz0+GDh1q8b3tH3/8UZ566ikxGAyi1WpFr9fLE088IRkZGY5ckt1ZMzMRkXPnzgkA2b9/f6VjPSgzE7F+bh9//LG0b99etFqtdOrUSfbs2VPpmBs2bBAPDw+5ceOG3frWiIjY57U3ERERVRd/h0xERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAC36hbm5+fbsw8iIqJ6x9/fH1qttlq1fIVMRESkAI2IiLObICIietDxFTIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAG8m9YsmQJHn74YXh7e8PX1xdPPvkk8vLynN2WTa1duxaBgYHQ6XTo3bs3MjIyfrV+27ZtCAkJgU6nQ5cuXbB3716L/RqNpsrHe++9Z89lOJS1M7tx4wZiYmKg1+vh7u6O9u3bW8wtMDCwypnFxMTYeykO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3vH394dWq61WLV8hExERKUAjIuLsJoiIiB50fIVMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIBMRESmAgUxERKQABjIREZECGMhEREQKYCATEREpgIFMRESkAAYyERGRAhjIRERECmAgExERKYCBTEREpAAGMhERkQIYyERERApgIFvhnXfegUajwYwZM5zdik2tXbsWgYGB0Ol06N27NzIyMu5bm5ubi6effhqBgYHQaDRYuXJlpZolS5bg4Ycfhre3N3x9ffHkk08iLy/PjitwPGtmVlFRgQULFiA4OBg6nQ5hYWHYt2+fRc0PP/yAGTNmICAgAB4eHujTpw+++uorey/DoayZ2YABA6DRaCo9hg0bZq6ZP38+QkJC4OnpiSZNmiAyMhJffvmlI5aiFGvmunnz5koz1el0DuzW/mx9b979u+6Xj5iYGNs3L1QtGRkZEhgYKF27dpXp06c7ux2bSUxMFK1WK/Hx8ZKbmytTp04VHx8fKS4urrI+IyNDXn31Vfnwww+lRYsWsmLFiko1gwcPloSEBMnJyZHs7GwZOnSo+Pv7S1lZmZ1X4xjWzuy1114Tg8Ege/bskYKCAlm3bp3odDo5efKkuWbUqFHSsWNHOXTokFy4cEHmzZsnjRo1km+//dZRy7Ira2f23XffSWFhofmRk5Mjrq6ukpCQYK7ZunWrpKSkSEFBgeTk5MiUKVOkUaNGUlJS4qBVOZ+1c01ISJBGjRpZzLaoqMjBXduPPe7NkpISi3mlpKQIAElLS7N5/wzkavjhhx+kXbt2kpKSIv37969XgRweHi4xMTHmn41GoxgMBlmyZMlvPjcgIKDKQP6lkpISASCHDh2qTavKsHZmer1e1qxZY7Ft5MiRMnbsWBERuXXrlri6usru3bstanr06CFz5syxcffOUZvrTERkxYoV4u3t/av/qCstLRUAcuDAgVr3W1dYO9eEhARp3Lixg7pzPFvfm1WZPn26BAcHi8lksk3T9+Bb1tUQExODYcOGITIy0tmt2NTt27eRmZlpsS4XFxdERkYiPT3dZucpLS0FADz00EM2O6az1GRm5eXlld4W9PDwwNGjRwEAd+7cgdFo/NWauswW11lcXBzGjBkDT0/P+55j48aNaNy4McLCwmzSt+pqOteysjIEBASgdevWiIqKQm5uriPatTt73JtVnWPLli2YPHkyNBqN7Zq/26/Nj1jPJCYm4uTJk1iyZImzW7G5a9euwWg0ws/Pz2K7n58fioqKbHIOk8mEGTNmoG/fvujcubNNjulMNZnZ4MGDsXz5cly4cAEmkwkpKSlISkpCYWEhAMDb2xsRERFYuHAh/vWvf8FoNGLLli1IT08319Rltb3OMjIykJOTg2effbbSvt27d8PLyws6nQ4rVqxASkoKmjVrZrPeVVaTuXbo0AHx8fH49NNPsWXLFphMJvTp0wfffvutI1q2K3vcm7+0c+dO3LhxAxMnTrR1+wAYyL/qn//8J6ZPn46tW7fWuw8+OEpMTAxycnKQmJjo7FacZtWqVWjXrh1CQkKg1WoRGxuLSZMmwcXl/26/f/zjHxARtGzZEu7u7vjb3/6GP/3pTxY1D6q4uDh06dIF4eHhlfYNHDgQ2dnZ+OKLLzBkyBCMGjUKJSUlTuiyboiIiMD48ePRrVs39O/fH0lJSWjevDk2bNjg7Nacojr35r3i4uLw+OOPw2Aw2KUf3u2/IjMzEyUlJejRowfc3Nzg5uaGQ4cO4W9/+xvc3NxgNBqd3WKtNGvWDK6uriguLrbYXlxcjBYtWtT6+LGxsdi9ezfS0tLQqlWrWh9PBTWZWfPmzbFz507cvHkTV65cwblz5+Dl5YWgoCBzTXBwMA4dOoSysjL885//REZGBioqKixq6qraXGc3b95EYmIipkyZUuV+T09PtG3bFo888gji4uLg5uaGuLg4m/WuMlvcvw0aNED37t2Rn59vjxYdyl735l1XrlzBgQMHqnynxlYYyL/i97//PU6fPo3s7Gzzo1evXhg7diyys7Ph6urq7BZrRavVomfPnkhNTTVvM5lMSE1NRURERI2PKyKIjY3Fjh078Pnnn6NNmza2aFcJtZmZTqdDy5YtcefOHWzfvh1RUVGVajw9PaHX63H9+nUkJydXWVPX1GZm27ZtQ3l5OcaNG1etc5lMJpSXl9eq37rCFvev0WjE6dOnodfr7dWmw9j73kxISICvr6/FV+9szuYfE6vn6tunrBMTE8Xd3V02b94sZ86ckWnTpomPj4/5qxDR0dEye/Zsc315eblkZWVJVlaW6PV6efXVVyUrK0suXLhgrnn++eelcePGcvDgQYuvC9y6dcvh67MHa2d2/Phx2b59uxQUFMjhw4dl0KBB0qZNG7l+/bq5Zt++ffLZZ5/JxYsXZf/+/RIWFia9e/eW27dvO3p5dmHtzO7q16+fjB49utL2srIyef311yU9PV0uX74sJ06ckEmTJom7u7vk5OTYfT2qsHaub731liQnJ0tBQYFkZmbKmDFjRKfTSW5urrOWYFP2uDdFfv60tr+/v8yaNcuu/TOQrVTfAllEZPXq1eLv7y9arVbCw8Pl+PHj5n39+/eXCRMmmH++dOmSAKj06N+/v7mmqv0ALL5DWtdZM7ODBw9KaGiouLu7S9OmTSU6OlquXr1qcbyPPvpIgoKCRKvVSosWLSQmJkZu3LjhqOU4hDUzExE5d+6cAJD9+/dXOtaPP/4oTz31lBgMBtFqtaLX6+WJJ56QjIwMey9DOdbMdcaMGeZaPz8/GTp0qMV3busDW9+bIiLJyckCQPLy8uzau0ZExH6vv4mIiKg6+DtkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgUwEAmIiJSAAOZiIhIAQxkIiIiBTCQiYiIFMBAJiIiUgADmYiISAEMZCIiIgUwkImIiBTAQCYiIlIAA5mIiEgBDGQiIiIFMJCJiIgU8P8Bwr3PfpRPuA8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from plottable.cmap import normed_cmap\n", "import matplotlib.cm\n", "\n", "\n", "d = pd.DataFrame(np.random.random((5, 5)), columns=[\"A\", \"B\", \"C\", \"D\", \"E\"]).round(2)\n", "fig, ax = plt.subplots(figsize=(6, 5))\n", "tab = Table(d, column_definitions=[ColumnDefinition(name=\"A\", group=\"group_name\"), \n", " ColumnDefinition(name=\"B\", group=\"group_name\")])\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Providing a plot function\n", "\n", "By providing a `plot_fn (Callable)` to a ColumnDefinition, plottable creates an axes on top of each Cell of this column, and creates plots based on each cell's value.\n", "\n", "You can provide additional keywords to the plot function by passing a `plot_kw` dictionary to ColumnDefinition.\n", "\n", "```python\n", "\n", " plot_fn: Callable = None\n", " A Callable that will take the cells value as input and create a subplot\n", " on top of each cell and plot onto them.\n", " To pass additional arguments to it, use plot_kw (see below).\n", " plot_kw: Dict[str, Any] = field(default_factory=dict)\n", " Additional keywords provided to plot_fn.\n", "```\n", "\n", "For available plotting functions have a look at the [Plots Notebook](../notebooks/plots.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Providing a border argument\n", "\n", "By providing a `border (str)` argument, you can adjust whether left and right borders of all Columns cells are plotted.\n", "\n", "border can be either \"left\" / \"l\", \"right\" / \"r\" or \"both\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{seealso}\n", "The [Women's World Cup Example](../example_notebooks/wwc_example.ipynb) uses most of the available ColumnDefinition arguments.\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.5 ('env': venv)", "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.10.5" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "fad163352f6b6c4f05b9b8d41b1f28c58b235e61ec56c8581176f01128143b49" } } }, "nbformat": 4, "nbformat_minor": 2 }