Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bjodah/76d2f42684141f01ec350ad6d1edcd41 to your computer and use it in GitHub Desktop.
Save bjodah/76d2f42684141f01ec350ad6d1edcd41 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"id": "e6b3a39a",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import matplotlib.colors as mc\n",
"import numpy as np\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "240b9448",
"metadata": {},
"outputs": [],
"source": [
"def imshow_with_colorbar(M, cmap, norm=None):\n",
" fig, ax = plt.subplots(1, 1)\n",
" mappable = ax.imshow(M, cmap=cmap, norm=norm or mc.TwoSlopeNorm(0))\n",
" fig.colorbar(mappable)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "61bf2890",
"metadata": {},
"outputs": [],
"source": [
"A = np.arange(-3., 3.).reshape((2, 3))\n",
"B = np.arange(0.0, 6.).reshape((2, 3))"
]
},
{
"cell_type": "markdown",
"id": "0c2f09c3",
"metadata": {},
"source": [
"This looks reasonable:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "c615d153",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAADxCAYAAAA9QIfIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAW/ElEQVR4nO3df5BlZX3n8fenm18WmDA4KyAgYpzFX6OgE6JLskYFRTfFsCvRcXd1yEJNktJNstnsRkKVbuFai2tVzKbiJk7hBDQukAUJk80Ywg8pdguHpXGRkUFkHNd1RiLCICQFQqb7s3+c0+TSdN97uu/p86P786o61feeX/3tO1Pffvo5z/N8ZZuIiOinibYDiIiIpUsSj4josSTxiIgeSxKPiOixJPGIiB5LEo+I6LEk8YiIhkg6SdJXJO2WdJ+kXx/7nhknHhHRDEnHA8fb/pqkFwJ3A+fZ3r3Ue6YlHhHRENsP2f5a+fpvgPuBE8a55yF1BBYRsVK9ceJIP+HpSufu4en7gB8P7Npqe+t850p6GXA6cOc48SWJR0QM8QTT/JcXvKzSuf/kqQd+bHvDqPMkHQVcB/yG7SfGiS9JPCJiCElMHKI673coRQL/ou0vjXu/JPGIiGEEOrSex4eSBHwOuN/279ZxzyTxiIhhRJ0t8TOBDwC7JN1T7vsd2zuWesMk8YiIITQhJl9QT0vc9v8C6uubIUk8ImI4gQ6tNe/WKkk8ImKYertTapckHhExhABNJolHRPSTYCJJPCKir4QmksQjInpJgsnDJtsOY0FJ4hERw4i0xCMi+kvpE4+I6Cspo1MiInpNE90tvZAkHhExjMRkTQtgLYexIpN0jKSbJD1Yfl2zwHnTku4pt+0D+0+RdKekPZKukXTYOPFERNRN5YPNKlsbxv318hHgFtvrgFvK9/N5yvZp5XbuwP5PAp+2/QrgMeDCMeOJiKidJiYqbW0Y97tuBK4sX18JnFf1wnJd3bcB1y7l+oiIRnS8JT5un/ixth8qX/81cOwC5x0haQo4CFxm+8+AFwE/sn2wPGcfQwqGStoCbAGYmDzijS846qVjhh7DHPkTR7Ydwqpw1JHd7WtdKfZ+8+5HbP+Dpd+h50MMJd0MHDfPoUsG39i2JC9wm5Nt75f0cuBWSbuAxxcTaFlsdCvAUUef6tf/3Ly1R6MmP332G9oOYVU486fzy3K5vfcfTX53nOvV98k+ts9a6JikH0g63vZDko4HHl7gHvvLr3sl3UZR4fk64GhJh5St8ROB/Uv4GSIilo9g4pDuTrsf92+57cDm8vVm4Ia5J0haI+nw8vVaivJEu20b+Apw/rDrIyLaVa0/vK+jUy4Dzpb0IHBW+R5JGyRdXp7zKmBK0tcpkvZltneXx34b+E1Jeyj6yD83ZjwREbXrchIf68Gm7UeBt8+zfwq4qHx9B7B+gev3AmeME0NExHIq+sS7+wA6MzYjIkbo9eiUiIhVTSkKERHRW+r46JQk8YiIEdISj4joLeXBZkREb/V9xmZExOqWlnhERG8V5dmSxCMieist8YiIvso48YiIfktLPCKix9ISj4joqa4XhVj2aveSTpP0VUn3SbpX0vsGjl0h6TuS7im308aJJyKifkKTk5W2NjRR7f5J4IO2XwOcA/yepKMHjv8726eV2z1jxhMRUS+t8mr3tr9l+8Hy9fcpSriNUbQ0IqJJK7uyT9Vq9wBIOgM4DPj2wO5PlN0sn54t47bAtVskTUma+rtnFlVjOSJi6QRMTFTbWtBUtXvKQspfADbbnil3X0yR/A+jqGT/28Cl810/t9r9qLgjIurS5QebjVS7l/QTwF8Al9jeOXDv2Vb805L+GPitRUUfEbHMhJC6O068iWr3hwHXA5+3fe2cY8eXX0XRn/6NMeOJiKiXQIdMVtra0ES1+/cC/xi4YJ6hhF+UtAvYBawF/uOY8URE1K7LDzabqHb/J8CfLHD928b5/hERy66Y7dN2FAvKjM2IiBF6/WAzImLVywJYERH9JKm1KfVVJIlHRIzQ5e6U7v6NEBHRBbMPNqtsI2+lbZIellTbcOok8YiIUSZUbRvtCoqFAGuT7pSIiBHqmrFp+3ZJL6vlZqUk8YiIYUTVVjbAWklTA++3lus+LZsk8YiIoRY1OuUR2xuWM5q5ksQjIoaZXYq2o5LEIyKGUjFCpaO6++slIqIj6irPJukq4KvAqZL2Sbpw3NjSEo+IGEbUtgCW7ffXcqMBtUQm6RxJD0jaI+l5xZIlHS7pmvL4nYNDbCRdXO5/QNI764gnIqI+FceI93EpWgBJk8BngLOBfcBdkrbb3j1w2oXAY7ZfIWkT8EngfZJeDWwCXgO8BLhZ0j+0PT1uXBERdZDo9NopdbTEzwD22N5r+xngamDjnHM2AleWr68F3l5W89kIXG37advfAfaU94uI6Ij6pt0vhzq+6wnA9wbe7yv3zXuO7YPA48CLKl4LpNp9RLRIqra1oDcPNlPtPiJa0+Fx4nVEth84aeD9ieW+ec+RdAjwk8CjFa+NiGhPjasYLoc6vutdwDpJp5SV7TcB2+ecsx3YXL4+H7jVtsv9m8rRK6cA64D/XUNMERH1mZystrVg7O4U2wclfRi4EZgEttm+T9KlwJTt7cDngC9I2gMcoEj0lOf9KbAbOAh8KCNTIqJzOjxjs5Y+cds7gB1z9n104PWPgV9c4NpPAJ+oI46IiNpJne4T782DzYiI1qz0lnhExIrW0kPLKpLEIyKGSXdKRETPTXR32n2SeETEUN1eTzxJPCJimFT2iYjoLwNOSzwioq+U0SkREb2WJB4R0VMSzuiUiIgeS594RESPZXRKRERfKaNTIiJ6S3T6wWYtkUk6R9IDkvZI+sg8x39T0m5J90q6RdLJA8emJd1TbnOLSUREtKx4sFlla8PYLXFJk8BngLMpCh3fJWm77d0Dp/0fYIPtJyX9KvCfgfeVx56yfdq4cURELBev8Jb4GcAe23ttPwNcDWwcPMH2V2w/Wb7dSVFLMyKiHzpc7b6OJH4C8L2B9/vKfQu5EPjywPsjJE1J2inpvIUukrSlPG/q7555fKyAIyIq63ih5EYfbEr6l8AG4C0Du0+2vV/Sy4FbJe2y/e2519reCmwFOOroU91IwBGx6q2GtVP2AycNvD+x3Pccks4CLgHeYvvp2f2295df90q6DTgdeF4Sj4hozQrvE78LWCfpFEmHUVSyf84oE0mnA58FzrX98MD+NZIOL1+vBc6kqHwfEdERYkaTlbY2jN0St31Q0oeBG4FJYJvt+yRdCkzZ3g58CjgK+O8q/iz5f7bPBV4FfFbSDMUvlMvmjGqJiGhfh1vitfSJ294B7Jiz76MDr89a4Lo7gPV1xBARsSy08vvEIyJWLKNOjxNPEo+IGCUt8YiIvlJrDy2rSBKPiBgh3SkREX0l0p0SEdFfwvUs+LosksQjIoZYDdPuIyJWtPSJR0T0VkanRET0WrpTIiJ6yhSzNrsqSTwiYhhl2n1ERK91uSXeVLX7CyT9cKCq/UUDxzZLerDcNtcRT0REnayJSlsVo/LlYjVV7R7gGtsfnnPtMcDHKEq2Gbi7vPaxceOKiKiDaxydsoh8WVkd3SnPVrsvg5ytdl8lqHcCN9k+UF57E3AOcNWwi0456TC+8HvDajHHuF58839qO4RV4bafu67tEKKCGrtTxsmX82qy2v17JN0r6VpJszU5q177nGr3Bw4cqCHsiIhqLFXagLWzearctsy5VeWcV1VTDzb/HLjK9tOSfhm4EnjbYm4wWO1+/fr1qXYfEY2xK7fEH7G9YTljmauOlvjIave2Hx2ocH858Maq10ZEtKtYAKvKVkHtOa+pavfHD7w9F7i/fH0j8I6y6v0a4B3lvoiITjAww0SlrYKR+XKxmqp2/2uSzgUOAgeAC8prD0j6OMUPBnDp7EPOiIiuqOvB5kL5cpx7NlXt/mLg4gWu3QZsqyOOiIj6qdbJPvPly3FkxmZExAiLeLDZuCTxiIghsgBWRETPJYlHRPSWmHFWMYyI6KViiGFa4hERvZXulIiIvnJGp0RE9Fpa4hERvaW0xCMi+sqQ0SkREX0203YAQySJR0SMkO6UiIiecs0LYNWtqWr3nx6odP8tST8aODY9cGysdXUjIpaDrUpbGxqpdm/73wyc/6+B0wdu8ZTt08aNIyJiWRimO9ydUkdL/NnqzbafAWarNy/k/YyoZh8R0RWzqxhW2drQZLV7JJ0MnALcOrD7iLIq9E5J5y30TVLtPiLasqK7UxZpE3Ct7emBfSfb3i/p5cCtknbZ/vbcC1PtPiLa4g5nnEaq3Q/YxJyuFNv7y697gdt4bn95RETLxEzFrQ2NVLsHkPRKYA3w1YF9ayQdXr5eC5wJ7J57bUREW8wK706pWO0eiuR+tf2cP0xeBXxW0gzFL5TLBke1RER0wUyHR6c0Uu2+fP8f5rnuDmB9HTFERCwLw0yH+8QzYzMiYojZ7pSuShKPiBihy6NTksQjIkZIjc2IiB5LSzwioqdsMT3T3ZZ4d8tVRER0hF1tG4ekX5R0n6QZSRuqXpckHhExQkMLYH0D+GfA7Yu5KN0pERFDFDU2G/g+9v0A0uJ+GSSJR0SMsIiukrWSpgbeby0X71s2SeIREUPYLObB5iO2F+zPlnQzcNw8hy6xfcNS4ksSj4gYoa4hhrbPqudOfy9JPCJihC6PE8/olIiIEWZcbRuHpH8qaR/wZuAvJN1Y5bq0xCMihmhqASzb1wPXL/a6WlrikrZJeljSNxY4Lkm/L2mPpHslvWHg2GZJD5bb5jriiYioTcWJPm11udTVnXIFcM6Q4+8C1pXbFuAPASQdA3wM+BngDOBjktbUFFNExNgMTM9U29pQSxK3fTswrAT9RuDzLuwEjpZ0PPBO4CbbB2w/BtzE8F8GERGN63JLvKk+8ROA7w2831fuW2j/80jaQtGK5yUvecnyRBkRMY8uV/bpzegU21ttb7C94Zhjjmk7nIhYLVZJn/go+4GTBt6fWO5baH9ERCcYmJmptrWhqSS+HfhgOUrlTcDjth8CbgTeIWlN+UDzHeW+iIjO6HISr6VPXNJVwM9TLP6yj2LEyaEAtv8I2AG8G9gDPAn8UnnsgKSPA3eVt7rU9rAHpBERjfJqqHZv+/0jjhv40ALHtgHb6ogjImI5uMPz7jNjMyJihA7n8CTxiIhR2urvriJJPCJiiDaHD1aRJB4RMUJbU+qrSBKPiBjBHR6ekiQeETHEqhhiGBGxkqVPPCKix2Y63BRPEo+IGKKo7NN2FAtLEo+IGMZmOi3xiIj+coYYRkT0U9GdkpZ4REQ/udvT7puqdv8vyir3uyTdIen1A8f+b7n/HklTdcQTEVEn25W2NtTVEr8C+APg8wsc/w7wFtuPSXoXsJWiwv2st9p+pKZYIiJqY8P09ArvTrF9u6SXDTl+x8DbnRRl2CIieqHDXeKtFEq+EPjywHsDfyXp7rKi/bwkbZE0JWnqwIEU/4mI5szMuNLWhkYfbEp6K0US/9mB3T9re7+kFwM3Sfqm7dvnXmt7K0U3DOvXr+/w78WIWEna7O+uorGWuKTXAZcDG20/Orvf9v7y68PA9cAZTcUUEVGFZ6pt45D0KUnfLAeBXC/p6CrXNZLEJb0U+BLwAdvfGth/pKQXzr6mqHY/7wiXiIi2zNiVtjHdBLzW9uuAbwEXV7moqWr3HwVeBPxXSQAHbW8AjgWuL/cdAvw3239ZR0wREXUoRqcs/0Bx23818HYncH6V65qqdn8RcNE8+/cCr3/+FRER3dFCl/i/Aq6pcmJmbEZEjLCIyj5r50xa3FoOygBA0s3AcfNcd4ntG8pzLgEOAl+s8g2TxCMihvDi+rsfKbuKF7rXWcMulnQB8AvA211xSEySeETECE3U2JR0DvDvKWa3P1n1uiTxiIgRGiqU/AfA4RTzZQB22v6VURcliUdEDNHU2im2X7GU65LEIyKG6vaMzSTxiIhhnELJERG9lpZ4RERPmcYebC5JknhExDB2I9PulypJPCJihLTEIyJ6KtXuIyL6rOOjU5qqdv/zkh4vK9rfI+mjA8fOkfSApD2SPlJHPBERdfKMK21taKraPcD/tP0LgzskTQKfAc4G9gF3Sdpue3dNcUVEjGkVTPYZVe1+iDOAPeW64ki6GtgIJIlHRCfYMH1wuu0wFtRkn/ibJX0d+D7wW7bvA04Avjdwzj7gZ+a7WNIWYEv59umfesW6PpVxWws80nYQi5SYl1/f4oV+xnzquDdY8S3xCr4GnGz7byW9G/gzYN1ibjBY7V7S1LA1e7umb/FCYm5C3+KF/sY81g3cXn93FY0USrb9hO2/LV/vAA6VtBbYD5w0cOqJ5b6IiE6YnbG50h9sDiXpOOAHti3pDIpfHo8CPwLWSTqFInlvAv55EzFFRFQ14xU+Y7NCtfvzgV+VdBB4CthUlh46KOnDwI3AJLCt7CsfZevoUzqlb/FCYm5C3+KF1Rizuz1jU13usI+IaNvRL36t3/Ke6yqdu/2PXnl3088MMmMzImIYw8zMCu9OiYhYybrcndLI6JRxSTpG0k2SHiy/rlngvOmBqf3bW4hz6BICkg6XdE15/M4lTpCqVYWYL5D0w4HP9aI24hyIZ9QSD5L0++XPc6+kNzQd4zwxLXlZijZIOknSVyTtlnSfpF+f55zOfM4V413yZ2yMPVNpa0MvkjjwEeAW2+uAW8r383nK9mnldm5z4T1nCYF3Aa8G3i/p1XNOuxB4rCyI+mngk03GOFfFmAGuGfhcL280yOe7AjhnyPF3UcxBWEcxOewPG4hplCsYHjMUy1LMfsaXNhDTMAeBf2v71cCbgA/N8/+iS59zlXhhqZ+xuz3EsC9JfCNwZfn6SuC89kJZ0LNLCNh+BphdQmDQ4M9xLfB2SWowxrmqxNwptm8HDgw5ZSPweRd2AkdLOr6Z6OZXIeZOsf2Q7a+Vr/8GuJ9idvWgznzOFeMd5zswPT1daWtDX5L4sbYfKl//NXDsAucdIWlK0k5J5zUT2rPmW0Jg7n+kZ8+xfRB4HHhRI9HNr0rMAO8p/2S+VtJJ8xzvkqo/U9e8WdLXJX1Z0mvaDmZW2eV3OnDnnEOd/JyHxAtL/Izd8ZZ4Zx5sSroZOG6eQ5cMviknDC30aZ1se7+klwO3Stpl+9t1x7rK/Dlwle2nJf0yxV8Sb2s5ppVm7GUploOko4DrgN+w/UTb8YwyIt6xPmN3eHRKZ1rits+y/dp5thuAH8z+qVZ+fXiBe+wvv+4FbqP4jdyUKksIPHuOpEOAn6SYudqWkTHbftT20+Xby4E3NhTbUvVuKYchy1K0RtKhFAnxi7a/NM8pnfqcR8U71mfc8ZZ4Z5L4CNuBzeXrzcANc0+QtEbS4eXrtcCZNLuk7V2USwhIOoxiCYG5I2QGf47zgVvd7myrkTHP6ec8l6K/scu2Ax8sR0+8CXh8oCuukyQdN/tsRM9dlqKteAR8Drjf9u8ucFpnPucq8Y73GXd7dEpnulNGuAz4U0kXAt8F3gsgaQPwK7YvAl4FfFbSDMU/0GVNFpewPe8SApIuBaZsb6f4j/YFSXsoHnRtaiq++VSM+dcknUsxAuAAcEFrAVNpiYcdwLuBPcCTwC+1E+nfqxDzQstStOVM4APALkn3lPt+B3gpdPJzrhLvkj9j0+3ybJl2HxExxAvXvNJveOu2Sufefv2ZmXYfEdE1TXSVSPo4xdDNGYrnfhfY/v6o6/rSJx4R0Y7mHmx+yvbrbJ8G/A+g0qzStMQjIoYwbmSI4ZxhkUdSdMePlD7xiIghJP0lRW3RKo4AfjzwfmtZWrLq9/oE8EGKiYBvtf3DkdckiUdENGPYpMZyTszseRcDR9j+2Mh7JolHRHSLpJcCO2y/dtS5ebAZEdEBkgaXAdgIfLPSdWmJR0S0T9J1wKkUQwy/SzGRceRSBkniERE9lu6UiIgeSxKPiOixJPGIiB5LEo+I6LEk8YiIHksSj4josSTxiIge+//+Q0W6O9RrfwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"imshow_with_colorbar(A, plt.cm.coolwarm)"
]
},
{
"cell_type": "markdown",
"id": "c1b45c23",
"metadata": {},
"source": [
"when the range starts at zero, note how the color for zero (grey) is not represented in the colorbar:"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "1d59387e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAWgAAADxCAYAAADm+y3qAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAVDUlEQVR4nO3de7BlZXnn8e+vm1sEExraAAXIpexKJOkI2kNMYU0UCYKToqmKSXAmCg5Ux5RGM9HMSJzSGTKmcJIKVmpMhi5kQGMEB0U6GQxpuYxJYRMa5I5K02qggxJoBA23anzmj70Os/p49qX77N57nXO+n6pVe13etc9zdnU9Z/W73/d9UlVIkrpn2bQDkCTNzQQtSR1lgpakjjJBS1JHmaAlqaNM0JLUUXtNOwBJWkqSfAv4PvACsKOq1vRra4KWpMl7Q1U9NqyRXRyS1FFxJqEk9feaZfvXU/XCSG238Ny9wLOtU+uran27TZJvAk8ABVw8+3qbXRySNMBT9QIf2+uokdr+8o5vPDuoT7nxuqraluQngY1JvlZVX56roV0ckjRBVbWteX0UuBo4sV9bE7QkTUiS/ZO8dGYfOBW4p197uzgkaZBA9s5obXcMbXEIcHUS6OXfv6yqv+nX2AQtSRNSVVuBV43a3i4OSeoon6AlaYAkLNtrxC6OMfMJWpI6ygQtSR1lgpakjrIPWpIGCWTv6TzL+gQtSR1lgpakjrKLQ5IGCQ6zkyTtzAQtSR01rwSd5KAkG5M80Lyu6NPuhSR3NNuG1vljktySZEuSK5PsM594JGnsmsWSRtnGbb5P0B8Arq+qVcD1zfFcnqmq45vtjNb5jwIXVdUr6FUYOHee8UjSojHfBL0WuLzZvxw4c9Qb01tv72Tgqt25X5IWu/mO4jikqh5p9r9Db63TueyXZDO91VIvrKovAAcD36uqmRVUHwYO7/eDkqwD1gG85CUvec2xxx47z9A1yF47nh3eSPOW5/2c97Svbn34sap62bTj2B1DE3SSLwGHznHpg+2Dqqok/SrQHtXU4DoWuCHJ3cCTuxJoU1hxPcDq1avrmi9cvSu3axet3P7AtENYEvb+9v3TDmHRe8mvvu/b87l/mqvZDU3QVXVKv2tJvpvksKp6JMlhwKN93mOmBtfWJDcBJwCfAw5MslfzFH0EsG03fgdJWpTm2we9ATi72T8buGZ2gyQrkuzb7K8ETgLuq6oCbgTeMuh+SVqq5pugLwR+KckDwCnNMUnWJLmkafNKYHOSO+kl5Aur6r7m2n8CfjfJFnp90p+YZzySNF5THGY3ry8Jq+px4I1znN8MnNfs3wys7nP/VgaUHJekpcyZhJLUUSZoSeooV7OTpEFczU6SNJsJWpI6yi4OSRogQJbbxSFJajFBS1JH2cUhSYMEltnFIUlqM0FLUkeZoCWpo+yDlqSBQpYtwD7oUap6Jzk+yVeS3JvkriS/3rp2WZJvtip+Hz+feCRpMZlEVe+ngbdX1c8ApwEfS3Jg6/rvtSp+3zHPeCRp0djjVb2r6htV9UCz/0/0ymItyAKOkpagQJYvG2kb+S2T5Um+muSvB7Wbb4Ietar3TFAnAvsAD7ZOf6Tp+rhopjRWn3vXJdmcZPP27dvnGbYkTdV7gaEVg4cm6CRfSnLPHNvadrumxmC/qt40RWU/Bbyjqn7YnD4f+GngXwEH0SuBNaeqWl9Va6pqzUEHHTQsbEnqpCRHAP8GuGRY24lU9U7y48D/AT5YVZta7z3z9P1ckv8FvH9YPJLUYSuTbG4dr6+q9bPafAz4j8BLh73ZfIfZzVT1vpD+Vb33Aa4GPllVV826NpPcQ6//+p55xiNJYxV2aar3Y1W1pu97Jb8MPFpVtyV5/bA3m0RV718D/jVwzhzD6T6d5G7gbmAl8N/mGY8kddlJwBlJvgVcAZyc5C/6NZ5EVe+/AOYMoKpOns/Pl6SFpKrOp/fdG80T9Pur6jf6tXcmoSQNEqY2k9AELUlTUFU3ATcNauNiSZLUUT5BS9JAccF+SdLOTNCS1FEmaEnqKPugJWmABGIftCSpzQQtSR1lF4ckDZFl03mW9QlakjrKBC1JHTWWBJ3ktCRfT7IlyY8Ujk2yb5Irm+u3JDm6de385vzXk7xpHPFI0mIw7wSdZDnwceB04DjgrUmOm9XsXOCJqnoFcBHw0ebe44CzgJmK33/WvJ8kdUOzmt0o27iN4wn6RGBLVW2tqufpLUK9dlabdvXvq4A3NlVU1gJXVNVzVfVNYEvzfpK05I0jQR8OPNQ6frg5N2ebqtoBPAkcPOK9gFW9JS09C+ZLQqt6S5qO3mp2o2zjNo4EvQ04snV8RHNuzjZJ9gJ+Anh8xHslaUkaR4K+FViV5JimgvdZ9Kp9t81U/wZ4C3BDVVVz/qxmlMcxwCrgH8YQkyQtePOeSVhVO5K8G7gOWA5cWlX3JrkA2FxVG4BPAJ9KsgXYTi+J07T7LHAfsAN4V1W9MN+YJGlcstBrElbVtcC1s859qLX/LPCrfe79CPCRccQhSYvJgvmSUJKWGhO0JHWUq9lJ0hCuZidJ2okJWpI6yi4OSRpkisPsfIKWpI4yQUtSR5mgJamj7IOWpIH2zEp1o/AJWpI6ygQtSR1lF4ckDTDN1ex8gpakjhpLgk5yWpKvJ9mS5ANzXP/dJPcluSvJ9UmOal17IckdzTZ7oX9JWjSS7JfkH5LcmeTeJP91UPt5d3EkWQ58HPglekVfb02yoaruazX7KrCmqp5O8lvAfwd+vbn2TFUdP984JGlPGeNiSc8BJ1fVD5LsDfx9ki9W1aa5Go/jp54IbKmqrVX1PHAFsLbdoKpurKqnm8NN9GoPStKSUj0/aA73brbq134cCfpw4KHW8cPNuX7OBb7YOt4vyeYkm5Kc2e+mJOuadpu3b98+r4AlaQ9ZOZOnmm3d7AZJlie5A3gU2FhVt/R7s4mO4kjyG8Aa4Bdbp4+qqm1JjgVuSHJ3VT04+96qWg+sB1i9enXfvziSNEWPVdWaQQ2auqvHJzkQuDrJz1bVPXO1HccT9DbgyNbxEc25nSQ5BfggcEZVPdcKdlvzuhW4CThhDDFJ0ng0w+xG2XZFVX0PuBE4rV+bcSToW4FVSY5Jsg+9it07jcZIcgJwMb3k/Gjr/Iok+zb7K4GT6FX4lqRFJ8nLmidnkvwYvcEVX+vXft5dHFW1I8m7geuA5cClVXVvkguAzVW1Afgj4ADgfycB+MeqOgN4JXBxkh/S+2Nx4azRH5K0mBwGXN6MflsGfLaq/rpf47H0QVfVtcC1s859qLV/Sp/7bgZWjyMGSdozdr37op+quotd6MZ1JqEkdZQJWpI6ysWSJGkIF0uSJO3EBC1JHWWClqSOsg9akgboLdg/nWdZn6AlqaNM0JLUUXZxSNIQy5Y7zE6S1GKClqSOMkFLUkdNqqr3OUn+uVW9+7zWtbOTPNBsZ48jHkkam4y2WP+emA4+qareAFdW1btn3XsQ8GF6ZbAKuK2594n5xiVJC904RnG8WNUbIMlMVe9RFt5/E72iidubezfSK//ymUE3Ld/+HQ684o/nFbQG23b7lmmHsCQ8eM1DwxtpyZpkVe9fSXJXkquSzNQwHLkieLuq9+P/8uwYwpak0WTZspG2cZvUl4R/BRxdVT8HbAQu39U3qKr1VbWmqtYcvP9+Yw9QkrpmIlW9q+rxViXvS4DXjHqvJC1Vk6rqfVjr8Azg/mb/OuDUprr3CuDU5pwkdUJvsaQFOopjxKre70lyBrAD2A6c09y7Pckf0EvyABfMfGEoSUvdpKp6nw+c3+feS4FLxxGHJC0mziSUpI5yNTtJGsKisZKknZigJamj7OKQpIFiTUJJ0s5M0JLUUSZoSeoo+6AlaZA4zE6SNIsJWpI6yi4OSRrIYXaSpFkmVdX7olZF728k+V7r2gutaxtm3ytJi0WSI5PcmOS+JPcmee+g9hOp6l1V/6HV/reBE1pv8UxVHT/fOCRpj8nYRnHsAN5XVbcneSlwW5KN7XzZNo4n6BerelfV88BMVe9+3sqQqt2StBhV1SNVdXuz/3161aXmLJQNk63qTZKjgGOAG1qn92uqdW9Kcma/H2JVb0kLwMqZPNVs6/o1THI0vd6EW/q1mfQojrOAq6rqhda5o6pqW5JjgRuS3F1VD86+sarWA+sBjj/8ZTWZcCVplzxWVWuGNUpyAPA54Heq6ql+7SZS1bvlLGZ1b1TVtuZ1K3ATO/dPS9JUjbtobJK96SXnT1fV5we1nUhV7yaonwZWAF9pnVuRZN9mfyVwEjBnZ7kkLXRJAnwCuL+q/mRY+3kn6KraAcxU9b4f+OxMVe+mkveMs4ArqqrdPfFKYHOSO4EbgQv7fZspSYvAScDbgJNbw4vf3K/xRKp6N8f/ZY77bgZWjyMGSdpTxjWTsKr+Hhh5zJ4zCSWpo0zQktRRJmhJ6ihXs5OkQTL6ELpx8wlakjrKBC1JHWUXhyQN4YL9kqSdmKAlqaPs4pCkIRzFIUnaiQlakjrKBC1JHWUftCQNMLNg/zSM5Qk6yaVJHk1yT5/rSfKnSbYkuSvJq1vXzk7yQLOdPY54JGkxGFcXx2XAaQOunw6sarZ1wJ8DJDkI+DDw8/Sqg384yYoxxSRJC9pYEnRVfRnYPqDJWuCT1bMJODDJYcCbgI1Vtb2qngA2MjjRS9KEBZYtG20bs0l9SXg48FDr+OHmXL/zPyLJuplS5o//y7N7LFBJ6ooFM4qjqtZX1ZqqWnPw/vtNOxxJ2uMmlaC3AUe2jo9ozvU7L0lL3qQS9Abg7c1ojtcCT1bVI/QqgZ+aZEXz5eCpzTlJ6owkI23jNpZx0Ek+A7weWJnkYXojM/YGqKr/Sa/i95uBLcDTwDuaa9uT/AFwa/NWF1TVoC8bJWnJGEuCrqq3DrlewLv6XLsUuHQccUjSYuJMQkkaJC7YL0maxQQtSR1lF4ckDZSFvViSJGn8TNCS1FEmaEnqKPugJWmQsEdWqhuFT9CS1FEmaEnqKLs4JGkIh9lJ0iI3rH7rbCZoSZqcy9iFsn6Tqur975pq3ncnuTnJq1rXvtWcvyPJ5nHEI0ldNEL91p2Mqw/6MuB/AJ/sc/2bwC9W1RNJTgfW06vkPeMNVfXYmGKRpLEJIRn5WXblrAfN9VW1fnd/9rjWg/5ykqMHXL+5dbiJXmkrSVpsHquqNeN6s2n0QZ8LfLF1XMDfJrktybp+N1nVW9JSM9FhdkneQC9Bv651+nVVtS3JTwIbk3yt6afZSfPfhPUAxx/+sppIwJIUYLEPs0vyc8AlwNqqenzmfFVta14fBa4GTpxUTJI0SU391q8AP5Xk4STnDmo/kSfoJC8HPg+8raq+0Tq/P7Csqr7f7J8KXDCJmCRp0obVb51tUlW9PwQcDPxZU5p8R9ORfghwdXNuL+Avq+pvxhGTJI3LtGoSTqqq93nAeXOc3wq86kfvkCQ5k1CSOsoELUkd5Wp2kjSEq9lJknZigpakjrKLQ5IGSWD0xZLGyidoSeooE7QkdZQJWpI6yj5oSRrCYXaSpJ2YoCWpo+zikKRhprSa3aSqer8+yZNN5e47knyode20JF9PsiXJB8YRjyQtBuP6s3AZcNqQNn9XVcc32wUASZYDHwdOB44D3prkuDHFJEkL2lgSdFNDcPtu3HoisKWqtlbV88AVwNpxxCRJ45Bk5G3cJtkH/QtJ7gT+CXh/Vd0LHA481GrzMPDzc93cVPyeqfr93MH/+eI5u1M6aiXw2LSD2EXGvOcttHhhYcb8U9MOYHdNKkHfDhxVVT9I8mbgC8CqXXmDdlXvJJubklkLwkKLF4x5EhZavLBwY552DLtrIl9NVtVTVfWDZv9aYO8kK4FtwJGtpkc05yRpyZtUVe9Dge9WVSU5kd4fhseB7wGrkhxDLzGfBfzbScQkSSNbyEVjR6jq/Rbgt5LsAJ4BzqqqAnYkeTdwHbAcuLTpmx5m/TjinqCFFi8Y8yQstHjBmCcqvTwpSZrLq19+aP3f33vbSG1//D1/fNs4++idSShJQ7hYkiRpJwsiQSc5KMnGJA80ryv6tHuhNZ18wxTiHDhtPcm+Sa5srt+S5OhJxzhHTMNiPifJP7c+1/OmEWcrnmHLCiTJnza/z11JXj3pGOeIabeXQpiGJEcmuTHJfUnuTfLeOdp05nMeMd5OfcajWhAJGvgAcH1VrQKub47n8kxrOvkZkwtv5Gnr5wJPVNUrgIuAj04yxtl2Yar9la3P9ZKJBvmjLmPwsgKn0xtjv4rexKY/n0BMw1zGbiyFMEU7gPdV1XHAa4F3zfHvokuf8yjxQrc+45EslAS9Fri82b8cOHN6ofQ1yrT19u9xFfDG7In5oaNbcFPtR1hWYC3wyerZBByY5LDJRDe3eSyFMBVV9UhV3d7sfx+4n96s37bOfM4jxrv7ZorGjrKN2UJJ0IdU1SPN/neAQ/q02y/J5iSbkpw5mdBeNNe09dn/SF5sU1U7gCeBgycS3dxGiRngV5r/xl6V5Mg5rnfJqL9T1/xCkjuTfDHJz0w7mBlNN9wJwC2zLnXycx4QL3T0Mx6kM6M4knwJOHSOSx9sHzSTXfqNDTyqqrYlORa4IcndVfXguGNdYv4K+ExVPZfkN+n9D+DkKce02Mx7KYQ9IckBwOeA36mqp6YdzzBD4u3kZzxMZ56gq+qUqvrZObZrgO/O/PepeX20z3tsa163AjfR+0s6KaNMW3+xTZK9gJ+gN6NyWobGXFWPV9VzzeElwGsmFNvuWnDLBwxYCmFqkuxNL9l9uqo+P0eTTn3Ow+Kd92e8LKNtY9aZBD3EBuDsZv9s4JrZDZKsSLJvs78SOAm4b2IRwq0009aT7ENv2vrskSTt3+MtwA013ZlCQ2Oe1a94Br3+vS7bALy9GWXwWuDJVvdYJyU5dOa7iOy8FMK04gnwCeD+qvqTPs068zmPEm/XPuNRdaaLY4gLgc8mORf4NvBrAEnWAO+sqvOAVwIXJ/khvQ//wqqaWIKuqjmnrSe5ANhcVRvo/SP6VJIt9L40OmtS8c1lxJjfk+QMet+UbwfOmVrAjLSswLXAm4EtwNPAO6YT6f83Qsz9lkKYlpOAtwF3J7mjOff7wMuhk5/zKPF27TMeiVO9JWmAVx91WP3d7//7kdoe8M4/HOtU74XSxSFJi0J2oQ6rCVqSJmQXJocBJmhJmqRdmhy2UL4klKSp+Oo/fue6A975h6MOydsvO5fYWt+U65sxch1WMEFL0kBVNWwdlT3GLg5JmpxdmuBjgpakyRllQtuL7OKQpAnpNzmsX3snqkhSR9nFIUkdZYKWpI4yQUtSR5mgJamjTNCS1FEmaEnqKBO0JHXU/wOTnaBXaKJ5bQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"imshow_with_colorbar(B, plt.cm.coolwarm)"
]
},
{
"cell_type": "markdown",
"id": "e73919b8",
"metadata": {},
"source": [
"the bug is more apparent using another colormap (hsv):"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "dcb5b8e5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"imshow_with_colorbar(B, plt.cm.hsv)"
]
},
{
"cell_type": "markdown",
"id": "f402b202",
"metadata": {},
"source": [
"below is not a bug *per se*, just a possible area of improvement: the colorbar get no tick printed on negative side when magnitudes differ, so there is no way to estimate the magnitude by only looking at the plot:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "ff5d18ec",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"B2 = B - 1e-10\n",
"imshow_with_colorbar(B2, plt.cm.coolwarm)"
]
},
{
"cell_type": "markdown",
"id": "516a71fb",
"metadata": {},
"source": [
"one possible remedy is to manually set the lower bound to a value of simliar magnitude"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "d8d5d359",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"m = np.max(np.abs(2))\n",
"imshow_with_colorbar(B2, plt.cm.coolwarm, norm=mc.TwoSlopeNorm(vmin=-m, vcenter=0, vmax=m))"
]
},
{
"cell_type": "markdown",
"id": "55b1de39",
"metadata": {},
"source": [
"but then we cannot tell if we are in the negative or not by simply looking at the color"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment