{"id":9486,"date":"2016-07-06T13:27:18","date_gmt":"2016-07-06T11:27:18","guid":{"rendered":"http:\/\/www.highcharts.com\/blog\/?p=9486"},"modified":"2026-01-12T09:01:49","modified_gmt":"2026-01-12T09:01:49","slug":"217-when-not-to-use-animations-in-charts","status":"publish","type":"post","link":"https:\/\/www.highcharts.com\/blog\/best-practices\/217-when-not-to-use-animations-in-charts\/","title":{"rendered":"When not to use animations in charts"},"content":{"rendered":"<p>Wile E. Coyote is not the only one running in circles.\u00a0Recently, this animated gif of the earth\u2019s gradual temperature rise made its way across the web.<br \/>\nImportant topic. Important data.<br \/>\nHowever, is this the best way to bring the data to life?<br \/>\nSome sites like <a href=\"http:\/\/gizmodo.com\/one-of-the-most-convincing-climate-change-visualization-1775743779\">Gizmodo<\/a> made a reference to this animation as \u201c<strong><em>One of the Most Convincing Climate Change Visualizations We&#8217;ve Ever Seen<\/em>.\u201d<\/strong> Mmmm\u2026 OK! A kind of click-bait IMHO, but at least the title said <em>visualization<\/em> \ud83d\ude42<\/p>\n<p>But for me, animations aren\u2019t always the best choice. I remember a quote, sadly, I don\u2019t remember the author, maybe\/surely was Alberto Cairo (If you know it please tell me who was!)<\/p>\n<p><strong>\u201cAnimations force the user to compare what they see with what they remember (saw).\u201d<\/strong><br \/>\nAnother thing I don\u2019t like about this spiral, is how the density of data at the end of the animation obscures information about the incremental change of speed along the time axis.<br \/>\n<img decoding=\"async\" src=\"https:\/\/blogs.reading.ac.uk\/climate-lab-book\/files\/2016\/05\/spiral_optimized.gif\" width=\"100%\" border=\"0\" \/><\/p>\n<h2 dir=\"ltr\">DATA &amp; PACKAGES<\/h2>\n<p>We\u2019ll use the data provide by <a href=\"https:\/\/twitter.com\/hrbrmstr\">hrbrmstr<\/a> in his <a href=\"https:\/\/github.com\/hrbrmstr\/hadcrut\">repo<\/a>. Bob Rudis made a beautiful representation of the data via ggplot2 and D3 using ageom_segment\/column range viz.<\/p>\n<p>About the packages: Here we\u2019ll use a lot of dplyr, tidyr, purrr for the data manipulation, for the colors we\u2019ll use viridis, lastly I\u2019ll use\u00a0<a href=\"http:\/\/jkunst.com\/highcharter\">highcharter<\/a> for charts.<span style=\"font-size: 1em;\">\u00a0<\/span><\/p>\n<pre class=\"r\"><span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"highcharter\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"readr\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"dplyr\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"tidyr\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"lubridate\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"purrr\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"keyword\">library<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"viridis\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">options<\/span><span class=\"paren\">(<\/span>\r\n  <span class=\"identifier\">highcharter.theme<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">hc_theme_darkunica<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">chart<\/span>  <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span>\r\n      <span class=\"identifier\">style<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">fontFamily<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"Roboto Condensed\"<\/span><span class=\"paren\">)<\/span>,\r\n      <span class=\"identifier\">backgroundColor<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"#323331\"<\/span>\r\n    <span class=\"paren\">)<\/span>,\r\n    <span class=\"identifier\">yAxis<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span>\r\n      <span class=\"identifier\">gridLineColor<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"#B71C1C\"<\/span>,\r\n      <span class=\"identifier\">labels<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">format<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"{value} C\"<\/span>, <span class=\"identifier\">useHTML<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span><span class=\"paren\">)<\/span>\r\n    <span class=\"paren\">)<\/span>,\r\n    <span class=\"identifier\">plotOptions<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">series<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">showInLegend<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>\r\n  <span class=\"paren\">)<\/span>\r\n<span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">df<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">read_csv<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"https:\/\/raw.githubusercontent.com\/hrbrmstr\/hadcrut\/master\/data\/temps.csv\"<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">df<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">mutate<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">date<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">ymd<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">year_mon<\/span><span class=\"paren\">)<\/span>,\r\n         <span class=\"identifier\">tmpstmp<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">datetime_to_timestamp<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">date<\/span><span class=\"paren\">)<\/span>,\r\n         <span class=\"identifier\">year<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">year<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">date<\/span><span class=\"paren\">)<\/span>,\r\n         <span class=\"identifier\">month<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">month<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">date<\/span>, <span class=\"identifier\">label<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span><span class=\"paren\">)<\/span>,\r\n         <span class=\"identifier\">color_m<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">colorize<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">median<\/span>, <span class=\"identifier\">viridis<\/span><span class=\"paren\">(<\/span><span class=\"number\">10<\/span>, <span class=\"identifier\">option<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"B\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>,\r\n         <span class=\"identifier\">color_m<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">hex_to_rgba<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">color_m<\/span>, <span class=\"number\">0.65<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">dfcolyrs<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">group_by<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">year<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">summarise<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">median<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">median<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">median<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">ungroup<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">mutate<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">color_y<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">colorize<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">median<\/span>, <span class=\"identifier\">viridis<\/span><span class=\"paren\">(<\/span><span class=\"number\">10<\/span>, <span class=\"identifier\">option<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"B\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>,\r\n         <span class=\"identifier\">color_y<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">hex_to_rgba<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">color_y<\/span>, <span class=\"number\">0.65<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">select<\/span><span class=\"paren\">(<\/span><span class=\"operator\">-<\/span><span class=\"identifier\">median<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">df<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">left_join<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">df<\/span>, <span class=\"identifier\">dfcolyrs<\/span>, <span class=\"identifier\">by<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"year\"<\/span><span class=\"paren\">)<\/span><\/pre>\n<p>The data is ready. Let\u2019s go!<\/p>\n<table class=\"table-responsive\">\n<thead>\n<tr>\n<th>year_mon<\/th>\n<th>median<\/th>\n<th>lower<\/th>\n<th>upper<\/th>\n<th>year<\/th>\n<th>decade<\/th>\n<th>month<\/th>\n<th>date<\/th>\n<th>tmpstmp<\/th>\n<th>color_m<\/th>\n<th>color_y<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1850-01-01<\/td>\n<td>-0.702<\/td>\n<td>-1.102<\/td>\n<td>-0.299<\/td>\n<td>1850<\/td>\n<td>1850<\/td>\n<td>Jan<\/td>\n<td>1850-01-01<\/td>\n<td>-3.786826e+12<\/td>\n<td>rgba(2,1,10,0.65)<\/td>\n<td>rgba(87,16,107,0.65)<\/td>\n<\/tr>\n<tr>\n<td>1850-02-01<\/td>\n<td>-0.284<\/td>\n<td>-0.675<\/td>\n<td>0.114<\/td>\n<td>1850<\/td>\n<td>1850<\/td>\n<td>Feb<\/td>\n<td>1850-02-01<\/td>\n<td>-3.784147e+12<\/td>\n<td>rgba(107,23,108,0.65)<\/td>\n<td>rgba(87,16,107,0.65)<\/td>\n<\/tr>\n<tr>\n<td>1850-03-01<\/td>\n<td>-0.732<\/td>\n<td>-1.080<\/td>\n<td>-0.383<\/td>\n<td>1850<\/td>\n<td>1850<\/td>\n<td>Mar<\/td>\n<td>1850-03-01<\/td>\n<td>-3.781728e+12<\/td>\n<td>rgba(1,0,8,0.65)<\/td>\n<td>rgba(87,16,107,0.65)<\/td>\n<\/tr>\n<tr>\n<td>1850-04-01<\/td>\n<td>-0.570<\/td>\n<td>-0.903<\/td>\n<td>-0.237<\/td>\n<td>1850<\/td>\n<td>1850<\/td>\n<td>Apr<\/td>\n<td>1850-04-01<\/td>\n<td>-3.779050e+12<\/td>\n<td>rgba(9,4,26,0.65)<\/td>\n<td>rgba(87,16,107,0.65)<\/td>\n<\/tr>\n<tr>\n<td>1850-05-01<\/td>\n<td>-0.325<\/td>\n<td>-0.662<\/td>\n<td>0.006<\/td>\n<td>1850<\/td>\n<td>1850<\/td>\n<td>May<\/td>\n<td>1850-05-01<\/td>\n<td>-3.776458e+12<\/td>\n<td>rgba(84,15,107,0.65)<\/td>\n<td>rgba(87,16,107,0.65)<\/td>\n<\/tr>\n<tr>\n<td>1850-06-01<\/td>\n<td>-0.213<\/td>\n<td>-0.515<\/td>\n<td>0.084<\/td>\n<td>1850<\/td>\n<td>1850<\/td>\n<td>Jun<\/td>\n<td>1850-06-01<\/td>\n<td>-3.773779e+12<\/td>\n<td>rgba(148,38,100,0.65)<\/td>\n<td>rgba(87,16,107,0.65)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>SPIRAL<\/h2>\n<p>First of all let\u2019s try to replicate the chart\/gif\/animation. \u00a0Here we\u2019ll construct a\u00a0<code>list<\/code>\u00a0of series to use with\u00a0<code>hc_add_series_list<\/code>\u00a0function.<\/p>\n<pre class=\"r\"><span class=\"identifier\">lsseries<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">group_by<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">year<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">do<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">data<\/span> <span class=\"operator\">=<\/span> .<span class=\"operator\">$<\/span><span class=\"identifier\">median<\/span>,\r\n    <span class=\"identifier\">color<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">first<\/span><span class=\"paren\">(<\/span>.<span class=\"operator\">$<\/span><span class=\"identifier\">color_y<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">mutate<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">name<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">year<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">list.parse3<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">hc1<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">highchart<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_chart<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">polar<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_plotOptions<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">series<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span>\r\n      <span class=\"identifier\">marker<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">enabled<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span>,\r\n      <span class=\"identifier\">animation<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span>,\r\n      <span class=\"identifier\">pointIntervalUnit<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"month\"<\/span><span class=\"paren\">)<\/span>\r\n  <span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span>\r\n  <span class=\"identifier\">hc_legend<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">enabled<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_xAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"datetime\"<\/span>, <span class=\"identifier\">min<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">0<\/span>, <span class=\"identifier\">max<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">365<\/span> <span class=\"operator\">*<\/span> <span class=\"number\">24<\/span> <span class=\"operator\">*<\/span> <span class=\"number\">36e5<\/span>,\r\n           <span class=\"identifier\">labels<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">format<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"{value:%B}\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span>\r\n  <span class=\"identifier\">hc_tooltip<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">headerFormat<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"{point.key}\"<\/span>,\r\n             <span class=\"identifier\">xDateFormat<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"%B\"<\/span>,\r\n             <span class=\"identifier\">pointFormat<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\" {series.name}: {point.y}\"<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_add_series_list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">lsseries<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">hc1<\/span><\/pre>\n<p>Ok!<br \/>\n(Without the glitz of the animation component, this doesn&#8217;t work that well&#8230;)<br \/>\n<iframe title=\"Highcharts polar chart\" style=\"width: 100%; height: 675px; border: none;\" src=\"https:\/\/www.highcharts.com\/samples\/embed\/highcharts\/blog\/polar\" allow=\"fullscreen\"><\/iframe>If we want replicate the animation part, we must hide all of the series using <em>transparency<\/em>.<\/p>\n<pre class=\"r\"><span class=\"identifier\">lsseries2<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">group_by<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">year<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">do<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">data<\/span> <span class=\"operator\">=<\/span> .<span class=\"operator\">$<\/span><span class=\"identifier\">median<\/span>,\r\n    <span class=\"identifier\">color<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"transparent\"<\/span>,\r\n    <span class=\"identifier\">enableMouseTracking<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span>,\r\n    <span class=\"identifier\">color2<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">first<\/span><span class=\"paren\">(<\/span>.<span class=\"operator\">$<\/span><span class=\"identifier\">color_y<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">mutate<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">name<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">year<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">list.parse3<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span><\/pre>\n<p>Then, using a little of JavaScript, we can add color to each series one by one.<\/p>\n<pre class=\"r\"><span class=\"identifier\">hc11<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">highchart<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_chart<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">polar<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_plotOptions<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">series<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">marker<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">enabled<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span>,\r\n    <span class=\"identifier\">animation<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span>,\r\n    <span class=\"identifier\">pointIntervalUnit<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"month\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span>\r\n  <span class=\"identifier\">hc_legend<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">enabled<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_title<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">text<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"Animated Spiral\"<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_xAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"datetime\"<\/span>, <span class=\"identifier\">min<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">0<\/span>, <span class=\"identifier\">max<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">365<\/span> <span class=\"operator\">*<\/span> <span class=\"number\">24<\/span> <span class=\"operator\">*<\/span> <span class=\"number\">36e5<\/span>,\r\n           <span class=\"identifier\">labels<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">format<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"{value:%B}\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span>\r\n  <span class=\"identifier\">hc_tooltip<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">headerFormat<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"{point.key}\"<\/span>, <span class=\"identifier\">xDateFormat<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"%B\"<\/span>,\r\n             <span class=\"identifier\">pointFormat<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\" {series.name}: {point.y}\"<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_add_series_list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">lsseries2<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_chart<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">events<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span>\r\n      <span class=\"identifier\">load<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">JS<\/span><span class=\"paren\">(<\/span><span class=\"string\">\"\r\n                function() {\r\n                console.log('ready');\r\n                var duration = 16 * 1000\r\n                var delta = duration\/this.series.length;\r\n                var delay = 2000;\r\n                \r\n                this.series.map(function(e){\r\n                setTimeout(function() {\r\n                e.update({color: e.options.color2, enableMouseTracking: true});\r\n                e.chart.setTitle({text: e.name})\r\n                }, delay)\r\n                delay = delay + delta;\r\n                });\r\n                \r\n                }\r\n                \"<\/span><span class=\"paren\">)<\/span>\r\n      <span class=\"paren\">)<\/span>\r\n      <span class=\"paren\">)<\/span><\/pre>\n<p>And,\u00a0<span style=\"font-size: 1em;\">voil\u00e0!<\/span><span style=\"font-size: 1em;\">.<\/span><\/p>\n<pre class=\"r\"><span class=\"identifier\">hc11<\/span><\/pre>\n<p><iframe title=\"Highcharts polar chart with animation\" style=\"width: 100%; height: 680px; border: none;\" src=\"https:\/\/www.highcharts.com\/samples\/embed\/highcharts\/blog\/polar-animation\" allow=\"fullscreen\"><\/iframe><\/p>\n<div id=\"spiral\" class=\"section level2\">\n<p>To see (replay) the animation effect, click on the &#8220;Javascript&#8221; tab in the above chart, and then click &#8220;Result&#8221;.<\/p>\n<h2><span style=\"font-size: 1em;\">SEASONAL PLOT<\/span><\/h2>\n<p>Do we need polar coordinates here? I don\u2019t know! Let\u2019s back to the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Euclidean_space\" target=\"_blank\" rel=\"noopener\">euclidean space<\/a> and see what happened:<\/p>\n<pre class=\"r\"><span class=\"identifier\">hc2<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">hc1<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_chart<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">polar<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span>, <span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"spline\"<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_xAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">max<\/span> <span class=\"operator\">=<\/span> <span class=\"paren\">(<\/span><span class=\"number\">365<\/span> <span class=\"operator\">-<\/span> <span class=\"number\">1<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">*<\/span> <span class=\"number\">24<\/span> <span class=\"operator\">*<\/span> <span class=\"number\">36e5<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_yAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">tickPositions<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">c<\/span><span class=\"paren\">(<\/span><span class=\"operator\">-<\/span><span class=\"number\">1.5<\/span>, <span class=\"number\">0<\/span>, <span class=\"number\">1.5<\/span>, <span class=\"number\">2<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">hc2<\/span><\/pre>\n<\/div>\n<p><iframe title=\"Highcharts seasonal plot\" style=\"width: 100%; height: 690px; border: none;\" src=\"https:\/\/www.highcharts.com\/samples\/embed\/highcharts\/blog\/seasonal-plot\" allow=\"fullscreen\"><\/iframe>Yummy! Multi-colored spaghetti!<br \/>\n(Food for thought: It is not so clear what happened over the years&#8230;)<\/p>\n<h2>HEAT MAP<\/h2>\n<p><span style=\"font-size: 1em;\">Here we put the years in xAxis, and month in yAxis:<\/span><\/p>\n<pre class=\"r\"><span class=\"identifier\">m<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">select<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">year<\/span>, <span class=\"identifier\">month<\/span>, <span class=\"identifier\">median<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">spread<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">year<\/span>, <span class=\"identifier\">median<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">select<\/span><span class=\"paren\">(<\/span><span class=\"operator\">-<\/span><span class=\"identifier\">month<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">as.matrix<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span> \r\n<span class=\"identifier\">rownames<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">m<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">month.abb<\/span>\r\n<span class=\"identifier\">hc3<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">hchart<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">m<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_colorAxis<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">stops<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">color_stops<\/span><span class=\"paren\">(<\/span><span class=\"number\">10<\/span>, <span class=\"identifier\">viridis<\/span><span class=\"paren\">(<\/span><span class=\"number\">10<\/span>, <span class=\"identifier\">option<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"B\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>,\r\n    <span class=\"identifier\">min<\/span> <span class=\"operator\">=<\/span> <span class=\"operator\">-<\/span><span class=\"number\">1<\/span>, <span class=\"identifier\">max<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">1<\/span>\r\n  <span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_yAxis<\/span><span class=\"paren\">(<\/span>\r\n    <span class=\"identifier\">title<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">text<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">NULL<\/span><span class=\"paren\">)<\/span>,\r\n    <span class=\"identifier\">tickPositions<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span>,\r\n    <span class=\"identifier\">labels<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">format<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"{value}\"<\/span>, <span class=\"identifier\">useHTML<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">TRUE<\/span><span class=\"paren\">)<\/span>\r\n  <span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">hc3<\/span><\/pre>\n<p><iframe title=\"Highcharts line\/time series chart\" style=\"width: 100%; height: 690px; border: none;\" src=\"https:\/\/www.highcharts.com\/samples\/embed\/highcharts\/blog\/global-temp-heatmap\" allow=\"fullscreen\"><\/iframe>If you look closely, you&#8217;ll realize that this is not your video card going bad. In fact, with the color scale used, we can see how the series values increase. However, it is not so easy to quantify the incremental change.<\/p>\n<div id=\"line-time-series\" class=\"section level2\">\n<h2>LINE \/ TIME SERIES<\/h2>\n<p>Back to basics. Let\u2019s try the most simple chart, representing the data as a time series.<\/p>\n<pre class=\"r\"><span class=\"identifier\">dsts<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">mutate<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">name<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">paste<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">decade<\/span>, <span class=\"identifier\">month<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">select<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">x<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">tmpstmp<\/span>, <span class=\"identifier\">y<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">median<\/span>, <span class=\"identifier\">name<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">hc4<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">highchart<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_xAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"datetime\"<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span>\r\n  <span class=\"identifier\">hc_yAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">tickPositions<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">c<\/span><span class=\"paren\">(<\/span><span class=\"operator\">-<\/span><span class=\"number\">1.5<\/span>, <span class=\"number\">0<\/span>, <span class=\"number\">1.5<\/span>, <span class=\"number\">2<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_add_series_df<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">dsts<\/span>, <span class=\"identifier\">name<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"Global Temperature\"<\/span>,\r\n                   <span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"line\"<\/span>, <span class=\"identifier\">color<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">hex_to_rgba<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">viridis<\/span><span class=\"paren\">(<\/span><span class=\"number\">10<\/span>, <span class=\"identifier\">option<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"B\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">[<\/span><span class=\"number\">7<\/span><span class=\"paren\">]<\/span><span class=\"paren\">)<\/span>,\r\n                   <span class=\"identifier\">lineWidth<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">1<\/span>,\r\n                   <span class=\"identifier\">states<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">hover<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">lineWidth<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">1<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>,\r\n                   <span class=\"identifier\">shadow<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span> \r\n<span class=\"identifier\">hc4<\/span><\/pre>\n<\/div>\n<p><iframe title=\"Highcharts line\/time series chart\" style=\"width: 100%; height: 690px; border: none;\" src=\"https:\/\/www.highcharts.com\/samples\/embed\/highcharts\/blog\/global-temp-time-series\" allow=\"fullscreen\"><\/iframe>Perhaps it <em>is<\/em> that simple. What do you think?<\/p>\n<div id=\"columrange\" class=\"section level2\">\n<h2>COLUMN RANGE<\/h2>\n<p>Let&#8217;s add information about the confidence interval as well as well as the media information, using a color same as\u00a0<a href=\"https:\/\/twitter.com\/hrbrmstr\">hrbrmstr<\/a>\u00a0did.<br \/>\nWith highcharter it\u2019s easy. Just define the dataframe with\u00a0<code>x<\/code>,\u00a0<code>low<\/code>,\u00a0<code>high<\/code>\u00a0and\u00a0<code>color<\/code>\u00a0and add it to a\u00a0<code>highchart<\/code>\u00a0object with the\u00a0<code>hc_add_series_df<\/code>function.<\/p>\n<pre class=\"r\"><span class=\"identifier\">dsts<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">df<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">mutate<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">name<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">paste<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">decade<\/span>, <span class=\"identifier\">month<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">select<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">x<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">tmpstmp<\/span>, <span class=\"identifier\">y<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">median<\/span>, <span class=\"identifier\">name<\/span><span class=\"paren\">)<\/span>\r\n<span class=\"identifier\">hc4<\/span> <span class=\"operator\">&lt;-<\/span> <span class=\"identifier\">highchart<\/span><span class=\"paren\">(<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_xAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"datetime\"<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span>\r\n  <span class=\"identifier\">hc_yAxis<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">tickPositions<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">c<\/span><span class=\"paren\">(<\/span><span class=\"operator\">-<\/span><span class=\"number\">1.5<\/span>, <span class=\"number\">0<\/span>, <span class=\"number\">1.5<\/span>, <span class=\"number\">2<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span> <span class=\"operator\">%&gt;%<\/span> \r\n  <span class=\"identifier\">hc_add_series_df<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">dsts<\/span>, <span class=\"identifier\">name<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"Global Temperature\"<\/span>,\r\n                   <span class=\"identifier\">type<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"line\"<\/span>, <span class=\"identifier\">color<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">hex_to_rgba<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">viridis<\/span><span class=\"paren\">(<\/span><span class=\"number\">10<\/span>, <span class=\"identifier\">option<\/span> <span class=\"operator\">=<\/span> <span class=\"string\">\"B\"<\/span><span class=\"paren\">)<\/span><span class=\"paren\">[<\/span><span class=\"number\">7<\/span><span class=\"paren\">]<\/span><span class=\"paren\">)<\/span>,\r\n                   <span class=\"identifier\">lineWidth<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">1<\/span>,\r\n                   <span class=\"identifier\">states<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">hover<\/span> <span class=\"operator\">=<\/span> <span class=\"identifier\">list<\/span><span class=\"paren\">(<\/span><span class=\"identifier\">lineWidth<\/span> <span class=\"operator\">=<\/span> <span class=\"number\">1<\/span><span class=\"paren\">)<\/span><span class=\"paren\">)<\/span>,\r\n                   <span class=\"identifier\">shadow<\/span> <span class=\"operator\">=<\/span> <span class=\"literal\">FALSE<\/span><span class=\"paren\">)<\/span> \r\n<span class=\"identifier\">hc4<\/span><\/pre>\n<p><iframe title=\"Highcharts Column Range\" style=\"width: 100%; height: 690px; border: none;\" src=\"https:\/\/www.highcharts.com\/samples\/embed\/highcharts\/blog\/global-temp-column-range\n\" allow=\"fullscreen\"><\/iframe>(IMHO) This is a really way to show what we want to say:<\/p>\n<ul>\n<li>With a time series chart it is easy to compare the time cohorts with each other.<\/li>\n<li>The color, in particular the last\u00a0<em>yellowish<\/em>\u00a0part, adds importance, and guides our eyes to the anomalous\u00a0part of the chart as a reference-point for comparison.<\/li>\n<\/ul>\n<p>Do you have other or better ways to represent this data? \u00a0Surely there must be more to it than this!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Using the popular animated global warming chart as an example, the question is: Can it be done better?<\/p>\n","protected":false},"author":42,"featured_media":10705,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"meta_title":"","meta_description":"","hc_selected_options":[],"footnotes":""},"categories":[1104],"tags":[1094],"coauthors":[714],"class_list":["post-9486","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices","tag-highcharts-core"],"_links":{"self":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts\/9486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/comments?post=9486"}],"version-history":[{"count":1,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts\/9486\/revisions"}],"predecessor-version":[{"id":29067,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts\/9486\/revisions\/29067"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/media\/10705"}],"wp:attachment":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/media?parent=9486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/categories?post=9486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/tags?post=9486"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/coauthors?post=9486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}