Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么chart.js图表不在Safari中绘制数据(在Chrome中工作)_Javascript_Chart.js - Fatal编程技术网

Javascript 为什么chart.js图表不在Safari中绘制数据(在Chrome中工作)

Javascript 为什么chart.js图表不在Safari中绘制数据(在Chrome中工作),javascript,chart.js,Javascript,Chart.js,我在chart.js中创建了几个图表,它们在chrome中运行良好,但当我在Safari中查看它们时,其中两个图表没有绘制数据,只是显示了图表的外壳 这些代码完全相同。我拉在csv文件。我能看到的唯一区别是,不起作用的CSV在数据中包含月份和年份。如何修复代码,使其在Safari和Chrome中显示?这是我的约会设置。我在Chrome上也收到了这个奇怪的消息(见下文,看起来也和日期问题有关) 这种类型的数据工作正常: "1980","2.4" "1981","2.6" "1982","2.7

我在chart.js中创建了几个图表,它们在chrome中运行良好,但当我在Safari中查看它们时,其中两个图表没有绘制数据,只是显示了图表的外壳

这些代码完全相同。我拉在csv文件。我能看到的唯一区别是,不起作用的CSV在数据中包含月份和年份。如何修复代码,使其在Safari和Chrome中显示?这是我的约会设置。我在Chrome上也收到了这个奇怪的消息(见下文,看起来也和日期问题有关)

这种类型的数据工作正常:

"1980","2.4"

"1981","2.6"

"1982","2.7"
该数据不包括:

"May 2016","6.9"

"June 2016","6.8"

"July 2016","7.0"
这是我的密码:

window.addEventListener('load', setup);

      async function setup() {
        var ctx = document.getElementById('myChart').getContext('2d');
        var dollar = await getData();
        var myChart = new Chart(ctx, {
          type: 'line',
          data: {
            labels: dollar.years,
            datasets: [
              {label: 'Unemployment rate',
                data: dollar.vals,
                borderColor: 'rgb(153,222,101)',
                backgroundColor: 'rgb(153,222,101, 0.2)',
                pointRadius: 0,
                borderWidth: 6,
                pointHitRadius: 10,
                }]
              },

options: {
layout: {
padding: {
  left: 0,
  right: 15,
  top: 0,
  bottom: 0}
  },
responsive: true,
title: {
display: false
},

legend: {
display: false
},

scales: {
yAxes: [{
ticks: {
min: 3,
max: 8,
stepSize: 1
}
}],

xAxes: [{
type: "time",
time: {
unit: "year",
tooltipFormat: "YYYY"
},

gridLines: {
display: true,
drawOnChartArea: false,
},

ticks: {
display: true,
maxTicksLimit: 5,
maxRotation: 0,
minRotation: 0,
padding: 1
},
}],
}
}
        });
        }
这就是我在Chrome中遇到的错误

弃用警告:提供的值不是可识别的RFC2822或ISO格式。moment构造回到js Date(),这在所有浏览器和版本中都不可靠。不鼓励使用非RFC2822/ISO日期格式,并将在即将发布的主要版本中删除。有关更多信息,请参阅


问题在于解析日期字符串。Chart js对日期字符串使用矩适配器,这种类型(“2016年5月”)的格式在某些浏览器中可能不容易解析,以查看您可以使用哪种格式

下面的代码适用于第二组数据

window.addEventListener('load',setup);
var formatDate=(日期字符串)=>{
返回时刻(日期字符串,“MMM YYYY”).toDate()
}
异步函数设置(){
var ctx=document.getElementById('myChart').getContext('2d');
var dollar=等待获取数据();
var myChart=新图表(ctx{
键入:“行”,
数据:{
标签:dollar.years.map(year=>formatDate(year)),
数据集:[{
标签:"失业率",,
数据:美元.VAL,
边框颜色:“rgb(153222101)”,
背景颜色:“rgb(153222101,0.2)”,
点半径:0,
边框宽度:6,
点半径:10,
}]
},
选项:{
布局:{
填充:{
左:0,,
右:15,
排名:0,
底部:0
}
},
回答:是的,
标题:{
显示:假
},
图例:{
显示:假
},
比例:{
雅克斯:[{
滴答声:{
民:3,,
最高:8,
步长:1
}
}],
xAxes:[{
键入:“时间”,
时间:{
单位:“年”,
工具提示格式:“YYYY”
},
网格线:{
显示:对,
drawOnChartArea:错误,
},
滴答声:{
显示:对,
马克斯:5,
最大旋转:0,
最小旋转:0,
填充:1
},
}],
}
}
});
}

谢谢Henok,那么我是否需要使用某种特殊的时刻格式添加代码,或者我仍然可以在chart.js选项项中设置日期格式?对不起,我是个新手。我希望这能帮上忙。这太棒了!我永远也想不到这一点。我并没有意识到这个时刻需要它自己的src,实际上它是一个图书馆。非常感谢!默认情况下,它也包含在图表js中。