javascript - 为react-chartjs-2添加渐变背景

标签 javascript reactjs typescript chart.js react-chartjs-2

我目前正在尝试向 react 组件内的雷达图添加具有轻微透明度的渐变背景。我只能通过在 html 文件中引用 Chartjs Canvas 来找到此问题的解决方案,但无法通过 tsx/jsx 文件中的 React 组件找到解决方案。

Desired Result我正在寻找,并且 Current Result

下面的代码用于实现当前结果。

import { Chart } from 'react-chartjs-2';
import { Chart as ChartJS, LineController, LineElement, PointElement, LinearScale, Title, Filler, RadialLinearScale } from 'chart.js';

ChartJS.register(LineController, RadialLinearScale, LineElement, PointElement, LinearScale, Filler, Title);

const labels = ['Thing 1', 'Thing 2', 'Thing 3', 'Thing 4', 'Thing 5', 'Thing 6'];
const chartData = [5, 3, 4, 5, 2, 4];

const data = {
  labels: labels,
  datasets: [
    {
      data: chartData, 
      fill: true,
      backgroundColor: 'pink',
      borderColor: 'transparent',
      pointBorderColor: 'transparent',
      pointBackgroundColor: 'transparent',
    },
  ],
};

const options = {
  scales: {
    r: {
      grid: {
        lineWidth: 2,
      },
      angleLines: {
        lineWidth: 2,
      },
      gridLines: {
        display: false
      },
      ticks: {
        display: false,
        maxTicksLimit: 1
      },
    }
  }
}

const RadarGraph = () => {
    
  return (
      <Chart type="radar" data={data} options={options}/>
  )
}

export default RadarGraph;

最佳答案

您将需要对背景颜色使用可编写脚本的函数,其中包含包含上下文的图表,如下所示:

const data = {
  labels: labels,
  datasets: [
    {
      data: chartData, 
      fill: true,
      backgroundColor: ({chart: {ctx}}) => {
        const bg = ctx.createLinearGradient(paramters);
        // More config for your gradient
        return bg;
      }
    },
  ],
};

关于javascript - 为react-chartjs-2添加渐变背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72930850/

相关文章:

javascript - 如何在点击时无缝定位隐藏的 YouTube 视频

reactjs - 当组件是通用的(多态 react 组件)时键入点击处理程序

javascript - 访问 React Table 中的过滤数据时出错

javascript - 将 Or 用于多种类型时,类型上不存在属性

javascript - Angular2 - 让组件等待服务完成数据获取,然后渲染它

javascript - 如何访问其他同级文件夹的 package.json 或组织 MERN 堆栈的文件夹

javascript - 如何让一个点沿着向量移动?

javascript - 组合 if else 语句(.contains?)的更简单方法

html - 如何在 JSX 中添加可见的 HTML 注释?

javascript - TypeScript 中对象文字的动态泛型类型推断