{"id":1009,"date":"2014-10-03T03:00:01","date_gmt":"2014-10-03T08:00:01","guid":{"rendered":"https:\/\/blogs.mathworks.com\/loren\/?p=1009"},"modified":"2014-10-20T17:09:42","modified_gmt":"2014-10-20T22:09:42","slug":"matlab-r2014b-graphics-part-1-features-of-the-new-graphics-system","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/loren\/2014\/10\/03\/matlab-r2014b-graphics-part-1-features-of-the-new-graphics-system\/","title":{"rendered":"MATLAB R2014b Graphics &#8211; Part 1: Features of the New Graphics System"},"content":{"rendered":"<div class=\"content\"><!--introduction--><p>Today I&#8217;d like to introduce a guest blogger, David Garrison, who is a MATLAB Product Manager here at MathWorks. This is the first in a series of blogs over the next few weeks describing the new graphics system in R2014b and how some of the changes will affect you.<\/p><div><ul><li><b>Part 1: Features of the New Graphics System<\/b><\/li><li>Part 2: Using Graphics Objects<\/li><li>Part 3: Compatibility Considerations in the New Graphics System<\/li><\/ul><\/div><p>Here is Part 1 of the series.<\/p><!--\/introduction--><h3>Contents<\/h3><div><ul><li><a href=\"#f58e8ccc-e33d-4618-a1c3-8834957b51ce\">Big Changes in R2014b<\/a><\/li><li><a href=\"#5942d30f-a2fd-4eee-b216-20e7ee36a98f\">The New MATLAB Graphics System<\/a><\/li><li><a href=\"#0a2e1619-1585-4262-9d83-1e3050f2b1f1\">The New Look of MATLAB Graphics<\/a><\/li><li><a href=\"#b481d70c-0e8e-4c8c-ae37-4ea3ceca9fcc\">Rotatable Tick Labels<\/a><\/li><li><a href=\"#9f0d781a-d569-49cb-b3e2-92029c098fbe\">Automated Updating of <tt>datetime<\/tt> Tick Labels<\/a><\/li><li><a href=\"#313d065b-8523-4257-8fbc-938868fd453d\">Animated Plots<\/a><\/li><li><a href=\"#a41686a9-00d4-411a-9bde-8a8ab14875ba\">Multilingual Text and Symbols in Plots<\/a><\/li><li><a href=\"#8542c7fd-8311-4bc5-87e7-a8ce8d88c101\">User Interfaces with Tab Panels<\/a><\/li><li><a href=\"#cdbc9e07-1b97-48ec-aab2-386f2eb49849\">Improved Histograms<\/a><\/li><li><a href=\"#515f05aa-82af-4755-8ea7-caa180db3c74\">Have you tried the new graphics system in R2014b?<\/a><\/li><li><a href=\"#46008051-be76-424f-9f8b-30fe0c27c91f\">Next up -- Part 2: Using Graphics Objects<\/a><\/li><\/ul><\/div><h4>Big Changes in R2014b<a name=\"f58e8ccc-e33d-4618-a1c3-8834957b51ce\"><\/a><\/h4><p>There are a number of big changes in R2014b.  Some of the new features include:<\/p><div><ul><li>New MATLAB graphics system<\/li><li>Date and time data types with time zone and display options<\/li><li>Git and Subversion source control integration and access to projects on GitHub from File Exchange<\/li><li>MATLAB toolbox packaging as single, installable files for easy sharing and downloading of user-developed tools<\/li><li>MATLAB MapReduce&#8482; data analysis that scales Hadoop for big data<\/li><li>Arduino and Android hardware support for interacting with motors and actuators, and for accessing sensor data<\/li><\/ul><\/div><p>You can learn more about all these features in the <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/release-notes.html\">MATLAB R2014b Release Notes<\/a>.  This post is all about the new graphics system.<\/p><h4>The New MATLAB Graphics System<a name=\"5942d30f-a2fd-4eee-b216-20e7ee36a98f\"><\/a><\/h4><p>R2014b includes a new MATLAB graphics system.  The new graphics system includes many new features which we will describe in this blog post. In Part 2 of this series, we will describe how graphics handles have changed in R2014b and how to use graphics objects. Finally, there are some changes in the new system which may require changes in some existing graphics related code. We'll discuss compatibility considerations in Part 3 of this series.<\/p><h4>The New Look of MATLAB Graphics<a name=\"0a2e1619-1585-4262-9d83-1e3050f2b1f1\"><\/a><\/h4><p>When you create a plot in R2014b, you'll see that MATLAB graphics look different than previous versions.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/new_look.png\" alt=\"\"> <\/p><p>The first thing that you will notice is that lines are plotted using a different set of colors.  New line colors were selected to make it easier to distinguish lines from one another and to help people with certain types of color blindness.  There is also a new default colormap in R2014b called <i>parula<\/i>.  The colors in the parula colormap are ordered from dark to light and are perceptually uniform.  Smooth changes in the data appear as smooth changes in color, while sharp changes in the data appear as sharp changes in color.  Grid lines are now gray to make data stand out visually.  Axis labels and titles are larger and more prominent.  Lines and text are now anti-aliased (smoothed) to remove jagged edges.<\/p><h4>Rotatable Tick Labels<a name=\"b481d70c-0e8e-4c8c-ae37-4ea3ceca9fcc\"><\/a><\/h4><p>If you're like me, you sometimes need to use long labels for the ticks in your plot.  In previous versions of MATLAB, tick labels were always displayed horizontally as shown on the left in the example below. In the new graphics system, ticks can be rotated so you can create a plot like that shown on the right. Tick labels on both the x and y axes can be rotated.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/rotated_ticks.png\" alt=\"\"> <\/p><p>For example, to rotate the X tick labels, use the <tt>XTickLabelRotation<\/tt> property of the <tt>Axes<\/tt> object:<\/p><pre class=\"language-matlab\">ax = gca;\r\nax.XTickLabelRotation = -40;\r\n<\/pre><h4>Automated Updating of <tt>datetime<\/tt> Tick Labels<a name=\"9f0d781a-d569-49cb-b3e2-92029c098fbe\"><\/a><\/h4><p>R2014b includes a new date and time data type called a <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/datetime.html\"><tt>datetime<\/tt><\/a> array.  When you create a plot with a <tt>datetime<\/tt> array, the tick labels will automatically update as you pan or zoom in the plot.  Tick labels change from days to hours to minutes to seconds as shown below.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/datetime_zoom.png\" alt=\"\"> <\/p><h4>Animated Plots<a name=\"313d065b-8523-4257-8fbc-938868fd453d\"><\/a><\/h4><p>MATLAB R2014b graphics introduces a new function called <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/animatedline.html\"><tt>animatedline<\/tt><\/a>. The code below shows how to create an <tt>animatedline<\/tt> and add points to it.<\/p><pre class=\"language-matlab\">x = 1:100;\r\ny = rand(1,100);\r\nmyLine = animatedline;\r\nmyLine.Color = blue;\r\nxlim([1 100])\r\nylim([0 1])\r\n<span class=\"keyword\">for<\/span> i = 1:100\r\n  addpoints(myLine,x(i),y(i))\r\n  pause(0.1)\r\n<span class=\"keyword\">end<\/span>\r\n<\/pre><p>The result is a plot that changes over time.  The picture below shows how the plot looks at iterations 20, 50, and 80 as points are added.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/animated_line.png\" alt=\"\"> <\/p><h4>Multilingual Text and Symbols in Plots<a name=\"a41686a9-00d4-411a-9bde-8a8ab14875ba\"><\/a><\/h4><p>R2014b graphics also supports the use of Unicode characters to show multilingual text in axis labels and titles and in user interface controls.  Here is an example.  See the <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/native2unicode.html\"><tt>native2unicode<\/tt><\/a> function for more information about Unicode strings.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/multilingual.png\" alt=\"\"> <\/p><h4>User Interfaces with Tab Panels<a name=\"8542c7fd-8311-4bc5-87e7-a8ce8d88c101\"><\/a><\/h4><p>Creating a user interface with tab panels has been a common request among MATLAB UI builders.  In the past, people had done it using undocumented functions.  In R2014b, those functions have been updated and are now fully documented and supported.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/tab_panels.png\" alt=\"\"> <\/p><p>You can easily create a user interface like the one shown above using the new <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/uitabgroup.html\"><tt>uitabgroup<\/tt><\/a> and <a href=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/uitab.html\"><tt>uitab<\/tt><\/a> functions.<\/p><pre class=\"language-matlab\">myFig = figure(<span class=\"string\">'Toolbar'<\/span>, <span class=\"string\">'none'<\/span>, <span class=\"keyword\">...<\/span><span class=\"comment\">                     % Create the figure<\/span>\r\n    <span class=\"string\">'Menubar'<\/span>, <span class=\"string\">'none'<\/span>, <span class=\"string\">'Name'<\/span>, <span class=\"string\">'Using Tab Panels'<\/span>);\r\ntgroup = uitabgroup(<span class=\"string\">'Parent'<\/span>, myFig);                     <span class=\"comment\">% Create the tabgroup<\/span>\r\ntab1 = uitab(<span class=\"string\">'Parent'<\/span>, tgroup, <span class=\"string\">'Title'<\/span>, <span class=\"string\">'Loan Data'<\/span>);     <span class=\"comment\">% Create the tabs<\/span>\r\ntab2 = uitab(<span class=\"string\">'Parent'<\/span>, tgroup, <span class=\"string\">'Title'<\/span>, <span class=\"string\">'Amortization Table'<\/span>);\r\ntab3 = uitab(<span class=\"string\">'Parent'<\/span>, tgroup, <span class=\"string\">'Title'<\/span>, <span class=\"string\">'Principal\/Interest Plot'<\/span>);\r\n<\/pre><h4>Improved Histograms<a name=\"cdbc9e07-1b97-48ec-aab2-386f2eb49849\"><\/a><\/h4><p>The new <a title=\"https:\/\/www.mathworks.com\/help\/matlab\/ref\/histogram.html (link no longer works)\"><tt>histogram<\/tt><\/a> function plots histograms with data-dependent bin picking. It provides capabilities that the traditional <tt>hist<\/tt> function does not including options for bin control, normalization, and visualization.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/hist_example.png\" alt=\"\"> <\/p><p>The code below shows how to create two overlapping histograms and modify their properties after they are created.<\/p><pre class=\"language-matlab\">data1 = randn(5000,1);\r\ndata2 = randn(5000,1)+ 2;\r\n<\/pre><pre class=\"language-matlab\">h1 = histogram(data1);\r\nhold <span class=\"string\">on<\/span>\r\nh2 = histogram(data2);\r\nhold <span class=\"string\">off<\/span>\r\nlegend <span class=\"string\">show<\/span>\r\n<\/pre><pre class=\"language-matlab\">h1.BinMethod = <span class=\"string\">'sturges'<\/span>;\r\nh2.Normalization = <span class=\"string\">'countdensity'<\/span>;\r\n<\/pre><h4>Have you tried the new graphics system in R2014b?<a name=\"515f05aa-82af-4755-8ea7-caa180db3c74\"><\/a><\/h4><p>Have you installed MATLAB R2014b?  Have you tried the new graphics system?  We'd love to hear your thoughts <a href=\"https:\/\/blogs.mathworks.com\/loren\/?p=1009#respond\">here<\/a>.<\/p><h4>Next up -- Part 2: Using Graphics Objects<a name=\"46008051-be76-424f-9f8b-30fe0c27c91f\"><\/a><\/h4><p>Well, that's all for now.  Be sure to check out Mike Garrity's new blog, <a href=\"https:\/\/blogs.mathworks.com\/graphics\">Mike on MATLAB Graphics<\/a>, for some cool ideas about what you can do with the new graphics system.<\/p><p>In my next post I'll talk about how graphics handles have changed in R2014b and how to use graphics objects.<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_8125d8bb465440c3b89deba40e077a63() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='8125d8bb465440c3b89deba40e077a63 ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 8125d8bb465440c3b89deba40e077a63';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2014 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_8125d8bb465440c3b89deba40e077a63()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2014b<br><\/p><\/div><!--\r\n8125d8bb465440c3b89deba40e077a63 ##### SOURCE BEGIN #####\r\n%% MATLAB R2014b Graphics - Part 1: Features of the New Graphics System\r\n% Today I\u00e2\u20ac\u2122d like to introduce a guest blogger, David Garrison, who is a\r\n% MATLAB Product Manager here at MathWorks. This is the first in a series\r\n% of blogs over the next few weeks describing the new graphics system in\r\n% R2014b and how some of the changes will affect you.\r\n%\r\n% * *Part 1: Features of the New Graphics System*\r\n% * Part 2: Using Graphics Objects\r\n% * Part 3: Compatibility Considerations in the New Graphics System\r\n% \r\n% Here is Part 1 of the series. \r\n\r\n%% Big Changes in R2014b\r\n% There are a number of big changes in R2014b.  Some of the new features\r\n% include:\r\n%\r\n% * New MATLAB graphics system\r\n% * Date and time data types with time zone and display options\r\n% * Git and Subversion source control integration and access to projects on\r\n% GitHub from File Exchange\r\n% * MATLAB toolbox packaging as single, installable files for easy sharing\r\n% and downloading of user-developed tools\r\n% * MATLAB MapReduce(TM) data analysis that scales Hadoop for big data\r\n% * Arduino and Android hardware support for interacting with motors and\r\n% actuators, and for accessing sensor data\r\n% \r\n% You can learn more about all these features in the \r\n% <https:\/\/www.mathworks.com\/help\/matlab\/release-notes.html MATLAB R2014b\r\n% Release Notes>.  This post is all about the new graphics system.\r\n\r\n%% The New MATLAB Graphics System\r\n% R2014b includes a new MATLAB graphics system.  The new graphics system\r\n% includes many new features which we will describe in this blog post. In\r\n% Part 2 of this series, we will describe how graphics handles have changed\r\n% in R2014b and how to use graphics objects. Finally, there are some\r\n% changes in the new system which may require changes in some existing\r\n% graphics related code. We'll discuss compatibility considerations in Part\r\n% 3 of this series.\r\n\r\n%% The New Look of MATLAB Graphics\r\n% When you create a plot in R2014b, you'll see that MATLAB graphics look\r\n% different than previous versions.\r\n%\r\n% <<new_look.png>>\r\n\r\n%%\r\n% The first thing that you will notice is that lines are plotted using a\r\n% different set of colors.  New line colors were selected to make it easier\r\n% to distinguish lines from one another and to help people with certain\r\n% types of color blindness.  There is also a new default colormap in R2014b\r\n% called _parula_.  The colors in the parula colormap\r\n% are ordered from dark to light and are perceptually uniform.  Smooth\r\n% changes in the data appear as smooth changes in color, while sharp\r\n% changes in the data appear as sharp changes in color.  Grid lines are now\r\n% gray to make data stand out visually.  Axis labels and titles are larger\r\n% and more prominent.  Lines and text are now anti-aliased (smoothed) to\r\n% remove jagged edges.\r\n\r\n%% Rotatable Tick Labels\r\n% If you're like me, you sometimes need to use long labels for the ticks in\r\n% your plot.  In previous versions of MATLAB, tick labels were always\r\n% displayed horizontally as shown on the left in the example below. In the\r\n% new graphics system, ticks can be rotated so you can create a plot like\r\n% that shown on the right. Tick labels on both the x and y axes can be\r\n% rotated.\r\n%\r\n% <<rotated_ticks.png>>\r\n%\r\n% For example, to rotate the X tick labels, use the |XTickLabelRotation|\r\n% property of the |Axes| object:\r\n%\r\n%   ax = gca;\r\n%   ax.XTickLabelRotation = -40;\r\n%% Automated Updating of |datetime| Tick Labels\r\n% R2014b includes a new date and time data type called a\r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/datetime.html |datetime|>\r\n% array.  When you create a plot with a |datetime| array, the tick labels\r\n% will automatically update as you pan or zoom in the plot.  Tick labels\r\n% change from days to hours to minutes to seconds as shown below.\r\n%\r\n% <<datetime_zoom.png>>\r\n\r\n%% Animated Plots\r\n% MATLAB R2014b graphics introduces a new function called\r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/animatedline.html |animatedline|>.\r\n% The code below shows how to create an |animatedline| and add points to it.\r\n% \r\n%   x = 1:100;\r\n%   y = rand(1,100);\r\n%   myLine = animatedline;\r\n%   myLine.Color = blue;\r\n%   xlim([1 100])\r\n%   ylim([0 1])\r\n%   for i = 1:100\r\n%     addpoints(myLine,x(i),y(i))\r\n%     pause(0.1)\r\n%   end\r\n\r\n%%\r\n% The result is a plot that changes over time.  The picture below shows\r\n% how the plot looks at iterations 20, 50, and 80 as points are added.\r\n% \r\n% <<animated_line.png>>\r\n  \r\n%% Multilingual Text and Symbols in Plots\r\n% R2014b graphics also supports the use of Unicode characters to show\r\n% multilingual text in axis labels and titles and in user interface\r\n% controls.  Here is an example.  See the\r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/native2unicode.html |native2unicode|>\r\n% function for more information about Unicode strings.\r\n%\r\n% <<multilingual.png>>\r\n\r\n%% User Interfaces with Tab Panels\r\n% Creating a user interface with tab panels has been a common request among\r\n% MATLAB UI builders.  In the past, people had done it using undocumented\r\n% functions.  In R2014b, those functions have been updated and are now\r\n% fully documented and supported.\r\n%\r\n% <<tab_panels.png>>\r\n% \r\n% You can easily create a user\r\n% interface like the one shown above using the new\r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/uitabgroup.html |uitabgroup|> and \r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/uitab.html |uitab|> functions.\r\n%\r\n%   myFig = figure('Toolbar', 'none', ...                     % Create the figure\r\n%       'Menubar', 'none', 'Name', 'Using Tab Panels');\r\n%   tgroup = uitabgroup('Parent', myFig);                     % Create the tabgroup \r\n%   tab1 = uitab('Parent', tgroup, 'Title', 'Loan Data');     % Create the tabs\r\n%   tab2 = uitab('Parent', tgroup, 'Title', 'Amortization Table');\r\n%   tab3 = uitab('Parent', tgroup, 'Title', 'Principal\/Interest Plot');\r\n\r\n%% Improved Histograms\r\n% The new \r\n% <https:\/\/www.mathworks.com\/help\/matlab\/ref\/histogram.html |histogram|>\r\n% function plots histograms with data-dependent bin picking.\r\n% It provides capabilities that the traditional |hist| function does not\r\n% including options for bin control, normalization, and visualization.\r\n% \r\n% <<hist_example.png>>\r\n%\r\n% The code below shows how to create two overlapping histograms and modify\r\n% their properties after they are created.\r\n%\r\n%   data1 = randn(5000,1);\r\n%   data2 = randn(5000,1)+ 2;\r\n%   \r\n%   h1 = histogram(data1);\r\n%   hold on\r\n%   h2 = histogram(data2);\r\n%   hold off\r\n%   legend show\r\n%   \r\n%   h1.BinMethod = 'sturges';\r\n%   h2.Normalization = 'countdensity';\r\n\r\n%% Have you tried the new graphics system in R2014b?\r\n% Have you installed MATLAB R2014b?  Have you tried the new graphics\r\n% system?  We'd love to hear your thoughts\r\n% <https:\/\/blogs.mathworks.com\/loren\/?p=1009#respond here>.\r\n%\r\n%% Next up REPLACE_WITH_DASH_DASH Part 2: Using Graphics Objects\r\n% Well, that's all for now.  Be sure to check out Mike Garrity's new blog,\r\n% <https:\/\/blogs.mathworks.com\/graphics Mike on MATLAB Graphics>,\r\n% for some cool ideas about what you can do with the new graphics system.\r\n%\r\n% In my next post I'll talk about how graphics\r\n% handles have changed in R2014b and how to use graphics objects.\r\n##### SOURCE END ##### 8125d8bb465440c3b89deba40e077a63\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/images\/loren\/2014\/hist_example.png\" onError=\"this.style.display ='none';\" \/><\/div><!--introduction--><p>Today I&#8217;d like to introduce a guest blogger, David Garrison, who is a MATLAB Product Manager here at MathWorks. This is the first in a series of blogs over the next few weeks describing the new graphics system in R2014b and how some of the changes will affect you.... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/loren\/2014\/10\/03\/matlab-r2014b-graphics-part-1-features-of-the-new-graphics-system\/\">read more >><\/a><\/p>","protected":false},"author":39,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[21,45,6,40,1],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts\/1009"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/users\/39"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/comments?post=1009"}],"version-history":[{"count":10,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts\/1009\/revisions"}],"predecessor-version":[{"id":1033,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/posts\/1009\/revisions\/1033"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/media?parent=1009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/categories?post=1009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/loren\/wp-json\/wp\/v2\/tags?post=1009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}