Vue Bootstrap Charts

Vue Charts - Bootstrap 4 & Material Design

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


        <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


        <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


        <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


        <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


        <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


        <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


        <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


        <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


        <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

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


import { mdbLineChart } from 'mdbvue';
      

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" >