{"id":13400,"date":"2021-08-17T11:21:06","date_gmt":"2021-08-17T11:21:06","guid":{"rendered":"https:\/\/www.anychart.com\/blog\/?p=13400"},"modified":"2022-08-13T11:09:54","modified_gmt":"2022-08-13T11:09:54","slug":"js-resource-gantt-chart","status":"publish","type":"post","link":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/","title":{"rendered":"Building JS Resource Gantt Chart to Visualize Tokyo 2020 Paralympic Schedule"},"content":{"rendered":"<p><a href=\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\"><img decoding=\"async\" class=\"alignnone size-full wp-image-13427\" src=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png\" alt=\"A Mac screen with an interactive JavaScript Resource Gantt chart visualizing the Tokyo 2020 Paralympic schedule by venue\" width=\"100%\" srcset=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png 2000w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-300x169.png 300w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-768x432.png 768w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-1024x575.png 1024w\" sizes=\"(max-width: 2000px) 100vw, 2000px\" \/><\/a>Smart resource allocation is a must to achieve a high level of operational efficiency. Aiming to ensure it, project management professionals commonly rely on a special form\u00a0of <a href=\"https:\/\/www.anychart.com\/blog\/2018\/11\/20\/data-visualization-definition-history-examples\/\">data visualization<\/a> called a <strong>Resource Gantt chart<\/strong>. Creating\u00a0graphics like this may seem daunting at first\u00a0sight.\u00a0But I am here to show you an easy way to build Resource Gantt charts with JS using\u00a0a compelling, topical example.<\/p>\n<p>Resource Gantt charts, also known as simply <a href=\"https:\/\/www.anychart.com\/chartopedia\/chart-type\/resource-chart\/\">Resource charts<\/a>, consist of bars oriented along the horizontal axis. Each bar\u00a0visualizes\u00a0a resource used by an activity, with the length representing the duration while that resource is occupied by that activity. The left and right edges of the bars display the start and\u00a0end times. The resources, or event labels, are\u00a0listed on the left. The dates\u00a0and times are\u00a0shown in the header.<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/2020_Summer_Paralympics\" target=\"_blank\" rel=\"nofollow\">Tokyo 2020 Paralympic Games<\/a> are just around the corner. So, I decided to visualize their sports program by venue. Follow along with this stepwise tutorial\u00a0and you will learn how to create a\u00a0cool JavaScript Resource Gantt chart\u00a0visualizing the <strong>Tokyo 2020 Paralympic schedule<\/strong>!<\/p>\n<p><!--more Read the JS charting tutorial \u00bb--><\/p>\n<h2>JS Resource Gantt Chart Preview<\/h2>\n<p>Below\u00a0is a preview demonstrating how the final chart of the tutorial will look. Take a glance and then see how it will be built right before your eyes.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-13428\" src=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-javascript.png\" alt=\"The final HTML5 JavaScript Resource Gantt chart that will have been built by the end of this data visualization tutorial\" width=\"100%\" srcset=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-javascript.png 1188w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-javascript-300x163.png 300w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-javascript-768x418.png 768w, https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-javascript-1024x558.png 1024w\" sizes=\"(max-width: 1188px) 100vw, 1188px\" \/><\/p>\n<h2>Creating Resource Gantt Chart with JavaScript<\/h2>\n<p>The basic process of building a JavaScript Resource Gantt chart, just like any other JS chart, can be split into\u00a0four\u00a0quite straightforward steps: create a page, include scripts, add data, and write some code for the visualization. So, let the games begin!<\/p>\n<h3>1. Create an HTML page<\/h3>\n<p>The first step is creating a blank HTML page and adding a <code>&lt;div&gt;<\/code> element to hold the Resource chart. This block element is given a unique id that will be used for later reference.<\/p>\n<p>The width and height of the <code>&lt;div&gt;<\/code>\u00a0are set to 100% to display the chart over the whole screen but this can be modified as per the requirements.<\/p>\n<pre><code class=\"html\">&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Resource Gantt Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style type=\"text\/css\"&gt;      \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html, body, #container { \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%; height: 100%; margin: 0; padding: 0; \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0&lt;\/head&gt;\r\n\u00a0\u00a0&lt;body&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"container\"&gt;&lt;\/div&gt;\r\n\u00a0\u00a0&lt;\/body&gt;\r\n&lt;\/html&gt;<\/code><\/pre>\n<h3>2. Include the necessary scripts<\/h3>\n<p>The next step is to link the required JS scripts to create the chart we need.<\/p>\n<p>Although there are many\u00a0JavaScript charting libraries out there,\u00a0far from all of them have\u00a0Gantt\u00a0charts, not to mention Resource Gantt charts specifically. In this tutorial, I\u00a0use <a href=\"https:\/\/www.anychart.com\/\">AnyChart JS Charts<\/a>. This JavaScript (HTML5) charting library is\u00a0a\u00a0good fit here as it supports\u00a0both Project and Resource Gantt charts out of the box under the <a href=\"https:\/\/www.anychart.com\/products\/anygantt\/\">AnyGantt<\/a> umbrella.\u00a0Plus, it has extensive <a href=\"https:\/\/docs.anychart.com\/Gantt_Chart\/Resource_Chart\" target=\"_blank\" rel=\"nofollow\">documentation<\/a>\u00a0and useful <a href=\"https:\/\/www.anychart.com\/products\/anygantt\/gallery\/\">examples<\/a>\u00a0that can be experimented with\u00a0in an online JS chart code editor utility called <a href=\"https:\/\/playground.anychart.com\/\" target=\"_blank\" rel=\"nofollow\">Playground<\/a>. The library is free for non-commercial use.<\/p>\n<p>So, I will reference its corresponding files. For my JS Resource chart, I need to add AnyChart\u2019s \u2018<a href=\"https:\/\/docs.anychart.com\/Quick_Start\/Modules#core\" target=\"_blank\" rel=\"nofollow\">Core<\/a>\u2019 and \u2018<a href=\"https:\/\/docs.anychart.com\/Quick_Start\/Modules#gantt\" target=\"_blank\" rel=\"nofollow\">Gantt<\/a>\u2019 modules, as well as the \u2018<a href=\"https:\/\/docs.anychart.com\/Quick_Start\/Modules#data_adapter\" target=\"_blank\" rel=\"nofollow\">Data Adapter\u2019<\/a>\u00a0module that will let me load the data in a straightforward manner. Remember that the script files are\u00a0included in the <code>&lt;head&gt;<\/code> section of the web page.<\/p>\n<pre><code class=\"html\">&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Resource Gantt Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/js\/anychart-core.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/js\/anychart-gantt.min.js\"&gt;&lt;\/script&gt;\r\n    &lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/js\/anychart-data-adapter.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style type=\"text\/css\"&gt;      \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html, body, #container { \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%; height: 100%; margin: 0; padding: 0; \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0&lt;\/head&gt;\r\n\u00a0\u00a0&lt;body&gt;  \r\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"container\"&gt;&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ The code for the JS resource chart will be placed here.\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/script&gt;\r\n\u00a0\u00a0&lt;\/body&gt;\r\n&lt;\/html&gt;<\/code><\/pre>\n<h3>3. Add the data<\/h3>\n<p>AnyChart\u00a0supports\u00a0<a href=\"https:\/\/docs.anychart.com\/Working_with_Data\/Supported_Data_Formats\" target=\"_blank\" rel=\"nofollow\">multiple<\/a> ways\u00a0of loading data to charts like CSV, JSON, Google Sheets,\u00a0etc Here, I go with JSON.<\/p>\n<p>I have already taken\u00a0data about the Paralympic venues from the <a href=\"https:\/\/olympics.com\/tokyo-2020\/en\/paralympics\/venues\/\" target=\"_blank\" rel=\"nofollow\">official website<\/a> and pre-processed it to include relevant fields for the JS Resource Gantt chart. You can download the JSON file <a href=\"https:\/\/gist.githubusercontent.com\/shacheeswadia\/21da3da501982400b8ca35690b17ea5a\/raw\/d17e3774c6db1502b5d95677a5656ecc43f24526\/resourceChartData.json\" target=\"_blank\" rel=\"nofollow\">here<\/a>.<\/p>\n<p>Loading the JSON data from the file:<\/p>\n<pre><code class=\"javascript\">anychart.data.loadJsonFile(\"https:\/\/gist.githubusercontent.com\/shacheeswadia\/21da3da501982400b8ca35690b17ea5a\/raw\/d17e3774c6db1502b5d95677a5656ecc43f24526\/resourceChartData.json\", function (data) {})<\/code><\/pre>\n<h3>4. Write the code to build the chart<\/h3>\n<p>So, the qualifying steps are all done, and now is the time for the main event. One of the best parts about using a\u00a0robust JS charting library is that a basic functional chart is created in just a few lines of code.<\/p>\n<p>Before anything else, I put all the code inside the <code>anychart.onDocumentReady()<\/code> function to ensure that the page is fully loaded before the code is executed. Next, the data is loaded using the\u00a0<code>anychart.data.loadJsonFile()<\/code> function.\u00a0A Resource Gantt chart requires the data in a tree format. This is done by creating\u00a0a data tree. After this, the chart instance is created\u00a0and the data is set for the chart. To ensure that the bar elements fit into the screen, the <code>fitAll<\/code> function is specified.<\/p>\n<pre><code class=\"javascript\">\/\/ create a data tree\r\nvar treeData = anychart.data.tree(data, \"as-tree\");\r\n\r\n\/\/ create a resource gantt chart\r\nvar chart = anychart.ganttResource(); \r\n\r\n\/\/ set the data\r\nchart.data(treeData); \r\n\r\n\/\/ fit the elements to the width of the timeline\r\nchart.fitAll();<\/code><\/pre>\n<p>The following thing is absolutely optional but in this case, it will make the visualization look even more neat and cute:<\/p>\n<pre><code class=\"javascript\">\/\/ set the position of the splitter to match the first column\r\nchart.dataGrid().fixedColumns(true);<\/code><\/pre>\n<p>The final steps are setting the container id to the previously declared <code>&lt;div&gt;<\/code> reference and drawing the resulting JS-based Resource Gantt chart.<\/p>\n<pre><code class=\"javascript\">\/\/ set the container id\r\nchart.container(\"container\");\r\n\r\n\/\/ draw the chart\r\nchart.draw();<\/code><\/pre>\n<p>Isn\u2019t this absolutely unbelievable? A functional, beautiful, interactive JavaScript Resource Gantt chart is built in so few lines of code!<\/p>\n<p><iframe loading=\"lazy\" class=\"anychart-embed anychart-embed-FFgQR2vE\" src=\"https:\/\/playground.anychart.com\/FFgQR2vE\/iframe\" width=\"300\" height=\"150\" frameborder=\"0\" sandbox=\"allow-scripts allow-pointer-lock allow-same-origin allow-popups allow-modals allow-forms\" allowfullscreen=\"allowfullscreen\"><br \/>\n<\/iframe><br \/>\n<script type=\"text\/javascript\">(function(){\nfunction ac_add_to_head(el){\n\tvar head = document.getElementsByTagName('head')[0];\n\thead.insertBefore(el,head.firstChild);\n}\nfunction ac_add_style(css){\n\tvar ac_style = document.createElement('style');\n\tif (ac_style.styleSheet) ac_style.styleSheet.cssText = css;\n\telse ac_style.appendChild(document.createTextNode(css));\n\tac_add_to_head(ac_style);\n}\nac_add_style(\".anychart-embed-FFgQR2vE{width:100%;height:600px;}\");\n})();<\/script><\/p>\n<p><strong>Look at this initial version with the HTML, CSS, and JS code\u00a0on\u00a0<a href=\"https:\/\/playground.anychart.com\/FFgQR2vE\/\" target=\"_blank\" rel=\"nofollow\">AnyChart Playground<\/a>.<\/strong><\/p>\n<p>The full source code of this Resource chart is also below, just in case:<\/p>\n<pre><code>&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Resource Ganntt Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/js\/anychart-core.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/js\/anychart-gantt.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0   &lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/js\/anychart-data-adapter.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style type=\"text\/css\"&gt;      \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html, body, #container { \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%; height: 100%; margin: 0; padding: 0; \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} \r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0&lt;\/head&gt;\r\n\u00a0\u00a0&lt;body&gt;  \r\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"container\"&gt;&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script&gt;\r\n      anychart.onDocumentReady(function () {\r\n        anychart.data.loadJsonFile(\"https:\/\/gist.githubusercontent.com\/shacheeswadia\/21da3da501982400b8ca35690b17ea5a\/raw\/d17e3774c6db1502b5d95677a5656ecc43f24526\/resourceChartData.json\", function (data) {\r\n\r\n          \/\/ create a data tree\r\n          var treeData = anychart.data.tree(data, \"as-tree\");\r\n\r\n          \/\/ create a resource chart\r\n          var chart = anychart.ganttResource(); \r\n    \r\n          \/\/ set the data\r\n          chart.data(treeData);  \r\n\r\n          \/\/ fit the elements to the width of the timeline\r\n          chart.fitAll();\r\n    \r\n          \/\/ set the position of the splitter to match the first column\r\n          chart.dataGrid().fixedColumns(true);\r\n    \r\n          \/\/ set the container id\r\n          chart.container(\"container\");\r\n\r\n          \/\/ draw the chart\r\n          chart.draw();\r\n    \r\n        });\r\n      });\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/script&gt;\r\n\u00a0\u00a0&lt;\/body&gt;\r\n&lt;\/html&gt;<\/code><\/pre>\n<h2>Customizing JS Resource Gantt Chart<\/h2>\n<p>There are a variety of customization options\u00a0that can help make the just-built JavaScript Resource Gantt chart more exciting and personalized. Right now,\u00a0I will tweak some code to improve\u00a0it and walk you through each of the changes.\u00a0So get ready for some more advanced resource data visualization action here!<\/p>\n<h3>A. Add a title<\/h3>\n<p>It is always a good idea to\u00a0properly <a href=\"https:\/\/www.anychart.com\/blog\/2017\/04\/05\/chart-captions-title-graph-tips\/\">name a chart<\/a>, indicating what kind of data the visualization is representing. I add\u00a0a title to our Resource chart along with some formatting.<\/p>\n<pre><code class=\"javascript\">\/\/ enable and configure the chart title\r\nvar title = chart.title();\r\ntitle.enabled(true);\r\ntitle\r\n  .text(\"Tokyo Paralympic 2020 Schedule\")\r\n  .fontSize(18)\r\n  .fontWeight(600)\r\n  .fontColor(\"#b32e3c\")\r\n  .padding(10);<\/code><\/pre>\n<h3>B. Change the colors of the bars<\/h3>\n<p>The default color for the bars is good but I decided to use the color palette of the Paralympics site. This gives the chart a nice customized look.<\/p>\n<pre><code class=\"javascript\">\/\/ customize the color of the bars\r\nvar elements = chart.getTimeline().elements();\r\nelements.normal().fill(\"#e96a7b 0.75\");\r\nelements.normal().stroke(\"#db4e50\");<\/code><\/pre>\n<h3>C. Adjust the height of the rows<\/h3>\n<p>Just as a simple modification to enhance the JavaScript-based Resource Gantt chart we already have, I increase the row height for each data row and also for the header.<\/p>\n<pre><code class=\"html\">\/\/ set the row height\r\nchart.defaultRowHeight(25);\r\n\r\n\/\/ set the header height\r\nchart.headerHeight(95);<\/code><\/pre>\n<p><strong>Check out the resulting new version of the interactive JS Resource Gantt chart right below! It is available on <a href=\"https:\/\/playground.anychart.com\/OYGlxQne\/\" target=\"_blank\" rel=\"nofollow\">AnyChart Playground<\/a>.<\/strong><\/p>\n<p><iframe loading=\"lazy\" class=\"anychart-embed anychart-embed-OYGlxQne\" src=\"https:\/\/playground.anychart.com\/OYGlxQne\/iframe\" width=\"300\" height=\"150\" frameborder=\"0\" sandbox=\"allow-scripts allow-pointer-lock allow-same-origin allow-popups allow-modals allow-forms\" allowfullscreen=\"allowfullscreen\"><br \/>\n<\/iframe><br \/>\n<script type=\"text\/javascript\">(function(){\nfunction ac_add_to_head(el){\n\tvar head = document.getElementsByTagName('head')[0];\n\thead.insertBefore(el,head.firstChild);\n}\nfunction ac_add_style(css){\n\tvar ac_style = document.createElement('style');\n\tif (ac_style.styleSheet) ac_style.styleSheet.cssText = css;\n\telse ac_style.appendChild(document.createTextNode(css));\n\tac_add_to_head(ac_style);\n}\nac_add_style(\".anychart-embed-OYGlxQne{width:100%;height:600px;}\");\n})();<\/script><\/p>\n<h3>D. Enhance the tooltip<\/h3>\n<p>The default tooltip of our Resource\u00a0Gantt chart already shows the necessary information. But I want to apply some more customizations so that it\u00a0displays relevant information based on where the user hovers. Thanks to the possibility of using functions and access to data, everything in the tooltips can be nicely customized.\u00a0See the comments in the code for more details on how what is done.<\/p>\n<pre><code class=\"javascript\">\/\/ enable html for the data grid tooltip\r\nchart.dataGrid().tooltip().useHtml(true);\r\n\r\n\/\/ configure the tooltips of the timeline\r\nchart.getTimeline().tooltip().useHtml(true); \r\n\r\nchart.getTimeline().tooltip().title(false);\r\nchart.getTimeline().tooltip().separator(false);\r\n\r\nchart.getTimeline().tooltip().format(function(e){\r\n  var depth = e.item.meta('depth');\r\n  var tooltipText;\r\n\r\n  \/\/ when hovering a venue row\r\n  \/\/ show the number of sports in the venue\r\n  if (depth==0){ \r\n    tooltipText = e.item.numChildren() + \" Sports in the venue.\";\r\n  } else {    \r\n    if (typeof e.period === 'undefined') {\r\n      \/\/ when hovering an event row\r\n      \/\/ show the sport and the number of events\r\n      var events = e.item.get('periods').length;\r\n      tooltipText = \"&lt;span style='font-weight:600;font-size:12px'&gt;\" +\r\n      events + \" \" + e.name + \" event(s).&lt;\/span&gt;\";          \r\n    } else {\r\n\t\/\/ when hovering an event bar\r\n\t\/\/ show the start and end of the event\r\n\tstart = anychart.format.dateTime(e.start, \"dd MMM\");\r\n\tend = anychart.format.dateTime(e.end, \"dd MMM\");\r\n\t\t\t\t\r\n\ttooltipText = \"&lt;span style='font-weight:600;font-size:12px'&gt;\" +\r\n\tstart + \"-\" + end + \" &lt;\/span&gt;\";          \r\n    }               \r\n  }\r\n  return tooltipText;\r\n});\r\n\r\nchart.dataGrid().tooltip().format(function(e){\r\n  \/\/ different tooltips for venues and sports\r\n  \/\/ in the data grid\r\n  var depth = e.item.meta('depth');\r\n  var tooltipText;\r\n\r\n  \/\/ the number of sports for venues\r\n  if (depth==0){ \r\n    tooltipText = e.item.numChildren() + \" Sports in the venue.\";\r\n  } else {\r\n    \/\/ the number of events for sports\r\n    tooltipText = \"&lt;span style='font-weight:600;font-size:12px'&gt;\" +\r\n    e.name + \": \" + e.item.get(\"periods\").length + \" event(s) in the  venue. &lt;\/span&gt;\" \r\n  }     \r\n  return tooltipText;\r\n});<\/code><\/pre>\n<h3>E. Modify the column width<\/h3>\n<p>Next, I see that the very first column is not really required for this Resource chart-based\u00a0schedule of the\u00a0Paralympic events.\u00a0So, I remove that ONE and set a fixed width to the labels column.<\/p>\n<pre><code>\/\/ disable the first data grid column\r\nchart.dataGrid().column(0).enabled(false);\r\n\r\n\/\/ set the width of the labels column\r\nchart.dataGrid().column(1).width(285);<\/code><\/pre>\n<h3>F. Add a locale file to get Japanese texts<\/h3>\n<p>A really cool personalization is to\u00a0localize the date\/time text\u00a0to Japanese since the 2020 Summer Paralympics\u00a0are\u00a0held in Japan. I do this by, first, adding the script file in the <code>&lt;head&gt;<\/code> section and, second, setting the format of the <a href=\"https:\/\/docs.anychart.com\/Common_Settings\/Localization\" target=\"_blank\" rel=\"nofollow\">output locale<\/a> to Japanese.\u00a0Easy JS Resource Gantt chart localization in action:<\/p>\n<pre><code>&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/8.10.0\/locales\/ja-jp.js\"&gt;&lt;\/script&gt;\r\n\r\n\u2026\r\n\r\n\/\/ set the japanese locale\r\nanychart.format.outputLocale('ja-jp');<\/code><\/pre>\n<h3>G. Format the labels<\/h3>\n<p>One last thing for this tutorial. To improve the Resource chart aesthetically and enhance its readability, I make the venue labels bold using HTML.<\/p>\n<pre><code>\/\/ set the text of the first data grid column\r\nvar column_1 = chart.dataGrid().column(1);\r\ncolumn_1.labels()\r\n  .useHtml(true);\r\n\r\n\/\/ format labels depending on whether it is a venue or a sport\r\ncolumn_1.labels().format(function(e) {\r\n  \/\/ decision based on a depth in hierarchy\r\n  var depth = e.item.meta('depth');\r\n  var style = (depth==0)?'bold':'400';\r\n  return \"&lt;span style='font-size:12px;font-weight:\" + style + \"'&gt;\" +  e.name + \" &lt;\/span&gt;\";\r\n});<\/code><\/pre>\n<p><strong>See how cool the final version of the interactive JS Resource Gantt chart is! Check it out with the entire code and play with it more on\u00a0<a href=\"https:\/\/playground.anychart.com\/nh8JDqEI\/\" target=\"_blank\" rel=\"nofollow\">AnyChart Playground<\/a>.<\/strong><\/p>\n<p><iframe loading=\"lazy\" class=\"anychart-embed anychart-embed-nh8JDqEI\" src=\"https:\/\/playground.anychart.com\/nh8JDqEI\/iframe\" width=\"300\" height=\"150\" frameborder=\"0\" sandbox=\"allow-scripts allow-pointer-lock allow-same-origin allow-popups allow-modals allow-forms\" allowfullscreen=\"allowfullscreen\"><br \/>\n<\/iframe><br \/>\n<script type=\"text\/javascript\">(function(){\nfunction ac_add_to_head(el){\n\tvar head = document.getElementsByTagName('head')[0];\n\thead.insertBefore(el,head.firstChild);\n}\nfunction ac_add_style(css){\n\tvar ac_style = document.createElement('style');\n\tif (ac_style.styleSheet) ac_style.styleSheet.cssText = css;\n\telse ac_style.appendChild(document.createTextNode(css));\n\tac_add_to_head(ac_style);\n}\nac_add_style(\".anychart-embed-nh8JDqEI{width:100%;height:600px;}\");\n})();<\/script><\/p>\n<h2>Conclusion<\/h2>\n<p>A Resource Gantt chart is a useful and engaging visualization to know and as you can see, creating it\u00a0using an appropriate JavaScript charting library is quite effortless.<\/p>\n<p>There are many different charts available in the AnyChart library, so feel free to check out the various other options <a href=\"https:\/\/docs.anychart.com\/Quick_Start\/Supported_Charts_Types\" target=\"_blank\" rel=\"nofollow\">here<\/a>. If you want to keep looking into data visualization development for project management, you may also like to\u00a0find out <a href=\"https:\/\/www.anychart.com\/blog\/2019\/09\/04\/create-gantt-chart-javascript\/\">how to create a Project Gantt chart<\/a> in a nice tutorial just next door.<\/p>\n<p>Please drop a\u00a0comment if you have any questions or suggestions. As the world of sports teaches us, participation is what matters. So go ahead and create lots of cool charts!<\/p>\n<hr \/>\n<p><strong><em>We at AnyChart would like to\u00a0thank\u00a0Shachee Swadia, a freelance data designer, for creating\u00a0this\u00a0wonderful JS Resource Gantt Chart tutorial for our blog.<\/em><\/strong><\/p>\n<hr \/>\n<p><strong><em><a href=\"https:\/\/www.anychart.com\/support\/\">Let us know<\/a> if you\u00a0want to make an awesome guest post.<\/em><\/strong><\/p>\n<hr \/>\n<p><em><strong>Look at the\u00a0other <a href=\"https:\/\/www.anychart.com\/blog\/category\/javascript-chart-tutorials\/\">JavaScript charting tutorials<\/a> on our blog.<\/strong><\/em><\/p>\n<p><!-- SyntaxHighlighter --><link rel=\"stylesheet\" href=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/highlight.js\/9.12.0\/styles\/default.min.css\"><link rel=\"stylesheet\" href=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/highlight.js\/9.12.0\/styles\/atom-one-light.min.css\"><script src=\"\/\/cdnjs.cloudflare.com\/ajax\/libs\/highlight.js\/9.12.0\/highlight.min.js\"><\/script><script>hljs.initHighlightingOnLoad();<\/script><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Smart resource allocation is a must to achieve a high level of operational efficiency. Aiming to ensure it, project management professionals commonly rely on a special form\u00a0of data visualization called a Resource Gantt chart. Creating\u00a0graphics like this may seem daunting at first\u00a0sight.\u00a0But I am here to show you an easy way to build Resource Gantt [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,16,263,8,17,23,13,279,4],"tags":[2762,843,53,94,2771,70,71,260,845,2000,561,265,267,268,35,254,184,1758,284,127,166,258,471,266,620,1292,880,806,1759,2220,54,1389,1760,2757,256,1111,350,842,744,1379,844,313,1370,1360,133,774,775,1978,179,1498,805,2759,39,95,1762,2013,2014,32,55,149,144,167,36,907,141,249,81,57,148,1238,96,99,134,58,65,56,101,1937,2335,1938,2723,2767,2660,2765,2763,2768,2764,2766,1790,227,1788,1691,1559,1558,1560,1904,228,1789,2770,2194,2722,2761,1738,30,2659,2721,2661,2760,2224,172,2769,807,808,1939,2015,1763,804],"class_list":["post-13400","post","type-post","status-publish","format-standard","hentry","category-anychart-charting-component","category-anygantt","category-big-data","category-business-intelligence","category-gantt-chart","category-html5","category-javascript","category-javascript-chart-tutorials","category-tips-and-tricks","tag-2020-summer-paralympics","tag-advanced-data-visualization","tag-anychart","tag-anygantt","tag-bar","tag-bar-chart","tag-bar-charts","tag-best-data-visualization-examples","tag-best-data-visualization-software","tag-best-data-visualization-tool","tag-best-data-visualizations","tag-big-data","tag-big-data-applications","tag-big-data-tools","tag-business-intelligence","tag-chart","tag-chart-captions","tag-chart-design","tag-chart-examples","tag-chart-types","tag-charting","tag-charts","tag-data-analysis","tag-data-analytics","tag-data-analytics-examples","tag-data-chart","tag-data-charting","tag-data-charts","tag-data-design","tag-data-visual","tag-data-visualization","tag-data-visualization-best-pracices","tag-data-visualization-design","tag-data-visualization-development","tag-data-visualization-examples","tag-data-visualization-practice","tag-data-visualization-projects","tag-data-visualization-task","tag-data-visualization-techniques","tag-data-visualization-tool","tag-data-visualization-tutorial","tag-data-visuals","tag-data-viz-examples","tag-data-viz-weekly","tag-dataviz","tag-dataviz-examples","tag-dataviz-projects","tag-datetime-charts","tag-design","tag-example","tag-front-end-development","tag-gantt","tag-gantt-chart","tag-graphics-library","tag-guest-post","tag-html","tag-html-charts","tag-html5","tag-html5-charts","tag-html5-gantt-charts","tag-infographics","tag-interactive-charts","tag-javascript","tag-javascript-chart-tutorial","tag-javascript-charting","tag-javascript-charting-api","tag-javascript-charting-library","tag-javascript-charts","tag-javascript-gantt-charts","tag-javascript-graph","tag-javascript-graphics-library","tag-javascript-library","tag-javascript-technologies","tag-js-chart","tag-js-charting","tag-js-charts","tag-js-graphics","tag-json","tag-json-charts","tag-json-data-visualization","tag-olympic-games","tag-olympic-venues","tag-olympics","tag-olympics-schedule","tag-paralympic-games","tag-paralympic-venues","tag-paralympics","tag-paralympics-schedule","tag-project-gantt-chart","tag-project-management","tag-project-planning","tag-project-schedule","tag-resource-allocation","tag-resource-allocation-data","tag-resource-allocation-data-visualization","tag-resource-gantt-chart","tag-resource-management","tag-resource-planning","tag-resource-scheduling","tag-summer","tag-summer-olympics","tag-summer-paralympics","tag-time-allocation","tag-tips-and-tricks","tag-tokyo","tag-tokyo-2020","tag-tokyo-olympics","tag-tokyo-paralympics","tag-tree-data","tag-tutorial","tag-venue-occupancy","tag-visual-analysis","tag-visual-analytics","tag-visualizing-json-data","tag-web-charts","tag-web-developers","tag-web-development","wpautop"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building JS Resource Gantt Chart to Visualize 2020 Paralympic Schedule<\/title>\n<meta name=\"description\" content=\"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building JS Resource Gantt Chart to Show 2020 Paralympics Schedule\" \/>\n<meta property=\"og:description\" content=\"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\" \/>\n<meta property=\"og:site_name\" content=\"AnyChart News\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AnyCharts\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-17T11:21:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-13T11:09:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-social.png\" \/>\n<meta name=\"author\" content=\"Shachee Swadia\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Building JS Resource Gantt Chart to Show 2020 Paralympics Schedule\" \/>\n<meta name=\"twitter:description\" content=\"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-social.png\" \/>\n<meta name=\"twitter:creator\" content=\"@AnyChart\" \/>\n<meta name=\"twitter:site\" content=\"@AnyChart\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shachee Swadia\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\"},\"author\":{\"name\":\"Shachee Swadia\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/273255f98371177b5ac1f4775610bb51\"},\"headline\":\"Building JS Resource Gantt Chart to Visualize Tokyo 2020 Paralympic Schedule\",\"datePublished\":\"2021-08-17T11:21:06+00:00\",\"dateModified\":\"2022-08-13T11:09:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\"},\"wordCount\":1360,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png\",\"keywords\":[\"2020 Summer Paralympics\",\"advanced data visualization\",\"AnyChart\",\"AnyGantt\",\"bar\",\"bar chart\",\"bar charts\",\"best data visualization examples\",\"best data visualization software\",\"best data visualization tool\",\"best data visualizations\",\"big data\",\"big data applications\",\"big data tools\",\"Business Intelligence\",\"chart\",\"chart captions\",\"chart design\",\"chart examples\",\"chart types\",\"charting\",\"charts\",\"data analysis\",\"data analytics\",\"data analytics examples\",\"data chart\",\"data charting\",\"data charts\",\"data design\",\"data visual\",\"Data Visualization\",\"data visualization best practices\",\"data visualization design\",\"data visualization development\",\"data visualization examples\",\"data visualization practice\",\"data visualization projects\",\"data visualization task\",\"data visualization techniques\",\"data visualization tool\",\"data visualization tutorial\",\"data visuals\",\"data viz examples\",\"data viz weekly\",\"dataviz\",\"dataviz examples\",\"dataviz projects\",\"date\/time charts\",\"design\",\"example\",\"front-end development\",\"gantt\",\"Gantt Chart\",\"graphics library\",\"guest post\",\"HTML\",\"HTML charts\",\"HTML5\",\"html5 charts\",\"html5 gantt charts\",\"infographics\",\"interactive charts\",\"JavaScript\",\"javascript chart tutorial\",\"javascript charting\",\"javascript charting api\",\"JavaScript charting library\",\"javascript charts\",\"javascript gantt charts\",\"javascript graph\",\"JavaScript graphics library\",\"JavaScript library\",\"javascript technologies\",\"js chart\",\"js charting\",\"js charts\",\"JS graphics\",\"JSON\",\"JSON charts\",\"JSON data visualization\",\"Olympic Games\",\"Olympic venues\",\"Olympics\",\"olympics schedule\",\"Paralympic Games\",\"Paralympic venues\",\"Paralympics\",\"paralympics schedule\",\"project gantt chart\",\"project management\",\"project planning\",\"project schedule\",\"resource allocation\",\"resource allocation data\",\"resource allocation data visualization\",\"Resource Gantt Chart\",\"resource management\",\"resource planning\",\"resource scheduling\",\"summer\",\"Summer Olympics\",\"Summer Paralympics\",\"time allocation\",\"Tips and tricks\",\"Tokyo\",\"Tokyo 2020\",\"Tokyo Olympics\",\"Tokyo Paralympics\",\"tree data\",\"tutorial\",\"venue occupancy\",\"visual analysis\",\"visual analytics\",\"visualizing JSON data\",\"web charts\",\"web developers\",\"web development\"],\"articleSection\":[\"AnyChart Charting Component\",\"AnyGantt\",\"Big Data\",\"Business Intelligence\",\"Gantt Chart\",\"HTML5\",\"JavaScript\",\"JavaScript Chart Tutorials\",\"Tips and Tricks\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\",\"url\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\",\"name\":\"Building JS Resource Gantt Chart to Visualize 2020 Paralympic Schedule\",\"isPartOf\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png\",\"datePublished\":\"2021-08-17T11:21:06+00:00\",\"dateModified\":\"2022-08-13T11:09:54+00:00\",\"author\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/273255f98371177b5ac1f4775610bb51\"},\"description\":\"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage\",\"url\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png\",\"contentUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png\",\"width\":2000,\"height\":1124},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.anychart.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building JS Resource Gantt Chart to Visualize Tokyo 2020 Paralympic Schedule\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#website\",\"url\":\"https:\/\/www.anychart.com\/blog\/\",\"name\":\"AnyChart News\",\"description\":\"AnyChart JS Charts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.anychart.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/273255f98371177b5ac1f4775610bb51\",\"name\":\"Shachee Swadia\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/50ebd5c61e4e46e052898a5ddbcef5996666132cf07c614be4725f028ec7eae3?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/50ebd5c61e4e46e052898a5ddbcef5996666132cf07c614be4725f028ec7eae3?s=96&r=g\",\"caption\":\"Shachee Swadia\"},\"url\":\"https:\/\/www.anychart.com\/blog\/author\/shachee-swadia\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building JS Resource Gantt Chart to Visualize 2020 Paralympic Schedule","description":"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/","og_locale":"en_US","og_type":"article","og_title":"Building JS Resource Gantt Chart to Show 2020 Paralympics Schedule","og_description":"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.","og_url":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/","og_site_name":"AnyChart News","article_publisher":"https:\/\/www.facebook.com\/AnyCharts","article_published_time":"2021-08-17T11:21:06+00:00","article_modified_time":"2022-08-13T11:09:54+00:00","og_image":[{"url":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-social.png","type":"","width":"","height":""}],"author":"Shachee Swadia","twitter_card":"summary_large_image","twitter_title":"Building JS Resource Gantt Chart to Show 2020 Paralympics Schedule","twitter_description":"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.","twitter_image":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js-social.png","twitter_creator":"@AnyChart","twitter_site":"@AnyChart","twitter_misc":{"Written by":"Shachee Swadia","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#article","isPartOf":{"@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/"},"author":{"name":"Shachee Swadia","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/273255f98371177b5ac1f4775610bb51"},"headline":"Building JS Resource Gantt Chart to Visualize Tokyo 2020 Paralympic Schedule","datePublished":"2021-08-17T11:21:06+00:00","dateModified":"2022-08-13T11:09:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/"},"wordCount":1360,"commentCount":0,"image":{"@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage"},"thumbnailUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png","keywords":["2020 Summer Paralympics","advanced data visualization","AnyChart","AnyGantt","bar","bar chart","bar charts","best data visualization examples","best data visualization software","best data visualization tool","best data visualizations","big data","big data applications","big data tools","Business Intelligence","chart","chart captions","chart design","chart examples","chart types","charting","charts","data analysis","data analytics","data analytics examples","data chart","data charting","data charts","data design","data visual","Data Visualization","data visualization best practices","data visualization design","data visualization development","data visualization examples","data visualization practice","data visualization projects","data visualization task","data visualization techniques","data visualization tool","data visualization tutorial","data visuals","data viz examples","data viz weekly","dataviz","dataviz examples","dataviz projects","date\/time charts","design","example","front-end development","gantt","Gantt Chart","graphics library","guest post","HTML","HTML charts","HTML5","html5 charts","html5 gantt charts","infographics","interactive charts","JavaScript","javascript chart tutorial","javascript charting","javascript charting api","JavaScript charting library","javascript charts","javascript gantt charts","javascript graph","JavaScript graphics library","JavaScript library","javascript technologies","js chart","js charting","js charts","JS graphics","JSON","JSON charts","JSON data visualization","Olympic Games","Olympic venues","Olympics","olympics schedule","Paralympic Games","Paralympic venues","Paralympics","paralympics schedule","project gantt chart","project management","project planning","project schedule","resource allocation","resource allocation data","resource allocation data visualization","Resource Gantt Chart","resource management","resource planning","resource scheduling","summer","Summer Olympics","Summer Paralympics","time allocation","Tips and tricks","Tokyo","Tokyo 2020","Tokyo Olympics","Tokyo Paralympics","tree data","tutorial","venue occupancy","visual analysis","visual analytics","visualizing JSON data","web charts","web developers","web development"],"articleSection":["AnyChart Charting Component","AnyGantt","Big Data","Business Intelligence","Gantt Chart","HTML5","JavaScript","JavaScript Chart Tutorials","Tips and Tricks"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/","url":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/","name":"Building JS Resource Gantt Chart to Visualize 2020 Paralympic Schedule","isPartOf":{"@id":"https:\/\/www.anychart.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage"},"image":{"@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage"},"thumbnailUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png","datePublished":"2021-08-17T11:21:06+00:00","dateModified":"2022-08-13T11:09:54+00:00","author":{"@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/273255f98371177b5ac1f4775610bb51"},"description":"Learn about a Resource Gantt Chart and how to create one with JavaScript. Visualizing the schedule of the upcoming Tokyo 2020 Paralympics for illustration.","breadcrumb":{"@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#primaryimage","url":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png","contentUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2021\/08\/resource-gantt-chart-js.png","width":2000,"height":1124},{"@type":"BreadcrumbList","@id":"https:\/\/www.anychart.com\/blog\/2021\/08\/17\/js-resource-gantt-chart\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.anychart.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Building JS Resource Gantt Chart to Visualize Tokyo 2020 Paralympic Schedule"}]},{"@type":"WebSite","@id":"https:\/\/www.anychart.com\/blog\/#website","url":"https:\/\/www.anychart.com\/blog\/","name":"AnyChart News","description":"AnyChart JS Charts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.anychart.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/273255f98371177b5ac1f4775610bb51","name":"Shachee Swadia","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/50ebd5c61e4e46e052898a5ddbcef5996666132cf07c614be4725f028ec7eae3?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/50ebd5c61e4e46e052898a5ddbcef5996666132cf07c614be4725f028ec7eae3?s=96&r=g","caption":"Shachee Swadia"},"url":"https:\/\/www.anychart.com\/blog\/author\/shachee-swadia\/"}]}},"_links":{"self":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/13400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/comments?post=13400"}],"version-history":[{"count":34,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/13400\/revisions"}],"predecessor-version":[{"id":15522,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/13400\/revisions\/15522"}],"wp:attachment":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/media?parent=13400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/categories?post=13400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/tags?post=13400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}