{"id":9708,"date":"2020-03-03T07:35:43","date_gmt":"2020-03-03T07:35:43","guid":{"rendered":"https:\/\/www.anychart.com\/blog\/?p=9708"},"modified":"2022-08-13T10:58:14","modified_gmt":"2022-08-13T10:58:14","slug":"bubble-chart-javascript-tutorial","status":"publish","type":"post","link":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/","title":{"rendered":"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full wp-image-9731\" src=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png\" alt=\"Making a JS bubble chart is described step by step in this tutorial for web developers\" width=\"100%\" \/>Have you ever wanted to create a bubble chart using JavaScript but did not know how? Then this tutorial is for you! Carry on reading to learn more about bubble charts and how we can build them quickly and painlessly.<\/p>\n<p><a href=\"https:\/\/www.anychart.com\/chartopedia\/chart-type\/bubble-chart\/\">Bubble charts<\/a> are an extension of the <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Scatter_Plot\/Overview\" target=\"_blank\" rel=\"nofollow\">scatter plot<\/a>. Most commonly, they display\u00a0three variables which are expressed as the horizontal distance of the point (x), the vertical distance of the point (y), and the size of the point (z). A bubble chart is a great visualization technique to let users compare data points. When designed well, it can be really eye-catching and engaging.<\/p>\n<p>In this tutorial, I will teach you how to build your very own interactive JS bubble chart and bring it to life through customization. All examples will be available with the full code.<\/p>\n<p>For this &#8220;getting started&#8221; guide, I have decided to explore the data of the top 30 grossing movies. Let&#8217;s look at the amount of money each movie has grossed, the budget, as well as the year of release. A bubble chart is a particularly good choice for the visualization of this dataset as it will allow us to easily compare these three numeric variables in an interesting and beautiful way.<\/p>\n<p><!--more Read the JS charting tutorial \u00bb--><\/p>\n<h2>Bubble Chart to Be Created<\/h2>\n<p><a href=\"https:\/\/playground.anychart.com\/lnWGQGlb\/\" target=\"_blank\" rel=\"nofollow\"><img decoding=\"async\" class=\"alignnone size-full\" src=\"https:\/\/static.anychart.com\/demos\/bubble-chart-tutorial\/bubble-chart-js.gif\" alt=\"Demo of the bubble chart which will be created along the present JS charting tutorial\" width=\"100%\" \/><\/a><\/p>\n<h2>Building JavaScript Bubble Chart<\/h2>\n<p>Building a JavaScript bubble chart can be done by following these\u00a0four easy steps:<\/p>\n<ol>\n<li>Create an HTML page.<\/li>\n<li>Add the necessary scripts.<\/li>\n<li>Load the data that will be visualized.<\/li>\n<li>Draw the chart.<\/li>\n<\/ol>\n<h3>1. Create an HTML page<\/h3>\n<p>The first thing we need to do is set up an HTML page as well as add an HTML container to host our data visualization. This is done as follows:<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Bubble Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0#container {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0height: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0margin: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0padding: 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\u00a0\u00a0\/\/ chart code goes here\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/script&gt;\r\n\u00a0\u00a0&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/code><\/pre>\n<p>There are two things I would like to highlight here. First and most important, there is a <code>div<\/code> element that I have named <code>container<\/code>. This is a block level element in which we will be drawing our chart.<\/p>\n<p>Second, I have written CSS rules to manage the appearance of our container element. These particular rules will ensure that our JavaScript-based bubble chart occupies the entire page.<\/p>\n<h3>2. Add the necessary scripts<\/h3>\n<p>The second item on\u00a0the list is adding the necessary scripts.<\/p>\n<p>We will be\u00a0using the <a href=\"https:\/\/www.anychart.com\">AnyChart JS Charts<\/a>\u00a0library which will allow us to build our visualizations quickly and easily.\u00a0It is a lightweight, strong, and flexible charting solution, free for non-profit use.<\/p>\n<p>In order to use AnyChart, we need to reference its base script. As we will be loading our data from an external JSON source, we\u00a0should also reference AnyChart&#8217;s data adapter script.<\/p>\n<pre><code class=\"html\">&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-base.min.js\"&gt;&lt;\/script&gt;\r\n&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-data-adapter.min.js\"&gt;&lt;\/script&gt;\r\n<\/code><\/pre>\n<h3>3. Load the data we are going to be visualizing<\/h3>\n<p>We will be visualizing data from\u00a0the\u00a0<a href=\"https:\/\/www.kaggle.com\/carolzhangdc\/imdb-5000-movie-dataset\" target=\"_blank\" rel=\"nofollow\">IMDb movie data set<\/a>\u00a0available\u00a0on\u00a0Kaggle.com. Kaggle has a number of user-provided datasets covering a wide range of applications. For convenience,\u00a0I have already pre-processed the data by dropping unused variables as well as renaming the ones we will be using to\u00a0make them\u00a0recognized by AnyChart. In particular, I\u00a0have renamed the release year as <code>x<\/code>, the budget as <code>value<\/code> and the amount grossed as <code>size<\/code>. The data is available as a JSON file which can be found <a href=\"https:\/\/static.anychart.com\/demos\/bubble-chart-tutorial\/data.json\" target=\"_blank\" rel=\"nofollow\">here<\/a>.<\/p>\n<p>Uploading and using this data could be tricky. But AnyChart&#8217;s library provides a number of solutions for <a href=\"https:\/\/docs.anychart.com\/Working_with_Data\/Overview\" target=\"_blank\" rel=\"nofollow\">working with data<\/a>\u00a0\u2014 JSON, CSV, and even Google Sheets, and more.<\/p>\n<p>In our situation, we need to use the following code to load the data:<\/p>\n<pre><code class=\"js\">anychart.data.loadJsonFile('data.json', function (data) {\r\n\u00a0\u00a0\/\/ chart code goes here\r\n})<\/code><\/pre>\n<p>The code for drawing our chart will be placed within the data loading function. This will ensure that our chart is only drawn once the data is loaded.<\/p>\n<p>So far, with everything included, we have the following:<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Bubble Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0#container {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0height: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0margin: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0padding: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-base.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-data-adapter.min.js\"&gt;&lt;\/script&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\" style=\"width: 100%; height: 100%\"&gt;&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0anychart.data.loadJsonFile('data.json', function (data) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ chart code goes here\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\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>4. Draw the chart<\/h3>\n<p>Finally, we get to drawing our chart.<\/p>\n<p>The whole chart code must be written within the <code>anychart.onDocumentReady()<\/code> function. This function is executed when\u00a0the page is loaded.<\/p>\n<pre><code class=\"js\">anychart.onDocumentReady(function() {\r\n\r\n\u00a0\u00a0\/\/ load data\r\n\u00a0\u00a0anychart.data.loadJsonFile('data.json', function (data) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\/\/ create a chart\r\n\u00a0\u00a0\u00a0\u00a0chart = anychart.bubble(data);\r\n\u00a0\u00a0\u00a0\u00a0\/\/ set a chart title\r\n\u00a0\u00a0\u00a0\u00a0chart.title(\"Top 30 Grossing Movies\");\r\n\u00a0\u00a0\u00a0\u00a0\/\/ set titles for axes\r\n\u00a0\u00a0\u00a0\u00a0chart.xAxis().title(\"Years\");\r\n\u00a0\u00a0\u00a0\u00a0chart.yAxis().title(\"Budget\");\r\n\u00a0\u00a0\u00a0\u00a0\/\/ draw the chart\r\n\u00a0\u00a0\u00a0\u00a0chart.container(\"container\").draw();\r\n\r\n\u00a0\u00a0})\r\n\r\n});<\/code><\/pre>\n<p>And this is the <a href=\"https:\/\/playground.anychart.com\/xm8kEWjA\/\" target=\"_blank\" rel=\"nofollow\">result<\/a>:<\/p>\n<p><iframe loading=\"lazy\" class=\"anychart-embed anychart-embed-\" src=\"https:\/\/playground.anychart.com\/xm8kEWjA\/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-{width:100%;height:500px;}\");\n})();<\/script><\/p>\n<p>How easy was that? With the help of AnyChart, we&#8217;ve built a basic bubble chart rather effortlessly. Here&#8217;s the final code of this data visualization:<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Bubble Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0#container {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0height: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0margin: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0padding: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-base.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-data-adapter.min.js\"&gt;&lt;\/script&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\" style=\"width: 100%; height: 100%\"&gt;&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script&gt;anychart.onDocumentReady(function() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ load data\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0anychart.data.loadJsonFile('data.json', function (data) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ create a chart\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart = anychart.bubble(data);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ set a chart title\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.title(\"Top 30 Grossing Movies\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ set titles for axes\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.xAxis().title(\"Years\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.yAxis().title(\"Budget\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ draw the chart\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.container(\"container\").draw();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\r\n\r\n\u00a0\u00a0\u00a0\u00a0});\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 Bubble Chart Appearance<\/h2>\n<p>There are a number of ways to customize our newly made data visualization. We could use CSS to\u00a0modify\u00a0the HTML elements. But AnyChart comes with a variety of easy-to-implement and chart-specific customization options via its API. Let&#8217;s take a look at some of these.<\/p>\n<h3>Tooltip<\/h3>\n<p>To begin with,\u00a0let&#8217;s customize\u00a0the\u00a0bubble chart&#8217;s tooltip. The tooltip is the information we see when\u00a0hovering over a data point. AnyChart&#8217;s API allows us to customize the title and the body of the tooltip independently. To include a variable from a point, we will use a special syntax: <code>{%variable_name}<\/code>.<\/p>\n<p>The following code adds the movie title as well as the other correct variable names to the tooltip:<\/p>\n<pre><code class=\"js\">var tooltip = chart.tooltip();\r\ntooltip.titleFormat(\"Title: {%title}\");\r\ntooltip.format(\"Year: {%x} \\nBudget: {%value} \\nGross: {%size}\");<\/code><\/pre>\n<h3>Color<\/h3>\n<p>As I mentioned before, bubble charts are great at visualizing three variables. This can be extended further by changing the color of the points based on a fourth variable. In our case, we can visualize the movie genre as the fourth one.<\/p>\n<p>In order to customize the color like that using a fourth variable, first we need to separate our dataset into different series based on the genre. We can achieve this by using a JavaScript filter function:<\/p>\n<pre><code class=\"js\">var data_sci_fi = data.filter(function(entry) {\r\n\u00a0\u00a0return entry.genres === \"Sci-Fi\/Fantasy\";\r\n});\r\n\r\nvar data_animation = data.filter(function(entry) {\r\n\u00a0\u00a0return entry.genres === \"Animation\";\r\n});\r\n\r\nvar data_other = data.filter(function(entry) {\r\n\u00a0\u00a0return entry.genres === \"Other\";\r\n});<\/code><\/pre>\n<p>Now that we have different series, we can customize the appearance of each.<\/p>\n<p>The following code changes the stroke and fill of each series making them different. For an in-depth explanation of the API, please have a look at the documentation which can be found <a href=\"https:\/\/docs.anychart.com\/Basic_Charts\/Bubble_Chart\" target=\"_blank\" rel=\"nofollow\">here<\/a>.<\/p>\n<pre><code class=\"js\">var series1 = chart.bubble(data_sci_fi);\r\nseries1.normal().fill(\"#74A4BC\", 0.3);\r\nseries1.hovered().fill(\"#C3423F\", 0.3);\r\nseries1.selected().fill(\"#C3423F\", 0.3);\r\nseries1.normal().stroke(\"#74A4BC\", 1);\r\nseries1.hovered().stroke(\"#8E312E\", 2);\r\nseries1.selected().stroke(\"#8E312E\", 2);\r\n\r\nvar series2 = chart.bubble(data_animation);\r\nseries2.normal().fill(\"#FACD26\", 0.3);\r\nseries2.hovered().fill(\"#C3423F\", 0.3);\r\nseries2.selected().fill(\"#C3423F\", 0.3);\r\nseries2.normal().stroke(\"#FACD26\", 1);\r\nseries2.hovered().stroke(\"#8E312E\", 2);\r\nseries2.selected().stroke(\"#8E312E\", 2);\r\n\r\nvar series3 = chart.bubble(data_other);\r\nseries3.normal().fill(\"#7DC95E\", 0.3);\r\nseries3.hovered().fill(\"#C3423F\", 0.3);\r\nseries3.selected().fill(\"#C3423F\", 0.3);\r\nseries3.normal().stroke(\"#7DC95E\", 1);\r\nseries3.hovered().stroke(\"#8E312E\", 2);\r\nseries3.selected().stroke(\"#8E312E\", 2);<\/code><\/pre>\n<h3>Bubble size<\/h3>\n<p>Another aspect which is important to know how to customize when making bubble charts is setting the minimum and maximum bubble sizes. In our dataset, there is quite a large variation between the largest and smallest points. Another issue we have is that some of these points are way too large and dominate the visualization.<\/p>\n<p>We can change these minimum and maximum values with the following code:<\/p>\n<pre><code class=\"js\">chart.minBubbleSize(\"2%\");\r\nchart.maxBubbleSize(\"12%\");<\/code><\/pre>\n<p>And with these changes applied, <a href=\"https:\/\/playground.anychart.com\/lnWGQGlb\/\" target=\"_blank\" rel=\"nofollow\">have a look<\/a> at our bubble chart now:<\/p>\n<p><iframe loading=\"lazy\" class=\"anychart-embed anychart-embed-\" src=\"https:\/\/playground.anychart.com\/lnWGQGlb\/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-{width:100%;height:500px;}\");\n})();<\/script><\/p>\n<p>The bubble chart shows quite a clear, and quite expected, pattern of the top grossing movies&#8217; budgets increasing as well as newer movies making more money. What is more interesting, however, is that Sci-Fi\/Fantasy and Animation clearly dominate this list with Titanic being the outlier in terms of genre!<\/p>\n<p>Here&#8217;s the full code of the final customized bubble chart we have just created using JavScript (HTML5):<\/p>\n<pre><code class=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n\u00a0\u00a0&lt;head&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;JavaScript Bubble Chart&lt;\/title&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;style&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0html,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0body,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0#container {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0width: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0height: 100%;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0margin: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0padding: 0;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0&lt;\/style&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-base.min.js\"&gt;&lt;\/script&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdn.anychart.com\/releases\/v8\/js\/anychart-data-adapter.min.js\"&gt;&lt;\/script&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\" style=\"width: 100%; height: 100%\"&gt;&lt;\/div&gt;\r\n\u00a0\u00a0\u00a0\u00a0&lt;script&gt;anychart.onDocumentReady(function() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ load data\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0anychart.data.loadJsonFile('data.json', function (data) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ create a chart\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart = anychart.bubble(data);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ set a chart title\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.title(\"Top 30 Grossing Movies\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ set titles for axes\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.xAxis().title(\"Years\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.yAxis().title(\"Budget\");\r\n    \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ customize the tooltip\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var tooltip = chart.tooltip();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tooltip.titleFormat(\"Title: {%title}\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tooltip.format(\"Year: {%x} \\nBudget: {%value} \\nGross: {%size}\");\r\n    \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ separate data into different series based on genre\r\n    \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data_sci_fi = data.filter(function(entry) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return entry.genres === \"Sci-Fi\/Fantasy\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\r\n    \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data_animation = data.filter(function(entry) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return entry.genres === \"Animation\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\r\n    \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var data_other = data.filter(function(entry) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return entry.genres === \"Other\";\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ customize the appearance of each series\r\n    \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var series1 = chart.bubble(data_sci_fi);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series1.normal().fill(\"#74A4BC\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series1.hovered().fill(\"#C3423F\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series1.selected().fill(\"#C3423F\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series1.normal().stroke(\"#74A4BC\", 1);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series1.hovered().stroke(\"#8E312E\", 2);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series1.selected().stroke(\"#8E312E\", 2);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var series2 = chart.bubble(data_animation);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series2.normal().fill(\"#FACD26\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series2.hovered().fill(\"#C3423F\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series2.selected().fill(\"#C3423F\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series2.normal().stroke(\"#FACD26\", 1);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series2.hovered().stroke(\"#8E312E\", 2);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series2.selected().stroke(\"#8E312E\", 2);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var series3 = chart.bubble(data_other);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series3.normal().fill(\"#7DC95E\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series3.hovered().fill(\"#C3423F\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series3.selected().fill(\"#C3423F\", 0.3);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series3.normal().stroke(\"#7DC95E\", 1);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series3.hovered().stroke(\"#8E312E\", 2);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0series3.selected().stroke(\"#8E312E\", 2);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ set the minimum and maximum bubble sizes\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.minBubbleSize(\"2%\");\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.maxBubbleSize(\"12%\");\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ draw the chart\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chart.container(\"container\").draw();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\r\n\r\n\u00a0\u00a0\u00a0\u00a0});\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>Conclusion<\/h2>\n<p>As I have demonstrated, building a bubble chart is not a difficult task with the help of the right JavaScript charting library such as AnyChart JS. Its <a href=\"https:\/\/api.anychart.com\" target=\"_blank\" rel=\"nofollow\">API<\/a> is really easy to make a data visualization even more fun and engaging. The dedicated <a href=\"https:\/\/docs.anychart.com\" target=\"_blank\" rel=\"nofollow\">documentation<\/a> will help you quickly find out what is possible and how.<\/p>\n<p>My suggestion for newcomers to the data visualization development for web sites and apps would be to use this chart as a base and experiment with further customization. Maybe try adding movie posters to the <a href=\"https:\/\/docs.anychart.com\/Common_Settings\/Tooltip\" target=\"_blank\" rel=\"nofollow\">tooltips<\/a> for a start? Good luck!<\/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>Have you ever wanted to create a bubble chart using JavaScript but did not know how? Then this tutorial is for you! Carry on reading to learn more about bubble charts and how we can build them quickly and painlessly. Bubble charts are an extension of the scatter plot. Most commonly, they display\u00a0three variables which [&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":18,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,23,13,279,4],"tags":[53,260,63,35,284,127,258,471,266,54,256,844,1762,32,55,503,716,1764,144,36,907,141,81,57,58,65,56,1228,669,209,1761,459,30,172,1763,804],"class_list":["post-9708","post","type-post","status-publish","format-standard","hentry","category-anychart-charting-component","category-html5","category-javascript","category-javascript-chart-tutorials","category-tips-and-tricks","tag-anychart","tag-best-data-visualization-examples","tag-bubble-chart","tag-business-intelligence","tag-chart-examples","tag-chart-types","tag-charts","tag-data-analysis","tag-data-analytics","tag-data-visualization","tag-data-visualization-examples","tag-data-visualization-tutorial","tag-guest-post","tag-html5","tag-html5-charts","tag-imdb","tag-imdb-data","tag-imdb-data-visualization","tag-infographics","tag-javascript","tag-javascript-chart-tutorial","tag-javascript-charting","tag-javascript-charting-library","tag-javascript-charts","tag-js-chart","tag-js-charting","tag-js-charts","tag-movie-data","tag-movies","tag-scatter-chart","tag-scatter-plot","tag-statistics","tag-tips-and-tricks","tag-tutorial","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>How to Create Bubble Chart in JavaScript, Tutorial for Web Developers<\/title>\n<meta name=\"description\" content=\"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JavaScript\/HTML5.\" \/>\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\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JS\/HTML5.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\" \/>\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=\"2020-03-03T07:35:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-13T10:58:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png\" \/>\n<meta name=\"author\" content=\"Wayde Herman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers\" \/>\n<meta name=\"twitter:description\" content=\"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JS\/HTML5.\" \/>\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=\"Wayde Herman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\"},\"author\":{\"name\":\"Wayde Herman\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/d9447a42182ea80639bfcdde177e0f89\"},\"headline\":\"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers\",\"datePublished\":\"2020-03-03T07:35:43+00:00\",\"dateModified\":\"2022-08-13T10:58:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\"},\"wordCount\":1167,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png\",\"keywords\":[\"AnyChart\",\"best data visualization examples\",\"bubble chart\",\"Business Intelligence\",\"chart examples\",\"chart types\",\"charts\",\"data analysis\",\"data analytics\",\"Data Visualization\",\"data visualization examples\",\"data visualization tutorial\",\"guest post\",\"HTML5\",\"html5 charts\",\"IMDb\",\"IMDb data\",\"IMDb data visualization\",\"infographics\",\"JavaScript\",\"javascript chart tutorial\",\"javascript charting\",\"JavaScript charting library\",\"javascript charts\",\"js chart\",\"js charting\",\"js charts\",\"movie data\",\"movies\",\"scatter chart\",\"scatter plot\",\"statistics\",\"Tips and tricks\",\"tutorial\",\"web developers\",\"web development\"],\"articleSection\":[\"AnyChart Charting Component\",\"HTML5\",\"JavaScript\",\"JavaScript Chart Tutorials\",\"Tips and Tricks\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\",\"url\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\",\"name\":\"How to Create Bubble Chart in JavaScript, Tutorial for Web Developers\",\"isPartOf\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png\",\"datePublished\":\"2020-03-03T07:35:43+00:00\",\"dateModified\":\"2022-08-13T10:58:14+00:00\",\"author\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/d9447a42182ea80639bfcdde177e0f89\"},\"description\":\"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JavaScript\/HTML5.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.anychart.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers\"}]},{\"@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\/d9447a42182ea80639bfcdde177e0f89\",\"name\":\"Wayde Herman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/117ce313e0a18bbfaabbf201e21dfc14c7f633e1d57e32298ace464d25fc21aa?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/117ce313e0a18bbfaabbf201e21dfc14c7f633e1d57e32298ace464d25fc21aa?s=96&r=g\",\"caption\":\"Wayde Herman\"},\"url\":\"https:\/\/www.anychart.com\/blog\/author\/wayde-herman\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Create Bubble Chart in JavaScript, Tutorial for Web Developers","description":"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JavaScript\/HTML5.","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\/2020\/03\/03\/bubble-chart-javascript-tutorial\/","og_locale":"en_US","og_type":"article","og_title":"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers","og_description":"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JS\/HTML5.","og_url":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/","og_site_name":"AnyChart News","article_publisher":"https:\/\/www.facebook.com\/AnyCharts","article_published_time":"2020-03-03T07:35:43+00:00","article_modified_time":"2022-08-13T10:58:14+00:00","og_image":[{"url":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png","type":"","width":"","height":""}],"author":"Wayde Herman","twitter_card":"summary_large_image","twitter_title":"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers","twitter_description":"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JS\/HTML5.","twitter_creator":"@AnyChart","twitter_site":"@AnyChart","twitter_misc":{"Written by":"Wayde Herman","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#article","isPartOf":{"@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/"},"author":{"name":"Wayde Herman","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/d9447a42182ea80639bfcdde177e0f89"},"headline":"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers","datePublished":"2020-03-03T07:35:43+00:00","dateModified":"2022-08-13T10:58:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/"},"wordCount":1167,"commentCount":0,"image":{"@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png","keywords":["AnyChart","best data visualization examples","bubble chart","Business Intelligence","chart examples","chart types","charts","data analysis","data analytics","Data Visualization","data visualization examples","data visualization tutorial","guest post","HTML5","html5 charts","IMDb","IMDb data","IMDb data visualization","infographics","JavaScript","javascript chart tutorial","javascript charting","JavaScript charting library","javascript charts","js chart","js charting","js charts","movie data","movies","scatter chart","scatter plot","statistics","Tips and tricks","tutorial","web developers","web development"],"articleSection":["AnyChart Charting Component","HTML5","JavaScript","JavaScript Chart Tutorials","Tips and Tricks"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/","url":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/","name":"How to Create Bubble Chart in JavaScript, Tutorial for Web Developers","isPartOf":{"@id":"https:\/\/www.anychart.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage"},"image":{"@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage"},"thumbnailUrl":"https:\/\/www.anychart.com\/blog\/wp-content\/uploads\/2020\/03\/bubble-chart.png","datePublished":"2020-03-03T07:35:43+00:00","dateModified":"2022-08-13T10:58:14+00:00","author":{"@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/d9447a42182ea80639bfcdde177e0f89"},"description":"In this tutorial, you will learn what bubble charts are and how to build them quickly and painlessly in JavaScript\/HTML5.","breadcrumb":{"@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/www.anychart.com\/blog\/2020\/03\/03\/bubble-chart-javascript-tutorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.anychart.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Create JavaScript Bubble Chart \u2014 Tutorial for Web Developers"}]},{"@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\/d9447a42182ea80639bfcdde177e0f89","name":"Wayde Herman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.anychart.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/117ce313e0a18bbfaabbf201e21dfc14c7f633e1d57e32298ace464d25fc21aa?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/117ce313e0a18bbfaabbf201e21dfc14c7f633e1d57e32298ace464d25fc21aa?s=96&r=g","caption":"Wayde Herman"},"url":"https:\/\/www.anychart.com\/blog\/author\/wayde-herman\/"}]}},"_links":{"self":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/9708","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\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/comments?post=9708"}],"version-history":[{"count":54,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/9708\/revisions"}],"predecessor-version":[{"id":15483,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/posts\/9708\/revisions\/15483"}],"wp:attachment":[{"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/media?parent=9708"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/categories?post=9708"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anychart.com\/blog\/wp-json\/wp\/v2\/tags?post=9708"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}