{ "metadata": { "name": "", "signature": "sha256:b7d323037186db41e777d74a841298f6fe63179460ebcb1c2f76aef84332776b" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"\"\n", "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

PLOTLY MATLAB API

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", ">
WELCOME! This Notebook is designed to demonstrate the use of the Plotly MATLAB API and to showcase three **\\*NEW\\*** API functions:
\n", "\n", "
\n", "\n", "
fig2plotly.m
    ** \u2022 **   \n", "
getplotlyfig.m
    ** \u2022 **   \n", "
saveplotlyfig.m
\n", "\n", "
\n", " \n", "
\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
New to Plotly?
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Plotly** is a browser-based **data analysis and visualization tool** that lets you and your team **make** and **share** beautiful, **interactive** graphs, **3D** graphs, and **streaming** graphs using MATLAB, Python, IPython, matplotlib, R, ggplot2, and Excel. \n", "\n", "This API allows MATLAB users to generate Plotly graphs from the desktop MATLAB environment: turning MATLAB figures into **interactive, shareable, collaborative** projects.\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Plotly MATLAB API Workflow:
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Collect or generate some data in your MATLAB environment\n", "- Send data to your Plotly account through this Plotly MATLAB API\n", "- View interactive graph in your browser\n", "- Style graph in the Plotly GUI\n", "- Share graph by URL shortlinks, Facebook, or Twitter\n", "- Export to PNG, PDF, EPS, SVG\n", "\n", "- **\\*NEW\\*** Plot your MATLAB figure objects with Plotly using **fig2plotly.m**\n", "- **\\*NEW\\*** Get data, style, and layout from the plots stored online **getplotlyfig.m**\n", "- **\\*NEW\\*** Save your Plotly figures as an image in MATLAB using **saveplotlyfig.m**\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
Initial Setup:
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Plotly MATLAB API has been embedded into our MATLAB toolboxes and our Plotly credentials have been saved using **plotlysetup.m**. In order to start using the Plotly MATLAB API all we have to do now is start MATLAB! More information regarding installation / setting up the Plotly MATLAB API can be found on the online documentation.\n", "\n", "**NOTE:** Throughout this notebook we will be using the super awesome pymatbridge package to communicate with MATLAB from Python. Everything that comes below the **%%matlab** decorator will now be read as MATLAB code. To use the MATLAB API on your own machine, simply open the MATLAB application as you normally would." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

>> OPEN YOUR MATLAB ENVIRONMENT!

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load_ext pymatbridge" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Starting MATLAB on ZMQ socket ipc:///tmp/pymatbridge\n", "Send 'exit' command to kill the server\n", "." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "MATLAB started and connected!\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "

fig2plotly.m

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "
\n", "

Plot a MATLAB figure object with Plotly

\n", "
\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**\\*NEW\\*** to the Plotly MATLAB API is the **fig2plotly.m** function - the future of the MATLAB API. **fig2plotly.m** allows you to take your MATLAB generated figures and automatically create a Plotly plot, taking care of the conversion from the MATLAB figure object structure to Plotly syntax. \n", "\n", "
\n", "\n", "**

[INPUT]:

**\n", "\n", "

>> resp = fig2plotly()

\n", "

>> resp = fig2plotly(f)

\n", "

>> resp = fig2plotly(gcf)

\n", "

>> resp = fig2plotly(f,'property',value, ... )

\n", "

>> resp = fig2plotly(gcf,'property',value, ... )

\n", "
\n", " **

[WHERE]:

**\n", "\n", "

gcf - root figure object handle [double].

\n", "

f - root figure object [struct] >> f = get(gcf)

\n", "
\n", "**

[PROPERTIES]:

**\n", "\n", "

'name' - name of the plot [string]['untitled']

\n", "

'strip' - use plotly default styling [boolea][0]

\n", "

'open' - opens a browser with plot result [boolean][1]

\n", "
\n", " \n", " **

[OUTPUT]:

**\n", "\n", "

resp - results info of the plot [struct]

\n", "

resp.[url,warning,message,filename,error]

\n", "\n", "
\n", "\n", "If you are properly signed up / in, the **url** field of the structure array, **resp**, will contain the address (associated with your Plotly account) of your newly created Plotly plot. The **filename** field will return a string of your chosen file name, or 'untitled' by default. The **warning**, **message**, and **error** fields will contain a string if anything went wrong or if there are updates for the Plotly MATLAB API. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
Example 1: fig2plotly.m
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The best way to grasp the **fig2plotly.m** useage is to see it in action! For our first example, let's take a look at a plot featured in the Mathworks plot gallery. \n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% FROM MATLAB PLOT GALLERY %\n", "% http://www.mathworks.com/discovery/gallery.html %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "api_path = ('/Users/chuckbronson/Documents/PLOTLY/MATLAB_API_REPO/DEV/TEST_PLOTS');\n", "addpath(genpath(api_path));\n", "\n", "load fitdata x y yfit;\n", "fig = figure;\n", "scatter(x, y, 'k');\n", "line(x, yfit, 'color', 'k', 'linestyle', '-', 'linewidth', 2);\n", "line(x, yfit + 0.3, 'color', 'r', 'linestyle', '--', 'linewidth', 2);\n", "line(x, yfit - 0.3, 'color', 'r', 'linestyle', '--', 'linewidth', 2);\n", "legend('Data', 'Localized Regression', 'Confidence Intervals', 2);\n", "xlabel('X');\n", "ylabel('Noisy');\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "resp = fig2plotly(fig,'name','matlab_overview_1'); % <---- ONE LINE OF PLOTLY CODE! " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\npvwyAAAAAElFTkSuQmCC\n" } ], "prompt_number": 72 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above plot is the ouptut from calling the **scatter.m** and **line.m** functions inherent in MATLAB. Using the **fig2plotly.m** function, we are able to extract the relevant data from the MATLAB figure object and throw the output over to our Plotly account! The returned response variable, **resp**, is a structure array which contains a **url** field with the address of our plot. \n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "resp.url " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "ans =\n", "\n", "https://plot.ly/~matlab_user_guide/661\n", "\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's have a look at the newly produced line and scatter plot in Plotly! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**NOTE:** The following function can be used to embed your Plotly plots within your own NB." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import HTML\n", "\n", "def show_plot(url, width=800, height=650):\n", " s = '' %\\\n", " (height, \"/\".join(map(str,[url, width, height])), width)\n", " return HTML(s)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/661')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "" ] } ], "prompt_number": 33 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice! We can see how the **fig2plotly.m** function is able to parse all the relevant information for the MATLAB figure object and generate an awesome looking plot, the data for which is now **stored** on the cloud! This means you'll never have to worry about where your data is saved on your computer and you can **share** your newly created plot by simply embedding the link within your website or throwing it over to Facebook or Twitter!\n", "\n", "Another great thing about Plotly is the **interactivity** of the graphs. Try scrolling over the newly created plot to view the labelled data. Holding shift while clicking and dragging allows you to pan. Click and drag to zoom and double click to revert back to the original view. \n", "\n", "We can also now take advantage of the interactive **web app!** You can view/edit all our newly created plots on your online account. By default **fig2plotly.m** will open your default browser and load your Plotly account to view the newly created plot. All the data associated with the plot has been conveniently stored in a spreadsheet that can be accessed by clicking on the the \"View data\" link on the right (image below). \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "By clicking on the \"Save & edit\" link on the left (image above), we are able to access the main web GUI. This will allow us to tweak and experiment with plotting layout and style without having to write lines upon lines of code. Below is a screen shot of the Plotly web app. \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "There are also many style/layout themes to choose from and you can even save your own themes to apply to your graphs. Have a go at changing the syle and layout to suit your personal preferences. Here is one that we made:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/662')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "" ] } ], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once you are finished you can quickly share by hitting \"Share\". This will open a \"Sharing settings\" window (image below) which will allow you to modify the plots privacy settings and add a collaborator to be able to edit the plot you have created!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "You can also click on the social media icons to quickly throw your plot over to Facebook or Twitter to share it with the world!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "
Example 2: fig2plotly.m
\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets have a look at how **fig2plotly.m** is able to handle more difficult plot layouts, such as multiple subplots of varying size." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% FROM MATLAB PLOT GALLERY %\n", "% http://www.mathworks.com/discovery/gallery.html %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "fm = 20e3;\n", "fc = 100e3;\n", "tstep = 100e-9;\n", "tmax = 200e-6;\n", "t = 0:tstep:tmax;\n", "xam = (1 + cos(2*pi*fm*t)).*cos(2*pi*fc*t);\n", "T = 1e-6;\n", "N = 200;\n", "nT = 0:T:N*T;\n", "xn = (1 + cos(2*pi*fm*nT)).*cos(2*pi*fc*nT);\n", "fig = figure;\n", "subplot(2, 2, [1 3]);\n", "plot(nT,xn);\n", "xlabel('t');\n", "ylabel('x[n]');\n", "title('Sampled Every T=1e-6 ');\n", "subplot(2, 2, 2);\n", "plot(t, xam);\n", "axis([0 200e-6 -2 2]);\n", "title('AM Modulated Signal');\n", "subplot(2, 2, 4);\n", "plot(nT, xn);\n", "title('Reconstruction at T=4e-6 ');\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "resp = fig2plotly(fig,'strip',1,'name','matlab_overview_3'); " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAOECAIAAAA+D1+tAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH3gcNFRYYsbOfKAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxMy1KdWwtMjAxNCAxNzoyMjoy\nNMMxcAgAAAAkdEVYdFNvZnR3YXJlAE1BVExBQiwgVGhlIE1hdGh3b3JrcywgSW5jLrrEUs8AACAA\nSURBVHic7d3blpu6tgVQdFr+/5c5D17xdjBgCQRImr0/JZUqG8+oEANdSPM8TwAAAMTzf08fAAAA\nAM8QCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIIS\nCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEA\nAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIIS\nCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIL68/QBwOVSSouvzPP8yJEs\nvA7s/MH8fJ3vCiw0UpBPP495OnHYtSq/9cpvDRYWOO/9m55z4j35PXVfKlPRSfK6M2rFd/95JfDI\np3i2dPBmhJCRpZRWc8XW1+GM70almQFb54ED54eKL/Wgm7tgVwLwkxFCxrd6FzCgvu5BXnfv9qIG\n8H17/vWVlFJflQf2vU9Hr0ThF7wLP68E/D8SmRFChrUVIRbX68Rxw/3gz/bm8gLgWa4EIIcRQiJ6\n3dn9/vrnF7dGqL6/Z/WnPjuhnZctOoai7zlgtePc6k3za/X5h5xXvk7+FUBphX9ecwAxbQ0krvYp\nF73UyW7l2Al86wXfX9952cOHWmRRsf3j+ezNt/68dTwXddlQkUDI4Lbm8+wnnK0f/LlIbPFTq9+f\n08l9fuXnC66+2nVyjnP127qQ+ekyX0HfD4P5PCG0P2v0qW4lpz/9+aYVDzX/SmDrlXfeaJEq97vC\nllsLkQmEDOt982//1t3L6gKw1RP34hsWX1k9jO932T/sn99f+pr5r5av9Dj7UqvC+n5ga+zuwMnh\n2Etd162s2u9Pt+aMXHSoRVcCB97r8yT/fqPvq4KflxbwLGsIGdn3jbq3nO/P+Yb8bvj9161O5ef3\n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\nCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEAAIISCAEA\nAIISCAEAAIISCAF4QErp6UMAoAP6i6sJhADcTe8OQA79xQ0EQgAAgKAEQgBulVKa5/npowCgdfqL\newiEANxH7w5ADv3FbQRCYE9KyfR9AIBR/Xn6AAAY2fuGwjzPbvcCsEV/8RS1Bva8zs5OFFTxPdqs\naQHwTX9xJ4EQ2LQ4HTtdhPXzvsBnU8lsJ+7+AoxHf9EjawgBOGVx48CiUwBW6S/aJHADe0wZ5XNR\nR86/ajMAMekvOmWEEIB1+XvMfnfn7vsCxKG/6JpdRgHG930Xdv8+7uKftnrr1Zu7r93hzh0vAM/Q\nXwRkhBAgCpu2AZBDfxGKQAgwvkVHbtkGAKv0FwEJhAAhvLrz/GUeAMSkv4hGIASIyO1eAHLoL4Yn\nEAK/uU04hnenrncHYIf+IhSBENijJxjJO9WL9wDs0F+EIhACP8x/PX0g1PFeHHLRS9mBAGAM+osg\nBEKAEO7pd91LBuid/iKaJJQDDG/rQcOZXcD+N3tcFcAw9BcBGSEEGNzOXdiKE4G2/gpAL/QXMRkh\nBAAACMoIIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAA\nQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFAC\nIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAA\nQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFACIQAAQFD/\nD3QCZRhSvK8ZAAAAAElFTkSuQmCC\n" } ], "prompt_number": 59 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice MATLAB! Now let's have a look at our newly generated Plotly plot. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/663')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 62, "text": [ "" ] } ], "prompt_number": 62 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cool! **fig2plotly.m** preserves the subplot layout structure. It also converts the x-axis labels using the concise SI prefix μ = 10-6. You might notice that the colours for the traces generated using **fig2plotly.m** did not stay blue like the original output from MATLAB. This is because we changed the \"strip\" property of **fig2plotly.m** from \"false\" (default) to \"true\". In doing so we told **fig2plotly.m** to change the style used in MATLAB to Plotly's beautiful default color schemes. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
Example 3A: fig2plotly.m
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's have a look at some other chart types in MATLAB and apply **fig2plotly.m**. Let's experiment with bar charts with a double y axis. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% FROM MATLAB PLOT GALLERY %\n", "% http://www.mathworks.com/discovery/gallery.html %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "TBdata = [1990 4889 16.4; 1991 5273 17.4; 1992 5382 17.4; 1993 5173 16.5;\n", " 1994 4860 15.4; 1995 4675 14.7; 1996 4313 13.5; 1997 4059 12.5;\n", " 1998 3855 11.7; 1999 3608 10.8; 2000 3297 9.7; 2001 3332 9.6;\n", " 2002 3169 9.0; 2003 3227 9.0; 2004 2989 8.2; 2005 2903 7.9;\n", " 2006 2779 7.4; 2007 2725 7.2];\n", "\n", "years = TBdata(:,1);\n", "cases = TBdata(:,2);\n", "rate = TBdata(:,3);\n", "fig = figure;\n", "[ax, h1, h2] = plotyy(years, cases, years, rate, 'bar', 'plot');\n", "set(h1, 'FaceColor', [0.8, 0.8, 0.8]);\n", "set(h2, 'LineWidth', 2);\n", "title('Tuberculosis Cases: 1991-2007');\n", "xlabel('Years');\n", "set(get(ax(1), 'Ylabel'), 'String', 'Cases');\n", "set(get(ax(2), 'Ylabel'), 'String', 'Infection rate in cases per thousand');\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "filename = 'matlab_overview_4';\n", "resp = fig2plotly(fig,'name',filename); " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAABLAAAAOECAIAAAA+D1+tAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH3gcNFRMeJafOWAAAACJ0RVh0Q3JlYXRpb24gVGltZQAxMy1KdWwtMjAxNCAxNzoxOToz\nME3meIEAAAAkdEVYdFNvZnR3YXJlAE1BVExBQiwgVGhlIE1hdGh3b3JrcywgSW5jLrrEUs8AACAA\nSURBVHic7d1bdqM6twZQOCM9Kve/BVSbOA/U5ifcLGMuktacww8VRyFKQmE+L13avu8bAAAA4vm/\npzsAAADAMwRCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARC\nAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACA\noARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARC\nAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoARCAACAoH6e7gBAOG3bvm3T\n9336oRIb3+n0jp14wOXvP8Nf4DFvf0vTn32rWUqblO+1f+Sd43/Zyf3/X9X8rQHOokIIQBRt266m\nhZSIXrrlz778qVPafNOBlCdTOnBdJwECUiEEuNtqQUPhYt+5v5/p0Ybff9u2pf8JPq08D/Fv+VOn\ntPk0g43t93/zy2bLDrxts1N1LP1PDHAFFUIAQhgjwSwVLNNIcbYqn9MGzSIODR+OX5jSJuV77dj6\nze83a9b+NN9nVAAGKoQA+Vq9R995cvTp1KzxmMuDr35VescSO/D2p9jv2P73XTaeGX/wEzt81kFS\nSlt3ZtrrvtdWIp3F0bdtEo8MwECFEKB4KROx3j6T+FWHe3jg4Dvf7qPGo51IsKwcHujegV/7sR+k\nOMtf722kQYB9KoQANdgpnR1uM3vm+7l2Ox3YKjnuTGBLbHzM24lq6X348qeuOMmIagA5UCEEKN4p\nc8OategyfebwjXt6B2Y+KitdUYP69IDTPtzzU38kpd57Vk34bU/uKYTKnABvqRAChHDK/ffVN9bL\nutxZjT+VeMy3fUj5tV/6g4xHHgu837RJ8XZe5Q0/LwDpBEIAnrda1Ww2MsNHjRO9XbTmij5c8YPs\n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\nEL4nEAIAUIS27xdPyYTwHYEQAIBiLDNh06w8BSQSCAEAKMkyE9qlEA4TCAEAKMxqJhQL4QCBEACA\n8qyNHVUqhI8JhAAAFKnvDR+FbwmEAAAUbb7SqEwI6QRCAADKttylUCaERAIhAADFW82EYiG8JRAC\nAFCDZSZslArhHYEQAIBKdN1fw0fhIwIhAABVkQkhnUAIAEBtTCmERAIhAAAVMqUQUgiEAADUSSaE\nt36e7gAAAFxlyISzEDh+uJoYIRQVQgAAKrcV/IaJhWqGRCYQAgBQv/1ioGRIWIaMAgAQwurw0Rmj\nSYlGIAQAIJAx6SUkw75tm76/pVvwEIEQAICIEpNh2/7v38Ih9REIAQAILTEZNv/CYf96GVBKPQRC\nAABomk+SoamGVEMgBACAX/5bfubVNG8GiUqGlE4gBACAddNJg9PJhEuSIYUSCAEA4L0hHLZtu182\nlAwpi0AIAAAf+GTjCrGQ3AmEAABwRPoiNJAtgRAAAL4iGVIugRAAAM4hGVIcgRAAAE5m6iCl+L+n\nOwAAAMAzBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIA\nAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICg\nBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIA\nAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICg\nBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIA\nAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEIAAICg\nBEIAAICgBEIAAICgBEIAAICgBEIAAICgBEII7fV6Pd0FiuFsIZ2zhXTOFniWQAgAABDUz9MdIEnb\ntuO/+75/sCcAAJChyf1y0zSNW+ZEKoQFaH+f3bMPAQAguOUNslvmRAJh7sb41/+nkQkBAOA/461x\n3/97zJ5nh0BYhuUwUZkQAABG0/tl40XTCYRZG1LfLA2aQwgAAIOhSrK8QZ6WCtlhURkAAKAG0yF0\n0mAiFUIAAKBsbTufMWh+VSIVQgAAoHjTkuCQBttWnfC91oS0nK3OIdx5fvpZAACoy8r979Ycwq3n\nmVEhrJCQDwAApDCHEAAAICiBMGur29DvjxcFAABIJBAWxvxAAAAYDVWS1SVGFVBSWFSmAMsQ6K8G\nAACj1aKJW+YUKoQFmMU/aRAAAKZmN8h9Lw2mUiEEAAAISoUQAAAgKIEQAAAgKIEQAAAgqJ+nO8Cm\nt/sNTlcf3Wq232ZrEwszS4tzw9mS3obMubaQInGBa9cWmhvPFteWCpx4tjQnvaKhQliktm1Xd6tf\nNnvbhuqlnC3OKAYnni0ULeUKsHzm8HXDGVW0m88Winbi2XLg2zmjtlhlNFPjKbvzrsn0U1vPjE+u\nHvDt2yoU4ayz5aMzarUN+bvzbHFuFGrn9aJZXAGWz3x63XBtKdojZ4tzo1Anni07B3x7ZOfPkgph\ndpbvvi8bNBubE+5U4Z39VTrlbDl2Rs2+Bfm7/2yhaIlb4KZcE85qQ7ZuPlso2ilny9tXtMTjMBAI\ns9P/5+mOUIDbzpadGEApXFs4Uco14aw2lM6ZQLrEM+HtK5oz6iMWlalc27Zv37yffsp/FeAsri2F\n8sci3SNni2tLofyxsqVCWK3pgOn9QdtT6SV4gFWuLVUy94Z0F50tri1Vcm3JgQphqcbS3/jh4UOd\ndRyylXK2nHhGUbQTzxZnVB387Uh3z9ni2lIHf7t8CITl6ft++C/06foQw7to+8vMDAef3e1RrpSz\nJfGMonpnnS2uLTXZX8QPpq4+W1xbauLakhVDRou0Orl2+qGVABm9PVsSnyECZwujcSSetYh4y9lC\nOmdLhlQIS7WaAGFVytnijGLgbKHx5j2fcLaQztmSJxXC8uzMn/7of5d52BGknC0pbVbLyyaCV+as\ns8W1pRo7/7tTrglntaEIN5wtri3V+PJsSf8Wri2JBMJSTU/xrevj6n+DlDb+q1Tm07Ml5RXXq3Kt\nzjpbXFvKdeyPddZ1w7WlLPefLa4t5brubLnzOFUyBzdfO/9tvhnE9enagBThirNlebRlM6dKiW44\nW1xbirZ/27T/InLsuuHaUq6bzxbXlqKde7ZMW+5/NuU4wakQFilxmYe3zRK/iqKduEzI2/OH0p11\ntri2BJFyTTirDaU75UxwbQnirGuCa0siFUIAAICgVAgBAACCEggBAACCEggBAACCEggBAACCEggB\nAACCEggBAACCEggBAACCEggBAACCEggBAACCEggBAACCEggBAACCEggBAACCEggBAACCEggBAACC\nEggBAACCEggBCKFt27Ztj30WAGolEAIQyGrqEwUBCEsgBCCEvu+/bAAA9REIAYhiiHyzeuDwoTQI\nQEw/T3cAAPI1TY9boXGnzZg2Z7FzFkrFUQCe0noRAiCUaTbbKQ9uTSxcjXxbDVaD3+qRvRwD8AgV\nQgAiSlxIZifdTZ+Zlv7aduXN1lltcJkqV78KAK5mDiEAscxy1055cLXlfkkw5TuuNpAGAXiECiEA\n4Swn9a16W0U8nOKWpUUAeIRACADHfbqH4azMKBkC8CyBEADWfVo/HAuPHx15+BJzCAF4hEAIAKmW\nA00/TXGrR/i0zAgAZ7GoDADMHdvCPj3XTVtKgwA8SIUQADa9TWurDXbGf471QHvTA5ADFUIAWLHc\nCmL2zOpnU3Ldzi6FAHAzU9gBAACCUiEEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAI\nSiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAE\nAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAI\nSiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAE\nAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAISiAEAAAI6v8BS9m+XucQJP0AAAAASUVO\nRK5CYII=\n" } ], "prompt_number": 37 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above plot is the ouptut we receive from calling the **plotyy.m** function inherent in MATLAB. Now, Let's grab that url from the **resp** structure aray and have a look at our newly genereted plot using **fig2plotly.m**. \n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "resp.url" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "ans =\n", "\n", "https://plot.ly/~matlab_user_guide/664\n", "\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/664')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "" ] } ], "prompt_number": 39 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sweet! Now we can use the Plotly web app to customize style an layout to our personal preference. \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively... we can use the Plotly declaritive syntax to edit the style and layout with **plotly.m**, one of the original API functions. To do this, we will need to use another **\\*NEW\\*** function that simplifies everything: **getplotlyfig.m**.\n", "
\n", "
\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

getplotlyfig.m

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "
\n", "

Get data, style, and layout from the plots stored online

\n", "
\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One of Plotly's secret powers is the ability to translate between MATLAB's structure/cell array syntax and JSON. This allows a smooth transition between the your figures in MATLAB and those stored in your Plotly account. In order to grab the data, style, and layout information from your plots living online, we've introduce a **\\*NEW\\*** funtion into the API: **getplotlyfig.m**. In fact, we can go one step further: **getploylyfig.m** lets you grab the data, style and layout of *anyone's* Plotly plots (as long as they are made public) - not just your own! See a graph you like online? Grab the data, style and layout and make one for yourself. \n", "
\n", "\n", "

**[INPUT]:**

\n", "\n", "

>> plotlyfigure = fig2plotly(file_owner,file_id)

\n", "
\n", "

**[WHERE]:**

\n", "\n", "

file_owner - user name associated with the plot [string].

\n", "

file_id - number identifier associated with the plot [string]

\n", "
\n", "

**[OUTPUT]:**

\n", "\n", "

plotlyfigure - results info of the plot [struct]

\n", "

plotlyfigure.[data,layout]

\n", "
\n", "\n", "If the provided input arguments are valid, **getplotlyfig.m** returns a **figure** structure with **data** and **layout** fields. The data field is a cell array containing the exact same data, and style information as is required for the **plotly.m** function input. Likewise, the **layout** structure array contains all the layout information in the same form as is required for the **plotly.m** function input. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "
Example 3B: getplotlyfig.m
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have a basic understanding of **getplotlyfig.m**, let's have a go at changing the bar and line colours from our previous example!" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% GET PLOTLY FIG! %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "plotlyfigure = getplotlyfig('bronsolo','82'); \n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% DATA/STYLE %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "% COLOUR CHOICES \n", "col1 = '#3C8A22';\n", "col2 = '#097054'; \n", "col3 = 'black'; \n", "\n", "% BAR CHART STYLE \n", "plotlyfigure.data{1}.marker.color = col1;\n", "plotlyfigure.data{1}.marker.line.width = 2; \n", "plotlyfigure.data{1}.marker.line.color = col3; \n", "plotlyfigure.data{1}.opacity = 0.7; \n", "plotlyfigure.data{1}.name = 'Cases'; \n", "\n", "% LINE STYLE \n", "plotlyfigure.data{2}.line.width = 10; \n", "plotlyfigure.data{2}.line.color = col2; \n", "plotlyfigure.data{2}.opacity = 0.7; \n", "plotlyfigure.data{2}.name = 'Infection Rate'; \n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% LAYOUT %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "% Y2 AXIS STYLE\n", "plotlyfigure.layout.yaxis2.titlefont.color = col3; \n", "plotlyfigure.layout.yaxis2.tickfont.color = col2;\n", "plotlyfigure.layout.yaxis2.tickcolor = col2; \n", "plotlyfigure.layout.yaxis2.linecolor = col2; \n", "plotlyfigure.layout.yaxis2.linewidth = 2; \n", "\n", "% X AXIS STYLE\n", "plotlyfigure.layout.xaxis.mirror = 0; \n", "plotlyfigure.layout.xaxis.showline = 0; \n", "\n", "% BAR LAYOUT\n", "plotlyfigure.layout.bargap = 0.2; \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% ARGS %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "args.layout = plotlyfigure.layout; \n", "args.filename = 'matlab_overview_5'; \n", "args.fileopt = 'new'; \n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "resp = plotly(plotlyfigure.data,args);\n", "url = resp.url" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "url =\n", "\n", "https://plot.ly/~matlab_user_guide/775\n", "\n" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/665')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "" ] } ], "prompt_number": 41 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Awesome! Note that we changed the names of the bar and line data so that when we scroll over the plot we get a nicely labeled interactive output. Give it a try!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "
Example 4: getplotlyfig.m
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we mentioned above, not only does **getplotlyfig.m** help us edit the plots that we made using **fig2plotly.m**, it also allows us to grab the data, style, and layout information from any public Plotly plot (say that three time fast) regardless of the API used to generate them. That means we can grab plots generated in R or Python and throw them into MATLAB to analyze, restyle, and throw back online. It's all the same to Plotly! Let's have a look at how that works. First, check out this sweet plot made by a user named **\"ReadtheBox\"**. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~ReadtheBox/35') " ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 42, "text": [ "" ] } ], "prompt_number": 42 }, { "cell_type": "markdown", "metadata": {}, "source": [ "So sweet! Let's use **getplotlyfig.m** to grab the data/style and layout from this plot. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab\n", "\n", "plotlyfigure = getplotlyfig('ReadtheBox','35') %grab the data from ReadtheBox (awesome Plotly user!)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "plotlyfigure = \n", "\n", " layout: [1x1 struct]\n", " data: {1x9 cell}\n", "\n" ] } ], "prompt_number": 71 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice! Now let's have some fun changing things up. Let's have a look at the data field. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "plotlyfigure.data{1}" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "ans = \n", "\n", " textfont: [1x1 struct]\n", " name: 'Runs'\n", " marker: [1x1 struct]\n", " y: [12 14 9 2 8 5 6 1 1 8 2 4 0 0]\n", " x: {1x14 cell}\n", " line: [1x1 struct]\n", " type: 'bar'\n", " error_y: [1x1 struct]\n", "\n" ] } ], "prompt_number": 44 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The data field is a {1x9} cell array where each element of the cell array corresponds to a different baseball statistic. The first data cell array element, **plotlyfigure.data{1}**, corresponds to the **\"Runs\"** data for each player. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, lets say we only wanted to look at **\"Runs\"** and **\"Hits\"**. We can do that easily by grabbing the first two elements of the data cell array. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% DATA/STYLE %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "traces= {plotlyfigure.data{1},plotlyfigure.data{2}}; % <--- FIRST TWO DATA ELEMENTS\n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% ARGS %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "args.filename = 'matlab_overview_6'; \n", "args.fileopt = 'new';\n", "args.layout = plotlyfigure.layout; \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "resp = plotly(traces,args); % <--- USE PLOTLY TO THROW OUR NEW PLOT ONLINE\n", "resp.url " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "ans =\n", "\n", "https://plot.ly/~matlab_user_guide/776\n", "\n" ] } ], "prompt_number": 45 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look: " ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/666')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "" ] } ], "prompt_number": 46 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Awesome - Go Ellsbury!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's change some layout settings. How about we change the barmode from 'stack' to 'group'. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% DATA/STYLE %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "traces= {plotlyfigure.data{1},plotlyfigure.data{2}}; % <--- FROM BEFORE! \n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% LAYOUT %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "plotlyfigure.layout.barmode = 'group'; % <--- CHANGE FROM STACK TO GROUP! \n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% ARGS %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "% ARGS STRUCTURE \n", "args.filename = 'matlab_overview_7'; \n", "args.fileopt = 'new';\n", "args.layout = plotlyfigure.layout; \n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "resp = plotly(traces,args); \n", "resp.url" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "ans =\n", "\n", "https://plot.ly/~matlab_user_guide/777\n", "\n" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/669')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 48, "text": [ "" ] } ], "prompt_number": 48 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cool!\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But... what happens if we want to put our graph in a report or thesis? So far all we have seen is how to share/embed our plots online. What we need now is to save our Plotly figures as images. For that we use the **\\*NEW\\*** **saveplotlyfig.m** function... \n", "
\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

saveplotlyfig.m

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "
\n", "

Save your MATLAB figure as an image using Plotly

\n", "
\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**saveplotlyfig.m** allows you to convert your MATLAB figures into static images using Plotly.\n", "\n", "
\n", "\n", "

**[INPUT]:**

\n", "

>> saveplotlyfig(data, filename)

\n", "

>> saveplotlyfig(plotlyfigure, filename)

\n", "
\n", "

**[WHERE]:**

\n", "

data - data/style of plot [cell array]

\n", "

plotlyfigure.data - data/style of plot [cell array]

\n", "

plotlyfigure.layout - layout of plot [struct]

\n", "

filename - name of image to be saved [string]

\n", "
\n", "

**[OUTPUT]:**

\n", "

PNG image 'filename' saved to your working directory

\n", "\n", "
\n", "\n", "Currently **saveplotlyfig.m** supports PNG, PDF, JPEG, and SVG. If **data**, **layout** and **filename** are structure correctly, **saveplotlyfig.m** will automatically save the PNG image named 'filename' to your working directory. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "
EXAMPLE 5: saveplotlyfig.m
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's have a look at **saveplotlyfig.m** to see how it works. Check out this next plot that was featured on the MATLAB plot gallery. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% FROM MATLAB PLOT GALLERY %\n", "% http://www.mathworks.com/discovery/gallery.html %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "% Load Morse data\n", "load MDdata dissimilarities dist1 dist2 dist3\n", "\n", "% Plot the first set of data in blue\n", "fig = figure;\n", "plot(dissimilarities, dist1, 'bo');\n", "hold on;\n", "\n", "% Plot the second set of data in red\n", "plot(dissimilarities, dist2, 'r+');\n", "\n", "% Plot the third set of data in green\n", "plot(dissimilarities, dist3, 'g^');\n", "\n", "% Add title and axis labels\n", "title('Morse Signal Analysis');\n", "xlabel('Dissimilarities');\n", "ylabel('Distances');\n", "\n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% PLOTLY %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "filename = 'matlab_overview_8'; \n", "resp = fig2plotly(fig,'name',filename);\n" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nPsp/TSGB9FDMd/YAAAAASUVORK5CYII=\n" } ], "prompt_number": 65 }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "resp.url " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "ans =\n", "\n", "https://plot.ly/~matlab_user_guide/670\n", "\n" ] } ], "prompt_number": 66 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Good job MATLAB - let's look at the Plotly graph we created! " ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~matlab_user_guide/670')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 67, "text": [ "" ] } ], "prompt_number": 67 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "So awesome! Now let's save this plot as a PNG image using **saveplotlyfig.m**. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% GET PLOTLY FIG! %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "plotlyfigure = getplotlyfig('matlab_user_guide','670'); \n", "\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "% SAVE PLOTLY FIG! %\n", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n", "\n", "filename = 'morse.png'; \n", "\n", "saveplotlyfig(plotlyfigure,filename)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 68 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Boom! **morse.png** has been automatically saved to our working directory. Let's have a look. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Awesome! Do you notice how the above plot is no longer interactive? That's because it is a static PNG image, ready to be placed in your offline documents.\n", "\n", "Plotly graphics are rendered as high-quality vector graphics so they embed really well in presentations and reports.\n", "\n", "Take a look for yourself. Here are the static image versions of the following plot.\n", "\n", "- [Click to download the PDF version](files/images/PlotlyImageTest_18.pdf)\n", "- [Click to view the PNG version](files/images/PlotlyImageTest_18.png)\n", "- [Click to view the JPEG version](files/images/PlotlyImageTest_18.jpeg)\n", "- [Click to view the SVG version](files/images/PlotlyImageTest_18.svg)\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~chris/1638/')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 69, "text": [ "" ] } ], "prompt_number": 69 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "
\n", "
Example 6: saveplotlyfig.m
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a final example, let's grab a public plot from another Plotly user. This one is an awesome line plot from our very own **jackp**. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "show_plot('https://plot.ly/~jackp/671')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 70, "text": [ "" ] } ], "prompt_number": 70 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "First grab the data/style and layout. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab \n", "\n", "plotlyfig = getplotlyfig('jackp','671')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "text": [ "\n", "plotlyfig = \n", "\n", " layout: [1x1 struct]\n", " data: {1x11 cell}\n", "\n" ] } ], "prompt_number": 55 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now feed the data/style and layout information into **saveplotlyfig.m**." ] }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab\n", "filename = 'tax.png'; \n", "saveplotlyfig(plotlyfig,filename); " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 73 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Cool! Let's have a look at the image. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "All we have to do now is throw it into our economics report! " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

CONTACT

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "--- \n", "\n", "Want to help improve this notebook? Please send us your comments/questions! Feedback concerning this notebook can be directed to ** chuck [at] plot.ly **. You can also follow us online.
\n", "
\n", "\n", "
\n", "\n", "
\n", "\n", "\"\" \n", "\n", "
\n", "\n", "
\n", "\n", "\"\" \n", "\n", "
\n", "\n", "
\n", "\n", "\"\" \n", "\n", "
\n", "\n", "
\n", "\n", "\"\" \n", "\n", "
\n", "\n", "
\n", "\n", "
\n", "
\n", "\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

\n", "
\n", "** \u2022 **

\n", "** \u2022 **

\n", "** \u2022 **

\n", "** \u2022 **

\n", "
\n", "

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

NOTEBOOK BEAUTIFICATION

" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# CSS styling within IPython notebook\n", "from IPython.core.display import HTML\n", "def css_styling():\n", " styles = open(\"./css/style_notebook.css\", \"r\").read()\n", " return HTML(styles)\n", "\n", "css_styling()" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n" ], "metadata": {}, "output_type": "pyout", "prompt_number": 82, "text": [ "" ] } ], "prompt_number": 82 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
[STYLE INSPIRED BY CAM DAVIDSON'S NB'S - THANK YOU]
" ] } ], "metadata": {} } ] }