javascript - 图表区域背景颜色chartjs

标签 javascript jquery canvas html5-canvas chart.js

我的图表 js 有问题,我想为图表区域着色,如上图所示 enter image description here

我尝试从 charJs Docs 查找配置,但没有任何匹配。 是否可以更改图表区域背景颜色? 如果可能的话有人可以帮助我吗?

HTML

<canvas id="barChart" width="600" height="300"></canvas>

Javascript

var ctx = document.getElementById("barChart");
var barChart = new Chart(ctx,{
  type: 'bar',
  data: {
    labels:["Label1","Label2","Label3","Label4"],
    borderColor : "#fffff",
    datasets: [
      {
        data: ["2","3","1","4"],
        borderColor : "#fff",
        borderWidth : "3",
        hoverBorderColor : "#000",
        backgroundColor: [
          "#f38b4a",
          "#56d798",
          "#ff8397",
          "#6970d5" 
        ],
        hoverBackgroundColor: [
          "#f38b4a",
          "#56d798",
          "#ff8397",
          "#6970d5"
        ]
      }]
  },
  options: {
    scales: {
      yAxes: [{
        ticks:{
          min : 0,
          stepSize : 1,
          fontColor : "#000",
          fontSize : 14
        },
        gridLines:{
          color: "#000",
          lineWidth:2,
          zeroLineColor :"#000",
          zeroLineWidth : 2
        },
        stacked: true
      }],
      xAxes: [{
        ticks:{
          fontColor : "#000",
          fontSize : 14
        },
        gridLines:{
          color: "#fff",
          lineWidth:2
        }
      }]
    },
    responsive:false
  }
});

这是我当前的代码 jsFiddle

所以每个人都可以尝试寻找解决方案。 感谢您的帮助。

最佳答案

没有内置方法来更改背景颜色,但您可以使用 CSS。 JSFiddle .

ctx.style.backgroundColor = 'rgba(255,0,0,255)';

编辑

如果你想填充图表的精确区域而不是整个div,你可以编写自己的chart.js插件。试试 JSFiddle .

        Chart.pluginService.register({
            beforeDraw: function (chart, easing) {
                if (chart.config.options.chartArea && chart.config.options.chartArea.backgroundColor) {
                    var ctx = chart.chart.ctx;
                    var chartArea = chart.chartArea;

                    ctx.save();
                    ctx.fillStyle = chart.config.options.chartArea.backgroundColor;
                    ctx.fillRect(chartArea.left, chartArea.top, chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);
                    ctx.restore();
                }
            }
        });

        var config = {
  type: 'bar',
  data: {
    labels:["Label1","Label2","Label3","Label4"],
    borderColor : "#fffff",
    datasets: [
      {
        data: ["2","3","1","4"],
        borderColor : "#fff",
        borderWidth : "3",
        hoverBorderColor : "#000",
        backgroundColor: [
          "#f38b4a",
          "#56d798",
          "#ff8397",
          "#6970d5" 
        ],
        hoverBackgroundColor: [
          "#f38b4a",
          "#56d798",
          "#ff8397",
          "#6970d5"
        ]
      }]
  },
  options: {
    scales: {
      yAxes: [{
        ticks:{
          min : 0,
          stepSize : 1,
          fontColor : "#000",
          fontSize : 14
        },
        gridLines:{
          color: "#000",
          lineWidth:2,
          zeroLineColor :"#000",
          zeroLineWidth : 2
        },
        stacked: true
      }],
      xAxes: [{
        ticks:{
          fontColor : "#000",
          fontSize : 14
        },
        gridLines:{
          color: "#fff",
          lineWidth:2
        }
      }]
    },
    responsive:false,
    chartArea: {
        backgroundColor: 'rgba(251, 85, 85, 0.4)'
    }
  }
};

        var ctx = document.getElementById("barChart").getContext("2d");
        new Chart(ctx, config);

关于javascript - 图表区域背景颜色chartjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493564/

相关文章:

javascript - 从 Javascript 文件夹中提取图像

javascript - Jquery 事件 - 如何选择不包括某些内部区域的整个 DIV

javascript - 使用 Javascript 保存游戏

html - 无法在特定尺寸的 Canvas 上绘制

Javascript For 不完成数组循环

javascript - 为什么我不能缩小 Angular.js?

javascript - 为什么每次滑动后页面都会向上滚动以及如何防止这种情况?

jquery - 如何使用jquery将行移动到最顶部或底部

javascript - 如何让 slider 在几秒钟后改变幻灯片?

android比例位图性能