{ "cells": [ { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import math as m\n", "import numpy as np\n", "from numpy import random as r\n", "import time\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits import mplot3d\n", "import copy as cp\n", "import plotly\n", "import plotly.graph_objs as go\n", "\n", "# Configure Plotly to be rendered inline in the notebook.\n", "plotly.offline.init_notebook_mode()\n", "\n", "%matplotlib inline\n", "r.seed(int(time.time()))\n", "route = list()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "class settings:\n", " iter_max = 10000\n", " pop_size = 100\n", " dimensions = 2\n", " c1 = 2\n", " c2 = 2\n", " neededQuality = 1000000\n", " objective = 0\n", " sigma = 0.001" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def func(Sc):\n", " x1 = Sc[0]\n", " x2 = Sc[1]\n", " return m.sqrt(x1**2+x2**2)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def Quality(Sc,objective):\n", " func_output = func(Sc)\n", " if type(func_output) == list:\n", " error = [func_output[i]-objective[i] for i in range(len(func_output))]\n", " else:\n", " error = func_output - objective\n", " return 1/abs(error)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "def tweak(St,twprob,sigma,high,low):\n", " for i in range(len(St)):\n", " if twprob > r.random():\n", " while True:\n", " n = r.normal(loc=0, scale=sigma)\n", " if (high > St[i]+n) and (low < St[i]+n):\n", " St[i]+=n\n", " break\n", " return np.array(St)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def move(p,world,best):\n", " v = p.v + world.c1 * r.random() * (p.best - p.params) \\\n", " + world.c2 * r.random() * (best.params - p.params)\n", " \n", " return v" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "def simulatedAnnealing(high,low,t,twprob,world):\n", " route = list()\n", " #initialize the particles\n", " particles = []\n", " for i in range(world.pop_size):\n", " p = Particle()\n", " p.params = np.array([r.uniform(-100,100) for i in range(world.dimensions)])\n", " p.fitness = 0.0\n", " p.v = 0.0\n", " particles.append(p)\n", " \n", " Best = cp.deepcopy(particles[0])\n", " Q = 0\n", " route.append(cp.deepcopy(Best.params[:]))\n", " for i in range(world.iter_max):\n", " for p in particles:\n", " Q = Quality(p.params,world.objective)\n", " try:\n", " prob = m.e**((Q-p.fitness)/t)\n", " except:\n", " pass\n", " \n", " if (Q > p.fitness) or (r.random() < prob):\n", " p.fitness = Q\n", " p.best = p.params\n", " \n", " if t > 0.01:\n", " t-= t/10\n", " \n", " if Q > Best.fitness:\n", " Best = cp.deepcopy(p)\n", " route.append(Best.params[:])\n", " print('////////////\\n////////////\\n******new Best: {}'.format(Best.params))\n", " \n", " v = move(p,world,Best)\n", " p.params += v\n", " p.params = tweak(cp.deepcopy(p.params),twprob,world.sigma,high,low)\n", " \n", " if Q > world.neededQuality:\n", " break\n", " \n", " return Best, route" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "class Particle:\n", " pass" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "#initialize the particles\n", "world = settings()\n", "particles = []\n", "for i in range(world.pop_size):\n", " p = Particle()\n", " p.params = np.array([r.random() for i in range(world.dimensions)])\n", " p.fitness = 0.0\n", " p.v = 0.0\n", " particles.append(p)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "////////////\n", "////////////\n", "******new Best: [ 8.80091737 54.31489738]\n", "////////////\n", "////////////\n", "******new Best: [ 0.90003976 32.42886985]\n", "////////////\n", "////////////\n", "******new Best: [-14.25252957 -12.22367071]\n", "////////////\n", "////////////\n", "******new Best: [-0.21023678 1.75864441]\n", "////////////\n", "////////////\n", "******new Best: [-0.21023678 1.7585004 ]\n", "////////////\n", "////////////\n", "******new Best: [-0.321148 -1.30557749]\n", "////////////\n", "////////////\n", "******new Best: [-1.16680824 -0.52723487]\n", "////////////\n", "////////////\n", "******new Best: [-0.01933279 0.38534687]\n", "////////////\n", "////////////\n", "******new Best: [0.06641201 0.0600155 ]\n", "////////////\n", "////////////\n", "******new Best: [0.05225936 0.06420853]\n", "////////////\n", "////////////\n", "******new Best: [-0.0381331 0.00451434]\n", "////////////\n", "////////////\n", "******new Best: [-0.03334581 0.00023158]\n", "////////////\n", "////////////\n", "******new Best: [-0.01656216 -0.01598667]\n", "////////////\n", "////////////\n", "******new Best: [-0.01018823 -0.00708454]\n", "////////////\n", "////////////\n", "******new Best: [ 0.00693716 -0.00165677]\n", "////////////\n", "////////////\n", "******new Best: [ 0.00269686 -0.00636808]\n", "////////////\n", "////////////\n", "******new Best: [ 0.0025804 -0.00331996]\n", "////////////\n", "////////////\n", "******new Best: [ 0.0031575 -0.00258449]\n", "////////////\n", "////////////\n", "******new Best: [ 0.00207138 -0.00215465]\n", "////////////\n", "////////////\n", "******new Best: [ 0.00161053 -0.00233385]\n", "////////////\n", "////////////\n", "******new Best: [ 0.00019309 -0.0011909 ]\n", "////////////\n", "////////////\n", "******new Best: [0.00023637 0.00020185]\n", "////////////\n", "////////////\n", "******new Best: [ 0.0002592 -0.0001078]\n", "////////////\n", "////////////\n", "******new Best: [-0.000109 -0.00023383]\n", "////////////\n", "////////////\n", "******new Best: [2.14326952e-04 4.09178763e-05]\n", "////////////\n", "////////////\n", "******new Best: [ 1.96352778e-04 -7.67010934e-05]\n", "////////////\n", "////////////\n", "******new Best: [0.00010629 0.00017847]\n", "////////////\n", "////////////\n", "******new Best: [ 1.29681180e-04 -8.66467184e-06]\n", "////////////\n", "////////////\n", "******new Best: [-1.35549682e-05 -2.06371552e-05]\n", "////////////\n", "////////////\n", "******new Best: [-6.72719898e-06 -1.45844374e-05]\n", "////////////\n", "////////////\n", "******new Best: [-9.29702968e-06 5.47138433e-07]\n", "////////////\n", "////////////\n", "******new Best: [-8.94573240e-06 -1.52135637e-06]\n", "////////////\n", "////////////\n", "******new Best: [-2.92114219e-07 6.44970596e-06]\n", "////////////\n", "////////////\n", "******new Best: [-4.80211347e-06 2.14761437e-06]\n", "////////////\n", "////////////\n", "******new Best: [-4.75484093e-06 4.49045730e-07]\n", "////////////\n", "////////////\n", "******new Best: [-2.96136818e-06 -4.56184922e-07]\n", "////////////\n", "////////////\n", "******new Best: [-2.05783627e-06 -6.00801209e-07]\n", "////////////\n", "////////////\n", "******new Best: [ 1.88129246e-06 -4.87863133e-07]\n", "////////////\n", "////////////\n", "******new Best: [1.86577718e-06 6.63715928e-08]\n", "////////////\n", "////////////\n", "******new Best: [-8.92296012e-07 6.52741211e-07]\n", "////////////\n", "////////////\n", "******new Best: [-5.44326882e-07 8.18734726e-07]\n", "////////////\n", "////////////\n", "******new Best: [5.33408916e-07 2.63689230e-08]\n", "////////////\n", "////////////\n", "******new Best: [4.09105502e-07 3.35688869e-08]\n", "////////////\n", "////////////\n", "******new Best: [ 1.69180715e-08 -2.43391724e-08]\n", "////////////\n", "////////////\n", "******new Best: [ 1.03079214e-08 -2.54900928e-08]\n", "////////////\n", "////////////\n", "******new Best: [-5.02785069e-09 1.69569567e-08]\n", "////////////\n", "////////////\n", "******new Best: [-1.19640956e-08 7.66106298e-09]\n", "////////////\n", "////////////\n", "******new Best: [-9.48263415e-09 7.86956390e-09]\n", "////////////\n", "////////////\n", "******new Best: [-9.48713327e-09 7.53082012e-09]\n", "////////////\n", "////////////\n", "******new Best: [-2.18178192e-09 3.80470277e-09]\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mworld\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msettings\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msimulatedAnnealing\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhigh\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlow\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m-\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mt\u001b[0m \u001b[0;34m=\u001b[0m\u001b[0;36m100\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtwprob\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0.2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mworld\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mworld\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36msimulatedAnnealing\u001b[0;34m(high, low, t, twprob, world)\u001b[0m\n\u001b[1;32m 35\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mworld\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mBest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 36\u001b[0m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparams\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 37\u001b[0;31m \u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparams\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtweak\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdeepcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mtwprob\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mworld\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msigma\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mhigh\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mlow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 38\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mQ\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mworld\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mneededQuality\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mtweak\u001b[0;34m(St, twprob, sigma, high, low)\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mtwprob\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrandom\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnormal\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mscale\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msigma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhigh\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0mSt\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlow\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0mSt\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0mSt\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m+=\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "world = settings()\n", "a, path = simulatedAnnealing(high = 100,low = -100,t =100, twprob = 0.2, world = world)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-8.76862994e-07, -1.26566209e-06])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.params" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "h1 = [i[0] for i in path]\n", "h2 = [i[1] for i in path]\n", "plt.plot(h1,h2)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "linkText": "Export to plot.ly", "plotlyServerURL": "https://plot.ly", "showLink": false }, "data": [ { "marker": { "opacity": 0.8, "size": 5 }, "mode": "markers", "type": "scatter3d", "x": [ -73.05789347897482, -73.05789347897482, -22.48842807612266, -6.579374313223724, 9.541420360553431, -8.144506902989335, 2.1917143050206764, -6.742406049553953, 2.020036025458844, -2.9266375397562765, -1.282284602629149, 0.26799279122852104, 1.1609978426983574, -0.7206090649448891, 0.21436634629481643, -0.26040486540838614, 0.13591151391989645, -0.20070657792805985, -0.10169767449575076, 0.07126306792844894, -0.07819444411594278, 0.03722556643393177, -0.008369054927866826, 0.01223052539777817, -0.006710233294789866, 0.004332694563603079, 0.00047145201245381643, 0.00014648072172059566, 0.00017087601814925487, 0.00010282941469771662, 4.35849419107459e-05, -1.9758608321231044e-05, -1.6198288179831923e-05, -1.0657427282820999e-05, -1.3464328400331046e-05, -8.76862993834573e-07 ], "y": [ 88.91383399322882, 88.91383399322882, 11.520444362050512, 10.923397644054916, 4.310070877652024, 6.40425472746942, 9.925596781418992, 5.39978501110356, -7.472271056763841, 3.6831744785526785, 4.39356407739675, -1.519268168058474, -0.5709694095623021, -0.4465226641067118, 0.5519281318252123, -0.39350658874629985, -0.31134152487747935, -0.25865467979118517, 0.13074827927489596, -0.09991216025547403, -0.09004197097697852, 0.01140570986407019, 0.013100730646248282, -0.008842339836786131, 0.00787776467527744, 0.007994862285628956, -0.0005751844738485293, 0.00029407679246401877, -9.315356909180006e-05, 8.221887914846725e-05, -0.0001026038937697617, -3.238480739120846e-08, -9.636335547154665e-06, -1.3000496349495512e-05, -4.394055220245483e-06, -1.2656620906564725e-06 ], "z": [ 115.07878029837075, 115.07878029837075, 25.267568850881624, 12.751814868623706, 10.469737984647354, 10.360862478923043, 10.16469788346645, 8.638154751056526, 7.740502586389476, 4.704357716901688, 4.57686127213082, 1.5427235340871046, 1.2938013979765843, 0.8477381164261182, 0.5920959323655737, 0.47186664357115693, 0.33971382769771424, 0.32739177418113746, 0.16564277687599258, 0.12272271435023857, 0.11925572366985303, 0.03893370023296547, 0.015545746165790849, 0.015092141176616123, 0.01034825623714235, 0.009093407785184164, 0.0007437097410974007, 0.0003285388283014843, 0.0001946180901485914, 0.00013165801386738764, 0.00011147737966995653, 1.975863486093031e-05, 1.8847904465330865e-05, 1.6810522348275304e-05, 1.4163186807725433e-05, 1.5397367429796054e-06 ] } ], "layout": { "margin": { "b": 0, "l": 0, "r": 0, "t": 0 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } } } }, "text/html": [ "
\n", " \n", " \n", "
\n", " \n", "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "h3 = [func(s) for s in path]\n", "trace = go.Scatter3d(\n", " x=h1, # <-- Put your data instead\n", " y=h2, # <-- Put your data instead\n", " z=h3, # <-- Put your data instead\n", " mode='markers',\n", " marker={\n", " 'size': 5,\n", " 'opacity': 0.8,\n", " }\n", ")\n", "\n", "#Configure the layout.\n", "layout = go.Layout(\n", " margin={'l': 0, 'r': 0, 'b': 0, 't': 0}\n", ")\n", "\n", "data = [trace]\n", "\n", "plot_figure = go.Figure(data=data, layout=layout)\n", "\n", "# Render the plot.\n", "plotly.offline.iplot(plot_figure)\n", "\n", "#fig = plt.figure()\n", "#ax = plt.axes(projection='3d')\n", "#ax.scatter3D(h1, h2, h3, c=h3, cmap='Greens');\n", "#plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.8.2" } }, "nbformat": 4, "nbformat_minor": 4 }