当前位置: 首页 > 知识库问答 >
问题:

ChartJs折线图在悬停时重新绘制故障

柴翰藻
2023-03-14

我有以下利用ChartJS库的代码。

/*assume the tags in the right place */

<canvas id="graph1" width="300" height="300"></canvas>

var ctx = $("#graph1").get(0).getContext("2d");
var myChart = new Chart(ctx).Line(graph1Generator("day"));

…一切正常,但在添加以下事件处理程序以清除并重新绘制具有不同数据的同一图表后,出现了故障。

weekButton.addEventListener("click", function(){
    ctx.clearRect (0, 0, 300, 300);
    ctx.canvas.width = 300;
    ctx.canvas.height = 300;
    myChart = new Chart(ctx).Line(graph1Generator("week"));

这段代码确实成功地用新数据重绘了图表,但是当我将鼠标悬停在它上面时,它会对应该清除的旧图表进行一些非常奇怪的“闪回”。这让我相信它没有清除旧的。

共有1个答案

颜瀚漠
2023-03-14

这是你小提琴的升级版。主要的变化(除了修复函数名的拼写错误)是添加了

myChart.destroy();

像这样的台词之前

myChart = new Chart(ctx).Line(...);

。destroy()方法消除了事件处理程序注册等,因此当您将鼠标移到图形上时,您不应该看到那些奇怪的“幻影图表”。

 类似资料:
  • 我在使用 chart-js lib 绘制折线图时遇到了问题。 这是代码笔:https://codepen.io/bhupendra1011/pen/gObEpJQ,其中我将最小Y值设置为如下: 然而,如果值小于minY,则不可能绘制值,如果我删除minY选项,则所有线形图都可见,但在我的场景中,我希望图形具有一些初始值。 我还尝试使用下面的代码来代替设置minY: 虽然所有绘制的线是可见的,但图形

  • 我想创建一个包含三条线(男性、女性、未知)的折线图。这是我的数据示例: 是否有一个选项,在图中自动创建三行或我需要循环通过数据和创建三个跟踪自己?到目前为止,这是我的代码:

  • 本文向大家介绍C# 绘制实时折线图,波形图,包括了C# 绘制实时折线图,波形图的使用技巧和注意事项,需要的朋友参考一下 此Demo是采用VS自带的Chart图表控件,制作实时动态显示的折线图,和波形图。本文仅供学习分享使用,如有不足之处,还请指正。 涉及知识点: Chart 控件,功能强大,可以绘制柱状图,折线图,波形图,饼状图,大大简化了对图的开发与定制。     Chart控件的相关概念: C

  • 本文向大家介绍Android绘制动态折线图,包括了Android绘制动态折线图的使用技巧和注意事项,需要的朋友参考一下 所谓动态折线图,就是折线图能随着手指的滑动进行动态绘制,这里很定会产生动画效果。基于这个效果,这里使用SurfaceView进行制图。 实现步奏如下: (1): 这里新建一个绘图ChartView,继承SurfaceView并实现SurfaceHolder.Callback ,

  • 我有一个使用chart.js创建的条形图。页面加载时一切正常,但当我使用daterangepicker更改时间范围时,出现了一个小故障。新数据被引入,但当我将鼠标悬停在上面时,旧数据会显示出来。我是javascript新手,希望能得到一些帮助。看起来我需要合并。销毁();不知怎么的,但我不知道怎么做。下面是我的代码片段: 破坏原始数据的最佳方法是什么,以便当我更改日期范围并将鼠标悬停在新图表上时,

  • 主要内容:示例可以使用类的方法在图像上绘制多段线。 以下是此方法的语法。 该方法接受以下参数 - mat - 表示要在其上绘制矩形的图像的对象。 pts - 包含类型的对象的对象。 isClosed - 指定折线的布尔型类型的参数是否为关闭的。 color - 表示矩形颜色的标量对象(BGR)。 thickness - 表示矩形厚度的整数; 默认情况下,厚度值为。 类的构造函数接受类的对象。 示例 以下程序演示