Files
jupyter-collection/scientific-computing-2/auto_examples_jupyter_2/plot_polar.ipynb

92 lines
107 KiB
Plaintext
Raw Normal View History

2025-10-21 11:20:44 +08:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"# Plotting in polar coordinates\n",
"\n",
"A simple example showing how to plot in polar coordinates with\n",
"matplotlib.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"jet = matplotlib.colormaps[\"jet\"]\n",
"\n",
"ax = plt.axes((0.025, 0.025, 0.95, 0.95), polar=True)\n",
"\n",
"N = 20\n",
"theta = np.arange(0.0, 2 * np.pi, 2 * np.pi / N)\n",
"rng = np.random.default_rng()\n",
"radii = 10 * rng.random(N)\n",
"width = np.pi / 4 * rng.random(N)\n",
"bars = plt.bar(theta, radii, width=width, bottom=0.0)\n",
"\n",
"for r, bar in zip(radii, bars, strict=True):\n",
" bar.set_facecolor(jet(r / 10.0))\n",
" bar.set_alpha(0.5)\n",
"\n",
"ax.set_xticklabels([])\n",
"ax.set_yticklabels([])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.12.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}