{ "metadata": { "name": "", "signature": "sha256:3ab22c9822bb0cd569879204ff82355a86db273ce5c9d967eec2c035118257e0" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# And that was only for one dimension\n", "\n", "## Second dimension will need 3D plots\n", "\n", "### How to plot 3D histograms in python! Yay!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "#! /usr/bin/env python\n", "from mpl_toolkits.mplot3d import Axes3D\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "#\n", "# Assuming you have \"2D\" dataset like the following that you need\n", "# to plot.\n", "#\n", "data_2d = [ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n", " [6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n", " [11, 12, 13, 14, 15, 16, 17, 18 , 19, 20],\n", " [16, 17, 18, 19, 20, 21, 22, 23, 24, 25],\n", " [21, 22, 23, 24, 25, 26, 27, 28, 29, 30] ]\n", "#\n", "# Convert it into an numpy array.\n", "#\n", "data_array = np.array(data_2d)\n", "#\n", "# Create a figure for plotting the data as a 3D histogram.\n", "#\n", "fig = plt.figure()\n", "ax = fig.add_subplot(111, projection='3d')\n", "#\n", "# Create an X-Y mesh of the same dimension as the 2D data. You can\n", "# think of this as the floor of the plot.\n", "#\n", "x_data, y_data = np.meshgrid( np.arange(data_array.shape[1]),\n", " np.arange(data_array.shape[0]) )\n", "#\n", "# Flatten out the arrays so that they may be passed to \"ax.bar3d\".\n", "# Basically, ax.bar3d expects three one-dimensional arrays:\n", "# x_data, y_data, z_data. The following call boils down to picking\n", "# one entry from each array and plotting a bar to from\n", "# (x_data[i], y_data[i], 0) to (x_data[i], y_data[i], z_data[i]).\n", "#\n", "x_data = x_data.flatten()\n", "y_data = y_data.flatten()\n", "z_data = data_array.flatten()\n", "ax.bar3d( x_data,\n", " y_data,\n", " np.zeros(len(z_data)),\n", " 1, 1, z_data )\n", "#\n", "# Finally, display the plot.\n", "#\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nbLl2l9Fd0wAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "squareGridMatrix[n_] := \n", " Table[Table[\n", " If [(j == i + 1 && \n", " Quotient[j - 1, n] == Quotient[i - 1, n]) || (j == i - 1 && \n", " Quotient[j - 1, n] == Quotient[i - 1, n]) || j == i - n || \n", " j == i + n, 1, 0], {j, n^2}], {i, n^2}]" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "\n", "\n", "def square_grid_matrix(n):\n", " adjacency_matrix = np.zeros((n * n, n * n))\n", " for i in range(n ** 2):\n", " for j in range(n ** 2):\n", " if j == i + 1 and j // n == i // n:\n", " adjacency_matrix[i, j] = 1\n", " elif j == i - 1 and j // n == i // n:\n", " adjacency_matrix[i, j] = 1\n", " elif j == i + n:\n", " adjacency_matrix[i, j] = 1\n", " elif j == i - n:\n", " adjacency_matrix[i, j] = 1\n", " markov_matrix = adjacency_matrix / 4\n", " print(markov_matrix)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "square_grid_matrix(3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0. 0.25 0. 0.25 0. 0. 0. 0. 0. ]\n", " [ 0.25 0. 0.25 0. 0.25 0. 0. 0. 0. ]\n", " [ 0. 0.25 0. 0. 0. 0.25 0. 0. 0. ]\n", " [ 0.25 0. 0. 0. 0.25 0. 0.25 0. 0. ]\n", " [ 0. 0.25 0. 0.25 0. 0.25 0. 0.25 0. ]\n", " [ 0. 0. 0.25 0. 0.25 0. 0. 0. 0.25]\n", " [ 0. 0. 0. 0.25 0. 0. 0. 0.25 0. ]\n", " [ 0. 0. 0. 0. 0.25 0. 0.25 0. 0.25]\n", " [ 0. 0. 0. 0. 0. 0.25 0. 0.25 0. ]]\n" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "1" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }