如何向折线图添加渐变背景 [vue-chart.js]

Ana*_*que 3 javascript charts vue.js chart.js

如何向折线图添加渐变背景颜色,我将数据作为道具传递。

这是我的 LineChart.vue 组件:

import { Line, mixins } from 'vue-chartjs'
  const { reactiveProp } = mixins

  export default {
    extends: Line,
    mixins: [reactiveProp],
    data: () => ({
      gradient: null,
      options: {
        layout: {
          padding: {
            bottom: -20,
            left: -20,
          }
        },
        maintainAspectRatio: false,
        legend: {
          display: false
        },
        scales: {
          yAxes: [{
            ticks: {
              beginAtZero: true,
              min: 0,
              display: false,
            },
            gridLines: {
              drawBorder: false,
              showBorder: false,
              display: false,
            },
          }],
          xAxes: [{
            gridLines: {
              drawBorder: false,
              showBorder: false,
              display: false,
            },
            ticks: {
              display: false
            }
          }]
        }
      }
    }),
    mounted () {
      // this.chartData is created in the mixin.
      // If you want to pass options please create a local options object.

      this.renderChart(this.chartData, this.options)
    }
  }
Run Code Online (Sandbox Code Playgroud)

这是 Home.vue 中的图表数据初始化:

    this.chartdata3 = {
      labels: ['bla', 'bla', 'bla', 'bla'],
      datasets: [
        {
          backgroundColor: "rgba(42, 115, 237, 0.9)",
          data: ['200', '400', '100', '700'],
        }
      ]
    };
Run Code Online (Sandbox Code Playgroud)

如何在折线图的背景中使用渐变而不是纯色?

Ben*_*Ben 5

您应该能够添加ref="chart"到您的canvas. 之后,您可以声明将存储背景颜色的新变量。

像这样:

var gradientFill = this.$refs.chart.createLinearGradient(500, 0, 100, 0);
gradientFill.addColorStop(0, "rgba(128, 182, 244, 0.6)");
gradientFill.addColorStop(1, "rgba(244, 144, 128, 0.6)");
Run Code Online (Sandbox Code Playgroud)

然后您应该能够backgroundColor: gradientFill在图表选项中使用。

请根据需要将此代码放入 Vue 生命周期中createdmounted方法中,以确保组件显示时正确呈现。

应该是这样。

您可以在这里尝试使用它: https: //codepen.io/plavookac/pen/RKjNEV

我希望这有帮助。

如果您有任何疑问,请告诉我。