Skip to content

Instantly share code, notes, and snippets.

@taka-wang
Last active March 23, 2020 10:24
Show Gist options
  • Save taka-wang/bd9b22db366333a153a6d1340e8dda4c to your computer and use it in GitHub Desktop.
Save taka-wang/bd9b22db366333a153a6d1340e8dda4c to your computer and use it in GitHub Desktop.
ai basic1 snippets
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Import Packages"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# modified from here https://stackoverflow.com/questions/9170838/surface-plots-in-matplotlib\n",
"import numpy as np\n",
"# Axes3D import has side effects, it enables using projection='3d' in add_subplot\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import matplotlib.pyplot as plt\n",
"import random"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate Mesh Data"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def fun(x, y):\n",
" return x**2 + y**2\n",
"\n",
"x = y = np.arange(-1.0, 1.0, 0.1)\n",
"X, Y = np.meshgrid(x, y)\n",
"zs = np.array(fun(np.ravel(X), np.ravel(Y)))\n",
"Z = zs.reshape(X.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot 3D Mesh"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"ax.plot_surface(X, Y, Z, alpha = 1, zorder = 0.9)\n",
"\n",
"''' Change style for transparent export\n",
"# https://stackoverflow.com/questions/1982770/matplotlib-changing-the-color-of-an-axis\n",
"# https://stackoverflow.com/questions/53549960/setting-tick-colors-of-matplotlib-3d-plot?noredirect=1&lq=1\n",
"ax.w_xaxis.line.set_color('white')\n",
"ax.w_yaxis.line.set_color('white')\n",
"ax.w_zaxis.line.set_color('white')\n",
"ax.w_zaxis.line.set_color('white')\n",
"ax.tick_params(axis='x', colors='white')\n",
"ax.tick_params(axis='y', colors='white')\n",
"ax.tick_params(axis='z', colors='white')\n",
"ax.yaxis.label.set_color('white')\n",
"ax.xaxis.label.set_color('white')\n",
"'''\n",
"\n",
"# labels\n",
"ax.set_xlabel('x')\n",
"ax.set_ylabel('y')\n",
"#ax.set_zlabel('Z Label')\n",
"\n",
"# ticks\n",
"plt.xticks(np.linspace(-1, 1, 5))\n",
"plt.yticks(np.linspace(-1, 1, 5))\n",
"ax.set_zticks(np.linspace(0, 2, 5)) # trick\n",
"\n",
"# another plane\n",
"'''\n",
"yy, zz = np.meshgrid(np.arange(-1.0, 1.0, 0.05), np.arange(0.0, 2.0, 0.05))\n",
"xx = yy*0\n",
"ax.plot_surface(-0.3, yy, zz, alpha = 0.5, zorder = 0.1)\n",
"'''\n",
"\n",
"# single point\n",
"ax.plot([-0.8], [0.5] ,[fun(-0.8, 0.5)], marker='o', markersize=3, color=\"red\", zorder = 2.9)\n",
"\n",
"# export or display\n",
"#plt.savefig('hello.png', dpi=300, transparent=True)\n",
"plt.show()\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment