Vue Bootstrap Charts

Vue Charts - Bootstrap 4 & Material Design

Note: We are transitioning MDB4 to a legacy version and focusing on developing MDB5. While we'll continue to support for the transition period, we encourage you to migrate to MDB5. We're offering a 50% discount on MDB5 PRO to help with your transition, enabling you to leverage the full potential of the latest version. You can find more information here.
get 50% discount on MDB5 PRO

Vue Bootstrap charts are graphical representations of data. They are responsive and easy to customize.

At your disposal are 6 types of charts and multiple options for customization.


Line chart

A line chart is a way of plotting data points on a line. Often, it is used to show trend data, or the comparison of two data sets.

        
            
          <template>
            <mdb-container>
              <mdb-line-chart 
                :data="lineChartData" 
                :options="lineChartOptions" 
                :width="600" 
                :height="300">
              </mdb-line-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbLineChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbLineChart,
                mdbContainer
              },
              data() {
                return {
                  lineChartData: {
                    labels: ["January", "February", "March", "April", "May", "June", "July"],
                    datasets: [
                      {
                        label: "My First dataset",
                        backgroundColor: "rgba(255, 99, 132, 0.1)",
                        borderColor: "rgba(255, 99, 132, 1)",
                        borderWidth: 0.7,
                        data: [65, 59, 80, 81, 56, 55, 40]
                      },
                      {
                        label: "My Second dataset",
                        backgroundColor: "rgba(151,187,205,0.2)",
                        borderColor: "rgba(151,187,205,1)",
                        borderWidth: 0.8,
                        data: [28, 48, 40, 19, 86, 27, 90]
                      }
                    ]
                  },
                  lineChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false,
                    scales: {
                      xAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)"
                        }
                      }],
                      yAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)"
                        }
                      }]
                    }
                  }
                };
              }
            }
          </script>
        
        
    

Radar chart

A radar chart is a way of showing multiple data points and the variation between them. They are often useful for comparing the points of two or more different data sets.

        
            
          <template>
            <mdb-container>
              <mdb-radar-chart 
                :data="radarChartData" 
                :options="radarChartOptions" 
                :width="600" 
                :height="300">
              </mdb-radar-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbRadarChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbRadarChart,
                mdbContainer
              },
              data() {
                return {
                  radarChartData: {
                    labels: ["Eating", "Drinking", "Sleeping", "Designing", "Coding", "Cycling", "Running"],
                    datasets: [
                      {
                        label: "My First dataset",
                        backgroundColor: "rgba(255, 99, 132, 0.1)",
                        borderColor: "rgba(255, 99, 132, 1)",
                        borderWidth: 0.7,
                        data: [65, 59, 90, 81, 56, 55, 40]
                      },
                      {
                        label: "My Second dataset",
                        backgroundColor: "rgba(75, 192, 192, 0.2)",
                        borderColor: "rgba(75, 192, 192, 1)",
                        borderWidth: 0.7,
                        data: [28, 48, 40, 19, 96, 27, 100]
                      }
                    ]
                  },
                  radarChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false
                  }
                };
              }
            }
          </script>
        
        
    

Bar chart

A bar chart provides a way of showing data values represented as vertical bars. It is sometimes used to show trend data, and the comparison of multiple data sets side by side.

        
            
          <template>
            <mdb-container>
              <mdb-bar-chart 
                :data="barChartData" 
                :options="barChartOptions" 
                :width="600" 
                :height="300">
              </mdb-bar-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbBarChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbBarChart,
                mdbContainer
              },
              data() {
                return {
                  barChartData: {
                    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,
                    }]
                  },
                  barChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false,
                    scales: {
                      xAxes: [{
                        barPercentage: 1,
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)"
                        }
                      }],
                      yAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)"
                        }
                      }]
                    }
                  }
                };
              }
            }
          </script>
        
        
    

Horizontal Bar chart

Use a horizontal bar chart when you're presenting a long list of results that would become crowded if displayed vertically. Options specified on the x-axis in a bar chart, are applied to the y-axis in a horizontal bar chart.

        
            
          <template>
            <mdb-container>
              <mdb-horizontal-bar-chart 
                :data="horizontalBarChartData" 
                :options="horizontalBarChartOptions"
                :width="600" 
                :height="300">
              </mdb-horizontal-bar-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbHorizontalBarChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbHorizontalBarChart,
                mdbContainer
              },
              data() {
                return {
                  horizontalBarChartData: {
                    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,
                    }]
                  },
                  horizontalBarChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false,
                    scales: {
                      xAxes: [{
                        barPercentage: 1,
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)",
                        }
                      }],
                      yAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)",
                        }
                      }],
                    }
                  }
                };
              }
            }
          </script>
        
        
    

Scatter chart

Stacked Bar Charts are plotted when multiple Bar Charts with aligned x values are plotted on same axis. Multiple sets of data are represented by one Bar.

        
            
          <template>
            <mdb-container>
              <mdb-scatter-chart 
                :data="scatterChartData" 
                :options="scatterChartOptions" 
                :width="600" 
                :height="300">
              </mdb-scatter-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbScatterChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbScatterChart,
                mdbContainer
              },
              data() {
                return {
                  scatterChartData: {
                    datasets: [
                      {
                        label: "My First dataset",
                        backgroundColor: "rgba(255, 99, 132, 0.1)",
                        borderColor: "rgba(255, 99, 132, 1)",
                        borderWidth: 0.7,
                        data: [{
                          x: 1,
                          y: -1.711e-2,
                        }, {
                          x: 1.26,
                          y: -2.708e-2,
                        }, {
                          x: 1.58,
                          y: -4.285e-2,
                        }, {
                          x: 2.0,
                          y: -6.772e-2,
                        }, {
                          x: 2.51,
                          y: -1.068e-1,
                        }, {
                          x: 3.16,
                          y: -1.681e-1,
                        }, {
                          x: 3.98,
                          y: -2.635e-1,
                        }, {
                          x: 5.01,
                          y: -4.106e-1,
                        }, {
                          x: 6.31,
                          y: -6.339e-1,
                        }, {
                          x: 7.94,
                          y: -9.659e-1,
                        }, {
                          x: 10.00,
                          y: -1.445,
                        }, {
                          x: 12.6,
                          y: -2.110,
                        }, {
                          x: 15.8,
                          y: -2.992,
                        }, {
                          x: 20.0,
                          y: -4.102,
                        }, {
                          x: 25.1,
                          y: -5.429,
                        }, {
                          x: 31.6,
                          y: -6.944,
                        }, {
                          x: 39.8,
                          y: -8.607,
                        }, {
                          x: 50.1,
                          y: -1.038e1,
                        }, {
                          x: 63.1,
                          y: -1.223e1,
                        }, {
                          x: 79.4,
                          y: -1.413e1,
                        }, {
                          x: 100.00,
                          y: -1.607e1,
                        }, {
                          x: 126,
                          y: -1.803e1,
                        }, {
                          x: 158,
                          y: -2e1,
                        }, {
                          x: 200,
                          y: -2.199e1,
                        }, {
                          x: 251,
                          y: -2.398e1,
                        }, {
                          x: 316,
                          y: -2.597e1,
                        }, {
                          x: 398,
                          y: -2.797e1,
                        }, {
                          x: 501,
                          y: -2.996e1,
                        }, {
                          x: 631,
                          y: -3.196e1,
                        }, {
                          x: 794,
                          y: -3.396e1,
                        }, {
                          x: 1000,
                          y: -3.596e1,
                        }]
                      }
                    ]
                  },
                  scatterChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false,
                    scales: {
                      xAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)",
                        }
                      }],
                      yAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)",
                        }
                      }],
                    }
                  },
                };
              }
            }
          </script>
        
        
    

Bubble chart

Stacked Bar Charts are plotted when multiple Bar Charts with aligned x values are plotted on same axis. Multiple sets of data are represented by one Bar.

        
            
          <template>
            <mdb-container>
              <mdb-bubble-chart 
                :data="bubbleChartData" 
                :options="bubbleChartOptions" 
                :width="600" 
                :height="300">
              </mdb-bubble-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbBubbleChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbBubbleChart,
                mdbContainer
              },
              data() {
                return {
                  bubbleChartData: {
                    datasets: [
                      {
                        label: "My First dataset",
                        backgroundColor: "rgba(255, 99, 132, 0.1)",
                        borderColor: "rgba(255, 99, 132, 1)",
                        borderWidth: 0.7,
                        data: [{
                          x: 5,
                          y: 7,
                          r: 7
                        }]
                      },
                      {
                        label: "My Second dataset",
                        backgroundColor: "rgba(151,187,205,0.2)",
                        borderColor: "rgba(151,187,205,1)",
                        borderWidth: 0.8,
                        data: [{
                          x: 15,
                          y: 2,
                          r: 6
                        }]
                      },
                      {
                        label: "My Thrid dataset",
                        backgroundColor: "rgba(255, 206, 86, 0.2)",
                        borderColor: "rgba(255, 206, 86, 1)",
                        borderWidth: 0.8,
                        data: [{
                          x: 10,
                          y: 4,
                          r: 14
                        }]
                      }
                    ]
                  },
                  bubbleChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false,
                    scales: {
                      xAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)",
                        }
                      }],
                      yAxes: [{
                        gridLines: {
                          display: true,
                          color: "rgba(0, 0, 0, 0.1)",
                        }
                      }],
                    }
                  },
                };
              }
            }
          </script>
        
        
    

Polar Area Chart

Polar area charts segment has the same angle - the radius of the segment differs depending on the value.

        
            
          <template>
            <mdb-container>
              <mdb-polar-chart 
                :data="polarChartData" 
                :options="polarChartOptions" 
                :width="600" 
                :height="300">
              </mdb-polar-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbPolarChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbPolarChart,
                mdbContainer
              },
              data() {
                return {
                  polarChartData: {
                    labels: ["Red", "Green", "Yellow", "Grey", "Dark Grey"],
                    datasets: [
                      {
                        data: [300, 50, 100, 40, 120],
                        backgroundColor: ["rgba(247, 70, 74, 0.3)", "rgba(70, 191, 189, 0.3)", "rgba(253, 180, 92, 0.3)", "rgba(148, 159, 177, 0.3)", "rgba(77, 83, 96, 0.3)"],
                        hoverBackgroundColor: ["rgba(247, 70, 74, 0.4)", "rgba(70, 191, 189, 0.4)", "rgba(253, 180, 92, 0.4)", "rgba(148, 159, 177, 0.4)", "rgba(77, 83, 96, 0.4)"]
                      }
                    ]
                  },
                  polarChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false
                  }
                };
              }
            }
          </script>
        
        
    

Pie Chart

A pie chart is a circular chart divided into sectors, each sector (and consequently its central angle and area), is proportional to the quantity it represents. Together, the sectors create a full disk.

        
            
          <template>
            <mdb-container>
              <mdb-pie-chart 
                :data="pieChartData" 
                :options="pieChartOptions" 
                :width="600" 
                :height="300">
              </mdb-pie-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbPieChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbPieChart,
                mdbContainer
              },
              data() {
                return {
                  pieChartData: {
                    labels: ["Red", "Green", "Yellow", "Grey", "Dark Grey"],
                    datasets: [
                      {
                        data: [300, 50, 100, 40, 120],
                        backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#4D5360"],
                        hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#616774"]
                      }
                    ]
                  },
                  pieChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false
                  }
                };
              }
            }
          </script>
        
        
    

Doughnut Chart

The doughnut chart allows a number of properties to be specified for each dataset. These are used to set display properties for a specific dataset. For example, the colours of the dataset's arcs are generally set this way.

        
            
          <template>
            <mdb-container>
              <mdb-doughnut-chart 
                :data="doughnutChartData" 
                :options="doughnutChartOptions" 
                :width="600" 
                :height="300">
              </mdb-doughnut-chart>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbDoughnutChart, mdbContainer } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbDoughnutChart,
                mdbContainer
              },
              data() {
                return {
                  doughnutChartData: {
                    labels: ["Red", "Green", "Yellow", "Grey", "Dark Grey"],
                    datasets: [
                      {
                        data: [300, 50, 100, 40, 120],
                        backgroundColor: ["#F7464A", "#46BFBD", "#FDB45C", "#949FB1", "#4D5360"],
                        hoverBackgroundColor: ["#FF5A5E", "#5AD3D1", "#FFC870", "#A8B3C5", "#616774"]
                      }
                    ]
                  },
                  doughnutChartOptions: {
                    responsive: false,
                    maintainAspectRatio: false
                  }
                };
              }
            }
          </script>
        
        
    

Minimalist charts MDB Pro component

This shows easyPieChart with percent sign shown for each span. I'd like to hide the percent sign from two of the spans.

Sales
ROI
Conversion
        
            
          <template>
            <mdb-container>
              <mdb-row>
                <mdb-col md="4">
                  <div class="d-flex justify-content-center">
                    <mdb-simple-chart :value="value" color="#4CAF50">
                      {{value}}%
                    </mdb-simple-chart>
                  </div>
                  <div class="d-flex justify-content-center mt-3">
                    <mdb-badge color="green">Sales <mdb-icon icon="arrow-circle-up"/></mdb-badge>
                  </div>
                </mdb-col>
                <mdb-col md="4">
                  <div class="d-flex justify-content-center">
                    <mdb-simple-chart :value="value2" color="#F44336">
                      {{value2}}%
                    </mdb-simple-chart>
                  </div>
                  <div class="d-flex justify-content-center mt-3">
                    <mdb-badge color="red">ROI <mdb-icon icon="arrow-circle-down"/></mdb-badge>
                  </div>
                </mdb-col>
                <mdb-col md="4">
                  <div class="d-flex justify-content-center">
                    <mdb-simple-chart :value="value3" color="#9E9E9E">
                      {{value3}}%
                    </mdb-simple-chart>
                  </div>
                  <div class="d-flex justify-content-center mt-3">
                    <mdb-badge color="grey">Conversion <mdb-icon icon="minus-square"/></mdb-badge>
                  </div>
                </mdb-col>
              </mdb-row>
            </mdb-container>
          </template>
        
        
    
        
            
          <script>
            import { mdbContainer, mdbRow, mdbCol, mdbSimpleChart, mdbBadge, mdbIcon } from 'mdbvue';
            export default {
              name: 'ChartPage',
              components: {
                mdbContainer,
                mdbRow,
                mdbCol,
                mdbSimpleChart,
                mdbBadge,
                mdbIcon
              },
              data() {
                return {
                  value: 56,
                  value2: 76,
                  value3: 100
                };
              }
            }
          </script>
        
        
    

Charts - API

In this section you will find advanced information about the Charts component. You will learn which modules are required in this component, what are the possibilities of configuring the component, and what events and methods you can use in working with it.


Import statement

        
            
          <script>
            import { mdbLineChart } from 'mdbvue';
          </script>
        
        
    

API Reference: Properties

Name Type Default Description Example
data Array Chart dataset <mdb-line-chart :data="..." >
options Array Chart options array <mdb-line-chart :options="..." >
height Number 0 Chart height <mdb-line-chart :height="300" >
width Number 0 Chart width <mdb-line-chart :width="600" >