2024-heraklion-scientific-p.../notebooks/walker/Step_2_plotting/solution/Step_2_plotting.ipynb

168 lines
160 KiB
Plaintext
Raw Normal View History

2024-08-27 14:52:41 +02:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2022-08-18T09:50:40.616906Z",
"start_time": "2022-08-18T11:50:40.181358+02:00"
},
"execution": {
"iopub.execute_input": "2022-08-20T06:27:54.689Z",
"iopub.status.busy": "2022-08-20T06:27:54.685Z",
"iopub.status.idle": "2022-08-20T06:27:55.297Z",
"shell.execute_reply": "2022-08-20T06:27:55.319Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"from walker import Walker\n",
"from plotting import plot_trajectory, plot_trajectory_hexbin"
]
},
{
"cell_type": "markdown",
"metadata": {
"pycharm": {
"name": "#%% md\n"
}
},
"source": [
"# Simulate a trajectory"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2022-08-20T06:27:55.307Z",
"iopub.status.busy": "2022-08-20T06:27:55.303Z",
"iopub.status.idle": "2022-08-20T06:27:56.162Z",
"shell.execute_reply": "2022-08-20T06:27:56.165Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"# Create a Walker instance\n",
"walker = Walker(sigma_i=3, sigma_j=4, size=200, map_type='hills')\n",
"\n",
"# Sample a next step 1000 times\n",
"i, j = 100, 50\n",
"trajectory = []\n",
"for _ in range(1000):\n",
" i, j = walker.sample_next_step(i, j)\n",
" trajectory.append((i, j))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2022-08-20T06:27:56.177Z",
"iopub.status.busy": "2022-08-20T06:27:56.172Z",
"iopub.status.idle": "2022-08-20T06:27:56.321Z",
"shell.execute_reply": "2022-08-20T06:27:56.344Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 480x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_trajectory(trajectory, walker.context_map)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 400x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_trajectory_hexbin(trajectory)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"hide_input": false,
"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.11"
},
"nteract": {
"version": "0.28.0"
},
"toc": {
"nav_menu": {
"height": "12px",
"width": "252px"
},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 4,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 1
}