Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

203
Visualizações
Vue-google-chart How to add filter categori

How to create a filter category in bar chart using vue-google-charts wrapper in Vue.js.

I have created stacked bar chart and i want to add filter by label inside legend.

Here my vue app

https://codesandbox.io/embed/vue-dashboard-chart-6lvx4?fontsize=14&hidenavigation=1&theme=dark

How is it done using Vue-google-charts wrapper ?

Thanks an best regards, Dede

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

You can filter chart data with chartEvents :

Vue.component("gchart", VueGoogleCharts.GChart);
new Vue({
  el: '#demo',
  data() {
    return {
      chartData: [
        ['Month', 'New', 'Verified', 'Regitered ID', 'On Playing', 'Finished', 'Active', 'Inactive'],
        ['January', 7, 4, 18, 15, 9, 10, 0],
        ['February', 16, 22, 23, 30, 16, 9, 8],
        ['March', 10, 2, 20, 13, 14, 21, 18]
      ],
      chartOptions: {
        chart: {
          title: "Player Performance"
        },
        legend: { position: 'top', maxLines: 3 },
        bar: { groupWidth: '75%' },
        isStacked: true,
      },
      chartEvents: {
        'click': (e) => {
          const numberPattern = /\d+/g;
          const idx = Number(e.targetID.match(numberPattern)[0])
          this.isFiltered ? this.allData() : this.filterChart(idx)
        }
      },
      newData: [],
      isFiltered: false
    };
  },
  methods: {
    filterChart(idx) {
      this.allData()
      for(let i = 0; i < this.newData.length; i++) {
        this.newData[i] = [this.newData[i][0], this.newData[i][idx + 1]]
      }
      this.isFiltered = true
    },
    allData() {
      this.newData = [...this.chartData]
      this.isFiltered = false
    },
  },
  mounted(){
    this.allData()
  }
})

Vue.config.productionTip = false
Vue.config.devtools = false
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-google-charts@0.3.2/dist/vue-google-charts.browser.js"></script>
<div id="demo">
  <div id="app">
    <GChart type="ColumnChart" :data="newData" :options="chartOptions" :events="chartEvents" />
  </div>
</div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda