Chart.js折线图设置背景色

加森·特尔穆迪(Ghassen Telmoudi)

我正在使用Chart.js,想将折线图转换为PNG。问题是图像总是以透明背景下载,这不是我所需要的。我尝试了许多选择,但没有任何效果。

还有建议吗?

品牌

这是获取ChartJS完全不透明版本的一种方法:

等待图表完全动画化并完成。您可以通过将onAnimationComplete属性添加到图表中来执行此操作

onAnimationComplete函数中:

  • 创建一个与图表大小相同的内存临时画布。
  • 用白色填充临时画布
  • drawImage 将ChartJS画布覆盖在白色填充的临时画布上
  • 从临时画布创建图像。

可以这样做:

var ctx = document.getElementById("canvas").getContext("2d");
window.myLine = new Chart(ctx).Line(lineChartData, {
  responsive: true,
  onAnimationComplete:function(){
      var tcanvas=document.createElement('canvas');
      var tctx=tcanvas.getContext('2d');
      tcanvas.width=ctx.canvas.width;
      tcanvas.height=ctx.canvas.height;
      tctx.fillStyle='white';
      tctx.fillRect(0,0,tcanvas.width,tcanvas.height);
      tctx.drawImage(canvas,0,0);
      var img=new Image();
      img.onload=function(){
          document.body.appendChild(img);
      }
      img.src=tcanvas.toDataURL();
  }
});

这是示例代码和演示:

var randomScalingFactor = function(){ return Math.round(Math.random()*100)};

var randomColorFactor = function(){ return Math.round(Math.random()*255)};

var lineChartData = {
  labels : ["January","February","March","April","May","June","July"],
  datasets : [
    {
      label: "My First dataset",
      fillColor : "rgba(220,220,220,0.2)",
      strokeColor : "rgba(220,220,220,1)",
      pointColor : "rgba(220,220,220,1)",
      pointStrokeColor : "#fff",
      pointHighlightFill : "#fff",
      pointHighlightStroke : "rgba(220,220,220,1)",
      data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
    },
    {
      label: "My Second dataset",
      fillColor : "rgba(151,187,205,0.2)",
      strokeColor : "rgba(151,187,205,1)",
      pointColor : "rgba(151,187,205,1)",
      pointStrokeColor : "#fff",
      pointHighlightFill : "#fff",
      pointHighlightStroke : "rgba(151,187,205,1)",
      data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
    }
  ]

}

var ctx = document.getElementById("canvas").getContext("2d");
window.myLine = new Chart(ctx).Line(lineChartData, {
  responsive: true,
  onAnimationComplete:function(){
    var tcanvas=document.createElement('canvas');
    var tctx=tcanvas.getContext('2d');
    tcanvas.width=ctx.canvas.width;
    tcanvas.height=ctx.canvas.height;
    tctx.fillStyle='white';
    tctx.fillRect(0,0,tcanvas.width,tcanvas.height);
    tctx.drawImage(canvas,0,0);
    var img=new Image();
    img.onload=function(){
      document.body.appendChild(img);
    }
    img.src=tcanvas.toDataURL();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
<h4>ChartJS line chart</h4>
<div style="width:30%">
  <div>
    <canvas id="canvas" height="450" width="600"></canvas>
  </div>
</div>
<h4>Fully opaque chart as image</h4>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chart.js-向折线图背景添加渐变

来自分类Dev

Chart.js设置甜甜圈背景色?

来自分类Dev

Chart.js-如何将折线图数据集设置为在加载时禁用

来自分类Dev

Chart.js折线图未显示

来自分类Dev

Angular-chart.js-使折线图不弯曲

来自分类Dev

向Chart.js折线图添加标题

来自分类Dev

具有区域范围的Chart.js折线图

来自分类Dev

增加chart.js中折线图的标签大小

来自分类Dev

Chart.js - 折线图最右边的数据点

来自分类Dev

Microsoft Chart Control中的折线图

来自分类Dev

MPAndroid Chart如何使折线图平滑

来自分类Dev

Google折线图删除背景色

来自分类Dev

如何摆脱折线图上每个点顶部的折线(Chart.js)

来自分类Dev

如何使用Chart.js将图表的背景色设置为渐变

来自分类Dev

使用d3.chart.js的d3.js中的折线图

来自分类Dev

Chart.js-多个折线图-仅显示最后一个图表

来自分类Dev

使用Chart.js更改折线图的标签字体颜色

来自分类Dev

在带有json响应的chart.js中绘制折线图

来自分类Dev

在chart.js中绘制折线图,仅在值更改时才放置点

来自分类Dev

Chart.js水平折线图或修改后的水平条形图

来自分类Dev

是否可以使用chart.js恢复折线图中的x轴值

来自分类Dev

如何在Chart.js折线图上自定义y轴标签?

来自分类Dev

Chart.js在折线图上绘制两个json数据集

来自分类Dev

将时间缩放比例添加到折线图(Chart.js)

来自分类Dev

将XML数据解析为Chart.js折线图

来自分类Dev

使用chart.js将数据添加到折线图

来自分类Dev

如何使用Chart.js显示折线图数据集点标签?

来自分类Dev

如何创建带有锁定y轴的水平滚动Chart.js折线图?

来自分类Dev

Chart.js V2折线图缺失点

Related 相关文章

热门标签

归档