{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting 3D surfaces\n", "#### Plot surface from an analytic function expression\n", "Gnuplot allows to plot 3D surface from an analytic function expression. Option 'isosample' corresponds to number of points taken along x and y." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "#" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "require 'pilot-gnuplot'\n", "include Gnuplot\n", "\n", "include Math\n", "double_pi = PI * 2\n", "\n", "plot3d = Splot.new(\n", " 'cos(x)*cos(y)',\n", " xrange: -double_pi..double_pi,\n", " yrange: -double_pi..double_pi,\n", " style: 'function linespoints',\n", " hidden3d: true,\n", " isosample: 30\n", ")\n", "\n", "plot3d.to_png('./3d.png', size: [600, 600])\n", "File.open('./3d.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plot surface from given points\n", "\n", "Gnuplot also may plot surfaces given as data arrays. \n", "Options 'dgrid3d' is necessary here to make surface smooth. It takes field size (some kind of 'isosamples') and interpolation options." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "#" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def z_function(x, y)\n", " arg = x ** 2 + y ** 2\n", " cos(arg) * exp(-arg/5.0)\n", "end\n", "\n", "initial = (-PI..PI).step(0.05).to_a\n", "x = initial * initial.size\n", "y = initial.map { |el| [el] * initial.size }.flatten\n", "z = x.map.with_index { |val, index| z_function(val, y[index]) }\n", "\n", "plot3d_points = Splot.new(\n", " [[x,y,z], title: 'Surface from points'],\n", " dgrid3d: [100, qnorm: 8],\n", " style: 'data lines',\n", " hidden3d: true,\n", " xrange: -PI..PI,\n", " yrange: -PI..PI\n", ")\n", "\n", "plot3d_points.to_png('./3d_points.png')\n", "File.open('./3d_points.png')" ] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.1.2", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": "rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.1.2" } }, "nbformat": 4, "nbformat_minor": 0 }