Guide on placing two Google charts on a single web page

I recently learned how to create bar and pie charts from the following resources: Bar Chart Tutorial and Pie Chart Tutorial. I attempted to display both charts on the same page using the code below:

<html>
<head>
...
// Code for pie chart here

...
// Code for bar chart here

</body>
</html>

Unfortunately, I wasn't successful in displaying both charts. Can someone provide me with some guidance or suggestions? Thank you.

Answer №1

Initially, you only need to include loader.js once in your code.

Additionally, a single usage of the load statement is sufficient to load multiple 'packages' as required.

Once the callback triggers, you are ready to begin drawing.


Check out the operational snippet below:

google.charts.load('current', {
  callback: function () {
    drawChart();
    drawBar();
  },
  packages: ['bar', 'corechart']
});

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Task', 'Hours per Day'],
    ['Work',     11],
    ['Eat',      2],
    ['Commute',  2],
    ['Watch TV', 2],
    ['Sleep',    7]
  ]);

  var options = {
    title: 'My Daily Activities'
  };

  var chart = new google.visualization.PieChart(document.getElementById('piechart'));
  chart.draw(data, options);
}

function drawBar() {
  var data = google.visualization.arrayToDataTable([
    ['Year', 'Sales', 'Expenses', 'Profit'],
    ['2014', 1000, 400, 200],
    ['2015', 1170, 460, 250],
    ['2016', 660, 1120, 300],
    ['2017', 1030, 540, 350]
  ]);

  var options = {
    chart: {
      title: 'Company Performance',
      subtitle: 'Sales, Expenses, and Profit: 2014-2017',
    }
  };

  var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
  chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="piechart" style="width: 900px; height: 500px;"></div>
<br>
<div id="columnchart_material" style="width: 900px; height: 500px;"></div>

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Developing a Multipage Website with ReactJS: Step-by-Step Guide

Currently diving into the world of ReactJS and trying to figure out how to incorporate multiple pages into my website. I've got my project set up with a simple navbar in place. Appreciate all the assistance! ...

The jQuery plugin qTip does not display the tooltip

I have successfully integrated a feature on my website that displays 12 items per page and allows users to navigate through the pages using jQuery. Additionally, I have implemented a tooltip functionality using qTip, which displays information when hoverin ...

What is the process of uploading a video and showcasing it on an HTML page?

I have successfully uploaded images and displayed them on an HTML page. Now, I am looking to do the same for videos. Here is my current code: $('#addPhotosBtn').click(function() { $(this).parents().find('#addPhotosInput').click(); }) ...

Is it possible to generate a JSON file from a flowchart with the help of d3.js?

Situation: I'm currently in the process of developing a tool that will enable us to generate flow charts and then export the data into a JSON file for use in other services. Being new to JavaScript, I've come across d3 quite often. Can d3 handle ...

Labeling with the index number of arrays

var arr = []; $('.inp').click(function(){ function arrcall() { $.each(arr, function(key, value) { alert('Array Key is: ' + key + ' \n Array Key value is: ' + value); }); } ...

javascript touch scroll effect

I am looking to enhance the scrolling capability of my app to make it touch-friendly. I have already implemented scrolling using the mouse wheel, drag, and click functions. I recently tried using the touch-scroll plugin from touch-scroll to enable touch sc ...

The module at 'D:Education odemonin odemon.js' could not be located by Node

I am just starting out with NodeJS My setup is on Windows 11 64 Bit system. Node, Nodemon (Global installation), and NPM are all properly installed and operational. However, when I execute the command npm run server It results in the following erro ...

Passing Variables from Node JS to Pug Template's HTML and JavaScript Sections

Here is a route that sends various variables to a Pug template: items.js route router.get('/edit/:itemObjectId', async function(req, res, next) { var itemObjectId = req.params.itemObjectId; var equipmentCategoryArr = []; var lifeExp ...

Incorporating a Registration Popup Form in ASP.NET

Looking to implement an Ajax popup for a registration form on my ASP.NET page. What is the recommended approach to achieve this? How can I ensure that my database is updated without needing to refresh the page? ...

When a directive is passed a string with HTML tags, the tags are not displayed/rendered as expected

When it comes to passing a string with HTML content to my Angular directive, I've encountered an issue where the rendered output treats the HTML as text. While researching possible solutions, most of them seem to rely on using ng-bind-html directive, ...

Looking to divide a multiple-page .TIFF document into several PNG or JPG files using the sharp module in node.js?

Is there a way to split a single .tiff file with multiple pages into several .png or .jpg files without using ImageMagick or GraphicsMagick due to limitations in my codebase? I am unable to install CLI tools so I'm exploring alternate solutions. I kn ...

Are you having difficulty displaying an alert box for invalid login information in a React application?

I am encountering an issue with my code where I want to display an alert box if the username and password do not match. Currently, when sending a post request from React (using axios) to NodeJS to validate the email and password, everything works correctly ...

Error came up as "backbone.radio.js" and it threw Uncaught SyntaxError since the token import appeared unexpectedly

I've been struggling to transition an application from Backbone to Marionette (v3) for the past two days. Every time I try to run the app in the browser, I keep encountering this error in the console (resulting in a blank screen): Uncaught SyntaxErr ...

javascript implementing number formatting during keyup event

When I try to format a number in an input field on the keyup event, I receive a warning in my browser console that says "The specified value "5,545" cannot be parsed, or is out of range." The value in the input field also gets cleared. How can I solve this ...

Tips for efficiently utilizing both client-server side rendering and static generation rendering in web development

I am looking to implement static generation for top products using getStaticProps. Currently, there are sections in my rendering that do not require static generation, such as comments and related products. Here is the full code snippet: export default fu ...

Is it possible to drag the parent element but only select the text within the child

How can I make the parent div draggable, yet keep the text in the child span selectable? <aside draggable="true" id="dragme"> This is an aside, drag me. <span id="copyme" draggable="false">But copy me!</span> </aside> A simila ...

Creating an Android Line chart with custom design

Does anyone have experience creating a gradient line chart in Android? I'm looking to develop a custom line chart with gradients. Any guidance on how I can achieve this? ...

Ensure that all divs have the same height and padding when resizing

I have 3 divs nested within a parent div. My goal is to dynamically set the height of all the child divs to match the height of the div with the maximum height, even when the screen resizes due to responsiveness. Below is my HTML structure: <div class ...

Issue with triggering the .click event

Just starting out with jQuery and Javascript, and I'm having trouble getting this to work smoothly without repeating myself. I have multiple div IDs on a page that I want to display or hide based on the step number in the sequence when a user clicks ...

Determine if the value is present in every element of the array and return true

I am looking for a way to determine if all products have the status "Done" in their respective statusLog arrays. If any product does not contain "Done" or lacks the statusLog property altogether, then the function should return false. Although the current ...