Files

104 lines
24 KiB
Plaintext
Raw Permalink Normal View History

2025-10-21 11:20:44 +08:00
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"# 3D plotting\n",
"\n",
"Demo 3D plotting with matplotlib and style the figure.\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 matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d.axes3d import Axes3D, get_test_data\n",
"\n",
"ax: Axes3D = plt.figure().add_subplot(projection=\"3d\")\n",
"X, Y, Z = get_test_data(0.05)\n",
"cset = ax.contourf(X, Y, Z)\n",
"ax.clabel(cset, fontsize=9, inline=1)\n",
"\n",
"plt.xticks([])\n",
"plt.yticks([])\n",
"ax.set_zticks([])\n",
"\n",
"\n",
"ax.text2D(\n",
" -0.05,\n",
" 1.05,\n",
" \" 3D plots \\n\",\n",
" horizontalalignment=\"left\",\n",
" verticalalignment=\"top\",\n",
" bbox={\"facecolor\": \"white\", \"alpha\": 1.0},\n",
" family=\"DejaVu Sans\",\n",
" size=\"x-large\",\n",
" transform=plt.gca().transAxes,\n",
")\n",
"\n",
"ax.text2D(\n",
" -0.05,\n",
" 0.975,\n",
" \" Plot 2D or 3D data\",\n",
" horizontalalignment=\"left\",\n",
" verticalalignment=\"top\",\n",
" family=\"DejaVu Sans\",\n",
" size=\"medium\",\n",
" transform=plt.gca().transAxes,\n",
")\n",
"\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
}