Files

83 lines
111 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",
"A simple example of 3D plotting.\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",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"\n",
"ax: Axes3D = plt.figure().add_subplot(projection=\"3d\")\n",
"x = np.arange(-4, 4, 0.25)\n",
"y = np.arange(-4, 4, 0.25)\n",
"X, Y = np.meshgrid(x, y)\n",
"R = np.sqrt(X**2 + Y**2)\n",
"Z = np.sin(R)\n",
"\n",
"ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=\"hot\")\n",
"ax.contourf(X, Y, Z, zdir=\"z\", offset=-2, cmap=\"hot\")\n",
"ax.set_zlim(-2, 2)\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
}