Bar chart

Bootstrap 5 Bar chart component

Responsive Bar chart built with Bootstrap 5. Learn how to create a Bootstrap Bar Chart and see examples of proper implementation and customization.


Basic example

You can initialize simple charts with data-mdb-attributes - it doesn't require any additional JS code.

Note: This method allows only one dataset - more complicated charts require JavaScript initialization.

Via data-mdb-attributes:

        
            
          <canvas
            data-mdb-chart="bar"
            data-mdb-dataset-label="Traffic"
            data-mdb-labels="['Monday', 'Tuesday' , 'Wednesday' , 'Thursday' , 'Friday' , 'Saturday' , 'Sunday ']"
            data-mdb-dataset-data="[2112, 2343, 2545, 3423, 2365, 1985, 987]"
          ></canvas>
        
        
    

The same effect achieved via Javascript initialization:

        
            
          <canvas id="bar-chart"></canvas>
        
        
    
        
            
            // Chart
            const dataBar = {
              type: 'bar',
              data: {
                labels: ['Monday', 'Tuesday' , 'Wednesday' , 'Thursday' , 'Friday' , 'Saturday' , 'Sunday '],
                datasets: [
                  {
                    label: 'Traffic',
                    data: [2112, 2343, 2545, 3423, 2365, 1985, 987],
                  },
                ],
              },
            };

            new mdb.Chart(document.getElementById('bar-chart'), dataBar);
        
        
    

Bar chart horizontal

Change the orientation of your bar chart from vertical to horizontal by setting the indexAxis option to 'y'.

        
            
          <canvas id="bar-chart-horizontal"></canvas>
        
        
    
        
            
          // Chart
          const dataBarHorizontal = {
            type: 'bar',
            data: {
              labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
              datasets: [
                {
                  label: 'Traffic',
                  data: [30, 15, 62, 65, 61, 65, 40],
                },
              ],
            },
          };
    
          const optionsBarHorizontal = {
            options: {
              indexAxis: 'y',
              scales: {
                x: {
                  stacked: true,
                  grid: {
                    display: true,
                    borderDash: [2],
                    zeroLineColor: 'rgba(0,0,0,0)',
                    zeroLineBorderDash: [2],
                    zeroLineBorderDashOffset: [2],
                  },
                  ticks: {
                    color: 'rgba(0,0,0, 0.5)',
                  },
                },
                y: {
                  stacked: true,
                  grid: {
                    display: false,
                  },
                  ticks: {
                    color: 'rgba(0,0,0, 0.5)',
                  },
                },
              },
            },
          };
    
          new mdb.Chart(document.getElementById('bar-chart-horizontal'), dataBarHorizontal, optionsBarHorizontal);
        
        
    

Bar chart with custom options

MDB provides default options for each chart - you can easily change that by passing an object with your custom options to the Chart constructor.

Note: Read API tab to learn more about available options.

        
            
                <canvas id="chart-options-example"></canvas>
                
        
    
        
            
                // Data
                const dataChartOptionsExample = {
                  type: 'bar',
                  data: {
                    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
                    datasets: [{
                      label: '# of Votes',
                      data: [12, 19, 3, 5, 2, 3],
                      backgroundColor: [
                        'rgba(255, 99, 132, 0.2)',
                        'rgba(54, 162, 235, 0.2)',
                        'rgba(255, 206, 86, 0.2)',
                        'rgba(75, 192, 192, 0.2)',
                        'rgba(153, 102, 255, 0.2)',
                        'rgba(255, 159, 64, 0.2)'
                      ],
                      borderColor: [
                        'rgba(255,99,132,1)',
                        'rgba(54, 162, 235, 1)',
                        'rgba(255, 206, 86, 1)',
                        'rgba(75, 192, 192, 1)',
                        'rgba(153, 102, 255, 1)',
                        'rgba(255, 159, 64, 1)'
                      ],
                        borderWidth: 1,
                      },
                    ],
                  },
                };
                
                // Options
                const optionsChartOptionsExample = {
                  options: {
                    scales: {
                      x:
                        {
                          ticks: {
                            color: '#4285F4',
                          },
                        },
                      y:
                        {
                          ticks: {
                            color: '#f44242',
                          },
                        },
                    },
                  },
                };
                
                new mdb.Chart(
                  document.getElementById('chart-options-example'),
                  dataChartOptionsExample,
                  optionsChartOptionsExample
                );                
                
        
    

Bar chart with custom tooltip

Set custom text format inside a tooltip by using plugins option.

        
            
          <canvas id="bar-chart-custom-tooltip"></canvas>
        
        
    
        
            
          // Bar chart with custom tooltip
          const dataBarCustomTooltip = {
            type: 'bar',
            data: {
              labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
              datasets: [
                {
                  label: 'Traffic',
                  data: [30, 15, 62, 65, 61, 65, 40],
                },
              ],
            },
          };
  
          const optionsBarCustomTooltip = {
            options: {
              plugins: {
                tooltip: {
                  callbacks: {
                     label: function (context) {
                      let label = context.dataset.label || '';
                      label = `${label}: ${context.formattedValue} users`;
                      return label;
                    },
                  },
                 },
               },
            },
          };

          new mdb.Chart(
            document.getElementById('bar-chart-custom-tooltip'),
            dataBarCustomTooltip,
            optionsBarCustomTooltip);