我是Chartjs的新手,所以请原谅我:-) 在Debian 12上,我已经安装了NPM的chart.js和chartjs-plugin-Annotation

版本:chartjs-v4.4.2 chartjs-plugin-注解-v1.0.3

使用本地库中的上述库,没有可见的矩形.

使用外部库

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartjs-plugin-annotation/0.5.7/chartjs-plugin-annotation.js"></script>

所需的矩形可见.

如果使用

<script src="javascript/chartjs/chart.umd.js"></script> 
<script src="javascript/chartjs-plugin-annotation/chartjs-plugin-annotation.min.js"></script>

该矩形不可见.

Chrome DevTool没有显示错误.

矩形:

<script>                                                                        
const tempData = {                                                              
labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
datasets: [{                                                                
    label: 'Temp',                                                          
    fill: false,                                                            
    data: [-5, 0, 5, -10, -5, 12, 15, 20, 15, 10, 5, 0],                    
}]                                                                          
};                                                                              
const chartOptions = {                                                          
annotation: {                                                               
    annotations: [{                      
        drawTime: "beforeDatasetsDraw",                                     
        type: "box",                                                        
        xScaleID: "x-axis-0",                                               
        yScaleID: "y-axis-0",                                               
        borderWidth: 0,                                                     
        yMin: 18,                                                           
        yMax: 32,                                                           
        backgroundColor: "rgba(46, 204, 113, 0.3)"                          
    }]                                                                      
                                                                            
}                                                                           
};                                                                              
const chartConfig = {                                                           
type: 'line',                                                               
options: chartOptions,                                                      
data: tempData,                                                             
}                                                                               
// Create the chart                                                             
var ctx =   document.getElementById('tempChart').getContext('2d');                
new Chart(ctx, chartConfig);                                                    
</script>                                                                       

谁能提供一个使用本 map 书管理员和chartjs-4.4.2的工作示例?

推荐答案

对于Chart.jsv4,您应该使用chartjs-plugin-annotationv3.

Box Annotations自最初编写代码以来,语法已更改.

  • annotation现在必须放在options.plugins里面.
  • annotation.annotations不再是一个数组而是一个对象.

请看一下下面修改后的可运行代码,看看它是如何工作的.

const tempData = {
  labels: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  datasets: [{
    label: 'Temp',
    fill: false,
    data: [-5, 0, 5, -10, -5, 12, 15, 20, 15, 10, 5, 0],
  }]
};
const chartOptions = {
  plugins: {
    annotation: {
      annotations: {
        box1: {
          drawTime: 'beforeDatasetsDraw',     
          type: 'box',
          xMin: 'Mar',
          xMax: 'Jun',
          yMin: 5,
          yMax: 15,          
          borderWidth: 0,
          backgroundColor: 'rgba(46, 204, 113, 0.3)'
        }
      }
    }
  }
};
new Chart('tempChart', {
  type: 'line',
  options: chartOptions,
  data: tempData,
});
<script src="https://cdn.jsdelivr.net/npm/chart.js@^4"></script>
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@^3"></script>
<canvas id="tempChart"></canvas>

Javascript相关问答推荐

有条件的悲剧

Bootstrap动态选项卡在切换选项卡后保持活动状态,导致元素堆叠

在这种情况下,如何 for each 元素添加id?

在网页上添加谷歌亵渎词

引用在HTMLAttributes<;HTMLDivElement>;中不可用

WebGL 2.0无符号整数输入变量

如何添加绘图条形图图例单击角形事件

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

如何在输入元素中附加一个属性为checkbox?

如何创建返回不带`new`关键字的实例的类

为什么我的按钮没有从&q;1更改为&q;X&q;?

为什么可选参数的顺序会导致问题?

使用Ace编辑器对子组件实例的native-element 进行Angular 获取时面临的问题

传递方法VS泛型对象VS事件特定对象

未捕获的运行时错误:调度程序为空

如何在和IF语句中使用||和&;&;?

输入的值的类型脚本array.排序()

有没有办法通过使用不同数组中的值进行排序

如何在Highlihte.js代码区旁边添加行号?

单击时同时 Select 和展开可访问的行