{"id":47659,"date":"2020-01-12T03:01:30","date_gmt":"2020-01-11T17:01:30","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=47659"},"modified":"2020-01-11T11:59:11","modified_gmt":"2020-01-11T01:59:11","slug":"google-chart-bubble-chart-explorer-zoom-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/google-chart-bubble-chart-explorer-zoom-tutorial\/","title":{"rendered":"Google Chart Bubble Chart Explorer Zoom Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Google Chart Bubble Chart Explorer Zoom Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/bubble_chart_explorer.jpg\" title=\"Google Chart Bubble Chart Explorer Zoom Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Google Chart Bubble Chart Explorer Zoom Tutorial<\/p><\/div>\n<p>Do the words &#8220;outlier&#8221; and &#8220;clutter&#8221; have an association for you?<\/p>\n<p>The work of yesterday&#8217;s <a title='PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial' href='#phpwgmteft'>PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial<\/a> got us to first think about &#8220;clutter&#8221;, because it was hard to get to some data points, especially in the &#8220;S&#8221; section of &#8220;Growth of Merchandise Trade&#8221; data Bubble Charts, because of &#8220;clutter&#8221;.<\/p>\n<p>But then, it occurred to us, this being a &#8220;data&#8221; related subject, that &#8230;<\/p>\n<blockquote><p>\noutlier values can contribute to data clutter\n<\/p><\/blockquote>\n<p> &#8230; in the fields of &#8220;statistics&#8221; (as well as other scientific and mathematical fields <font size=1>(but not <a style='cursor:pointer; text-decoration:underline;' onclick=\"document.getElementById('dcow').style.display='block';\">&#8220;outstanding in their own field&#8221;<\/a>)<\/font><\/p>\n<div id=dcow style='width:100%;height:500px;display:none;background:URL(http:\/\/www.rjmprogramming.com.au\/Windows\/cows.jpg);background-repeat:no-repeat;background-size:contain;'><\/div>\n<p>) and &#8220;graphical data representation&#8221; the presence of <a target=_blank title='Outlier information from Wikipedia, thanks' href='https:\/\/en.wikipedia.org\/wiki\/Outlier'>&#8220;outlier&#8221; values<\/a> can skew a representation of all data values so that, just with the <a target=_blank title='Cycling peloton images via Google' href='https:\/\/www.google.com\/search?q=cycling+peloton&#038;rlz=1C5CHFA_enAU832AU832&#038;sxsrf=ACYBGNRVb7Y50mPXtmrGI60OLN2vH88Bwg:1578703195029&#038;source=lnms&#038;tbm=isch&#038;sa=X&#038;ved=2ahUKEwj215TZp_rmAhWXYisKHcBDCIQQ_AUoAXoECA4QAw&#038;biw=1418&#038;bih=757'>peloton<\/a> in a cycling race deciding whether to bridge the gap to an &#8220;outlier&#8221; breakaway leader cyclist, it gets &#8220;cluttered&#8221;.<\/p>\n<p>Say the word &#8220;clutter&#8221; and the reaction with people is debatable.  What is not debatable is that given the opportunity, some people like a mechanism to get through &#8220;clutter&#8221; to see (the essence of) what lies beneath.  Maybe what isn&#8217;t debatable about humans, especially early on, is our capacity for curiosity?   Anyway, yesterday&#8217;s work got us to delving into <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.'>Google Chart<\/a> <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/gallery\/bubblechart' title='Bubble Chart'>Bubble Chart<\/a> documentation (specifically the Options section), where we found an experimental functionality <a target=_blank title='Google' href='https:\/\/google.com'>Google<\/a> refers to as &#8220;explorer&#8221; that allows for &#8230;<\/p>\n<blockquote cite='https:\/\/developers.google.com\/chart\/interactive\/docs\/gallery\/bubblechart'><p>\nThe Google Charts explorer supports three actions:<br \/>\n<br \/>\ndragToPan: Drag to pan around the chart horizontally and vertically. To pan only along the horizontal axis, use explorer: { axis: &#8216;horizontal&#8217; }. Similarly for the vertical axis.<br \/>\ndragToZoom: The explorer&#8217;s default behavior is to zoom in and out when the user scrolls. If explorer: { actions: [&#8216;dragToZoom&#8217;, &#8216;rightClickToReset&#8217;] } is used, dragging across a rectangular area zooms into that area. We recommend using rightClickToReset whenever dragToZoom is used. See explorer.maxZoomIn, explorer.maxZoomOut, and explorer.zoomDelta for zoom customizations.<br \/>\nrightClickToReset: Right clicking on the chart returns it to the original pan and zoom level.\n<\/p><\/blockquote>\n<p>Sounds promising!  But not, we suspected, and it <b>Pan<\/b>Ned (tee hee) out(<a target=_blank title='?' href='https:\/\/www.youtube.com\/watch?v=tfFFiqZ8ZdE'>lier<\/a>) to be true (boo hoo), with mobile platforms <font size=1>(not into <i>drag<\/i>)<\/font>, alas.  Nevertheless, on non-mobile, we tried the &#8220;dragToPan&#8221; default idea initially, helping our mind &#8220;center things&#8221; but not great for &#8220;decluttering&#8221; purposes.  But the &#8220;dragToZoom&#8221; (coupled with &#8220;rightClickToReset&#8221; idea) was a great tool for Bubble Chart decluttering as you can see with today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/bubble_chart_explorer.jpg\" title=\"Tutorial picture\">tutorial picture<\/a>.   And so, we implemented it for <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php---GETME\" title=\"growth_of_merchandise_trade_2006_2016.php\">the changed<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php---GETME\" title=\"growth_of_merchandise_trade_2006_2016.php\">growth_of_merchandise_trade_2006_2016.php<\/a> you can click\/touch this <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php\" title=\"Click picture\">live run<\/a> link supervising <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/bubble_chart.php------GETME\" title=\"bubble_chart.php\">a $_GET[&#8216;options&#8217;] (or $_POST[&#8216;options]) driven, changed<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/bubble_chart.php------GETME\" title=\"bubble_chart.php\">bubble_chart.php<\/a> Google Chart <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/bubble_chart.php\" title=\"Google Chart Bubble Chart interfacer\">Bubble Chart interfacer<\/a>.<\/p>\n<p>.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/google-chart-bubble-chart-explorer-zoom-tutorial\/'>Google Chart Bubble Chart Explorer Zoom Tutorial<\/a>.<\/p-->\n<hr>\n<p id='phpwgmteft'>Previous relevant <a target=_blank title='PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/php-worldbank-growth-of-merchandise-trade-emoji-flags-tutorial\/'>PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.jpg\" title=\"PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial<\/p><\/div>\n<p>With Internationalization thoughts fresh in the mind, we decided to revisit <a title='PHP Worldbank Growth of Merchandise Trade Tutorial' href='#phpwgmtt'>PHP Worldbank Growth of Merchandise Trade Tutorial<\/a>&#8216;s Country by Country &#8220;Growth of Merchandise Trade&#8221; Bubble Chart to see what we now know more about to improve this web application.<\/p>\n<p>And so we wondered whether we could enhance with Emoji Flags.  Sounds reasonable, but when we&#8217;ve done this in the recent past (eg. <a target=_blank title='Window LocalStorage Client Versus Server Map Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/window-localstorage-client-versus-server-map-tutorial\/'>Window LocalStorage Client Versus Server Map Tutorial<\/a>) it&#8217;s been with Javascript clientside logic, not PHP serverside code, as is the go with our <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.'>Google Chart<\/a> <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/gallery\/bubblechart' title='Bubble Chart'>Bubble Chart<\/a> interfacing.  Well, here&#8217;s our approach (making global $flagentity variable filled in with Emoji Flag content as found) here &#8230;<\/p>\n<p>&lt;?php<br \/>\n<code><br \/>\n$flagentity=\"\";  \/\/ global here and two below<br \/>\n$lri=[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"];<br \/>\n$dri=[\"U+1F1E6\",\"U+1F1E7\",\"U+1F1E8\",\"U+1F1E9\",\"U+1F1EA\",\"U+1F1EB\",\"U+1F1EC\",\"U+1F1ED\",\"U+1F1EE\",\"U+1F1EF\",\"U+1F1F0\",\"U+1F1F1\",\"U+1F1F2\",\"U+1F1F3\",\"U+1F1F4\",\"U+1F1F5\",\"U+1F1F6\",\"U+1F1F7\",\"U+1F1F8\",\"U+1F1F9\",\"U+1F1FA\",\"U+1F1FB\",\"U+1F1FC\",\"U+1F1FD\",\"U+1F1FE\",\"U+1F1FF\"];<br \/>\n$iso_country_codes=['AF','Afghanistan',<br \/>\n'AX','Aland Islands',<br \/>\n'AL','Albania',<br \/>\n'DZ','Algeria',<br \/>\n'AS','American Samoa',<br \/>\n'AD','Andorra', ... ];  \/\/ global ... not all shown<br \/>\n<br \/>\nfunction uvaltosfcp($string) { \/\/ thanks to <a target=_blank title='https:\/\/stackoverflow.com\/questions\/1805802\/php-convert-unicode-codepoint-to-utf-8' href='https:\/\/stackoverflow.com\/questions\/1805802\/php-convert-unicode-codepoint-to-utf-8'>https:\/\/stackoverflow.com\/questions\/1805802\/php-convert-unicode-codepoint-to-utf-8<\/a><br \/>\n  return <a target=_blank title='PHP html-entity-decode function information' href='https:\/\/www.php.net\/manual\/en\/function.html-entity-decode.php'>html_entity_decode<\/a>(preg_replace(\"\/U\\+([0-9A-F]{5})\/\", \"&#x\\\\1;\", $string), ENT_NOQUOTES, 'UTF-8');<br \/>\n}<br \/>\n<br \/>\nfunction flagflag($inctryname) {<br \/>\n  global $flagentity, $iso_country_codes, $lri, $dri;<br \/>\n  $uretv=\"\";<br \/>\n  $flagentity=\"\";<br \/>\n  if ($inctryname != \"\") {<br \/>\n  $matchfound=false;<br \/>\n  for ($im=1; $im&lt;sizeof($iso_country_codes); $im+=2) {<br \/>\n    if (strpos(strtolower($iso_country_codes[$im]), strtolower($inctryname)) !== false) {<br \/>\n      for ($jm=0; $jm&lt;sizeof($lri); $jm++) {<br \/>\n       if (strtoupper(substr($iso_country_codes[-1 + $im],0,1)) == $lri[$jm]) {<br \/>\n         $uretv.=$dri[$jm]; \/\/uvaltosfcp($dri[$jm]);<br \/>\n         $matchfound=true;<br \/>\n       }<br \/>\n      }<br \/>\n      for ($jm=0; $jm&lt;sizeof($lri); $jm++) {<br \/>\n       if (strtoupper(substr($iso_country_codes[-1 + $im],1,1)) == $lri[$jm]) {<br \/>\n         $uretv.=$dri[$jm]; \/\/uvaltosfcp($dri[$jm]);<br \/>\n       }<br \/>\n      }<br \/>\n      $flagentity=uvaltosfcp($uretv); \/\/$uretv;<br \/>\n      return $inctryname;<br \/>\n    }<br \/>\n  }<br \/>\n  if ($uretv == \"\" && !$matchfound) {<br \/>\n  for ($im=1; $im&lt;sizeof($iso_country_codes); $im+=2) {<br \/>\n    if (strpos(explode(\",\",strtolower($iso_country_codes[$im]))[0], explode(\",\",strtolower($inctryname))[0]) !== false) {<br \/>\n      for ($jm=0; $jm&lt;sizeof($lri); $jm++) {<br \/>\n       if (strtoupper(substr($iso_country_codes[-1 + $im],0,1)) == $lri[$jm]) {<br \/>\n         $uretv.=$dri[$jm]; \/\/uvaltosfcp($dri[$jm]);<br \/>\n         $matchfound=true;<br \/>\n       }<br \/>\n      }<br \/>\n      for ($jm=0; $jm&lt;sizeof($lri); $jm++) {<br \/>\n       if (strtoupper(substr($iso_country_codes[-1 + $im],1,1)) == $lri[$jm]) {<br \/>\n         $uretv.=$dri[$jm]; \/\/uvaltosfcp($dri[$jm]);<br \/>\n       }<br \/>\n      }<br \/>\n      $flagentity=uvaltosfcp($uretv); \/\/$uretv;<br \/>\n      return $inctryname;<br \/>\n    }<br \/>\n  }<br \/>\n  }<br \/>\n  }<br \/>\n  return $inctryname;<br \/>\n}<br \/>\n<\/code><br \/>\n?&gt;<\/p>\n<p>Another &#8220;peer integration&#8221; issue today too.  The resource we&#8217;d like to thank regarding today&#8217;s work, that being <a target=_blank title='Growth of Merchandise Trade 2003-2013' href='http:\/\/wdi.worldbank.org\/table\/6.1'>Growth of Merchandise Trade<\/a> has updated its data set for the year range 2006-2016 and we&#8217;d like to maintain this, and the previous 2003-2013 data set, for comparison purposes.  The Bubble Chart report is the important thing though, and so a select (dropdown) element, probably &#8220;below the fold&#8221; for you, facilitates this expansion of functionality.<\/p>\n<p>To try the <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php--GETME\" title=\"growth_of_merchandise_trade_2006_2016.php\">&#8220;how we got there&#8221;<\/a> <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php--GETME\" title=\"growth_of_merchandise_trade_2006_2016.php\">growth_of_merchandise_trade_2006_2016.php<\/a> you can click\/touch this <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade_2006_2016.php\" title=\"Click picture\">live run<\/a> link.<\/p>\n<p><!--p>You can also see this play out at WordPress 4.1.1's <a target=_blank  href='\/\/www.rjmprogramming.com.au\/ITblog\/php-worldbank-growth-of-merchandise-trade-emoji-flags-tutorial\/'>PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial<\/a>.<\/p-->\n<hr>\n<p id='phpwgmtt'>Previous relevant <a target=_blank title='PHP Worldbank Growth of Merchandise Trade Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/php-worldbank-growth-of-merchandise-trade-tutorial\/'>PHP Worldbank Growth of Merchandise Trade Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"PHP Worldbank Growth of Merchandise Trade Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.jpg\" title=\"PHP Worldbank Growth of Merchandise Trade Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">PHP Worldbank Growth of Merchandise Trade Tutorial<\/p><\/div>\n<p>We&#8217;ve said it before, and (no doubt) we&#8217;ll say it again &#8230; there are great public data sources out there for you to explore.<\/p>\n<p>As far as international data goes the <a target=_blank title='Worldbank data source' href='http:\/\/wdi.worldbank.org\/'>Worldbank<\/a> series of statistics is great, so, thanks.<\/p>\n<p>Today we combine the Worldbank data for <a target=_blank title='Growth of Merchandise Trade 2003-2013' href='http:\/\/wdi.worldbank.org\/table\/6.1'>Growth of Merchandise Trade 2003-2013<\/a> with the wonderful <a target=_blank href='https:\/\/developers.google.com\/chart\/interactive\/docs\/index' title='Google Chart Tools provide a perfect way to visualize data on your website. From simple line charts to complex hierarchical tree maps, the chart galley provides a large number of well-designed chart types. Populating your data is easy using the provided client- and server-side tools.'>Google Chart<\/a> Bubble Chart to create (52 = (first letters of country name) 26 x 2 (concepts: Exports and Imports)) reporting charts of interest, we hope.  Again, as with any reporting subject, it is a personal thing, whether the subject matter of a report is of interest, but you could say that about so many things in life.<\/p>\n<p>So, we offer some PHP source code you could call <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.php_GETME\" title='growth_of_merchandise_trade.php'>growth_of_merchandise_trade.php<\/a> and a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.php\" title=\"Click picture\">live run<\/a> link as well, the full loading of which requires patience.<\/p>\n<p><b><i>Stop Press<\/i><\/b><\/p>\n<p>Tomorrow we go over what was needed to change PHP code above to be more mobile friendly &#8230;<\/p>\n<blockquote>\n<ul>\n<li><a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.php-GETME\" title=\"growth_of_merchandise_trade.php\" target=\"_blank\">growth_of_merchandise_trade.php<\/a> <a href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.php-GETME\" title=\"growth_of_merchandise_trade.php\" target=\"_blank\">changes<\/a> (to cater for select event (mobile touch) functionality) and <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/BubbleChart\/growth_of_merchandise_trade.php\" title='growth_of_merchandise_trade.php'>live run<\/a> link for yesterday&#8217;s web application<\/li>\n<\/ul>\n<\/blockquote>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d19609' onclick='var dv=document.getElementById(\"d19609\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/php\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d19609' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d47651' onclick='var dv=document.getElementById(\"d47651\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/emoji\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d47651' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d47659' onclick='var dv=document.getElementById(\"d47659\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/zoom\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d47659' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Do the words &#8220;outlier&#8221; and &#8220;clutter&#8221; have an association for you? The work of yesterday&#8217;s PHP Worldbank Growth of Merchandise Trade Emoji Flags Tutorial got us to first think about &#8220;clutter&#8221;, because it was hard to get to some data &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/google-chart-bubble-chart-explorer-zoom-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,14,37],"tags":[166,199,3179,290,2492,3177,2237,519,538,752,795,3180,3176,897,3181,932,3178,1196,1360,1402,1460,1498],"class_list":["post-47659","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-tutorials","tag-bubble-chart","tag-chart","tag-clutter","tag-data","tag-declutter","tag-distribution","tag-drag","tag-google-charts","tag-graph","tag-mathematics","tag-mobile","tag-non-mobile","tag-outlier","tag-pan","tag-peloton","tag-php","tag-representation","tag-statistics","tag-value","tag-web-application","tag-worldbank","tag-zoom"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/47659"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=47659"}],"version-history":[{"count":6,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/47659\/revisions"}],"predecessor-version":[{"id":47665,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/47659\/revisions\/47665"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=47659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=47659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=47659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}