Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 CanvasJS图表axisX未定义_Javascript_Node.js_Canvasjs - Fatal编程技术网

Javascript CanvasJS图表axisX未定义

Javascript CanvasJS图表axisX未定义,javascript,node.js,canvasjs,Javascript,Node.js,Canvasjs,我有一张画布图表,我想动态设置它的条纹线 chart = new CanvasJS.Chart("chart", { backgroundColor: "rgba(0,0,0,0)", legend: { fontColor: "#FFF" }, axisX: [{ title: "Test axisX title", stripLines: [

我有一张画布图表,我想动态设置它的条纹线

chart = new CanvasJS.Chart("chart",
    {
        backgroundColor: "rgba(0,0,0,0)",
        legend: {
            fontColor: "#FFF"
        },
        axisX: [{
            title: "Test axisX title",
            stripLines: [
                {
                    value: 250,
                    color: "#FF0000"
                }
            ],
        }],
        data: [] //Later add datapoints
    });
设置带状线位置的函数:

var setVerticalLine = function (xPos) {
if (typeof chart !== 'undefined') {
    console.log(JSON.stringify(chart));  //debug info
    console.log("chart.axisX type: " + typeof chart.axisX); //debug info
    chart.axisX[0].stripLines[0].set("value", xPos);
}};
渲染后,我调用该函数,但设置不成功。
错误:

未捕获类型错误:无法读取未定义的属性“0”。
调试信息:“chart.axix类型:未定义”。转储的图表 对象包含axisX:“…”axisX“:[{“标题”:“测试axisX” 标题,“条纹线”:[{“值”:250,“颜色”:“#FF0000”}]}]


当我在渲染的图表上看到axisX时,它的标题和条带线是如何定义的?为什么我无法访问和修改它?有人能帮我解决这个问题吗?

您在转储对象上看不到
图表.axix
。您看到的实际上是
图表.themeOptions.axisX
。另外,
chart.themeOptions.axisX.set
不是一个函数(
chart.themeOptions.axisX.\uuuu\u定义设置
是)。

在转储对象上看不到
chart.axisX
。您看到的实际上是
图表.themeOptions.axisX
。另外,
chart.themeOptions.axisX.set
不是一个函数(
chart.themeOptions.axisX.\uuuuu定义设置\uuuu
是)。

根据,“在可以使用set方法之前,应该先渲染图表。”。在调用setVerticalLine之前呈现图表在您的情况下应该可以正常工作

以下是工作代码:
var chart=new CanvasJS.chart(“chart”),{
背景色:“rgba(0,0,0,0)”,
图例:{
fontColor:#FFF”
},
axisX:[{
标题:“测试axisX标题”,
带状线:[
{
价值:250,
颜色:“FF0000”
}
],
}],
数据:[//以后添加数据点
});
push({type:“line”,数据点:[{x:200,y:100},{x:300,y:50}]})//虚拟数据点
chart.render();//在使用set方法之前渲染图表
var setVerticalLine=函数(xPos){
if(图表类型!==“未定义”){
chart.axisX[0]。带状线[0]。设置(“值”,xPos);
}
};
刚毛蕨(220)//将带状线值更新为220

根据,“在使用set方法之前,应先渲染图表。”。在调用setVerticalLine之前呈现图表在您的情况下应该可以正常工作

以下是工作代码:
var chart=new CanvasJS.chart(“chart”),{
背景色:“rgba(0,0,0,0)”,
图例:{
fontColor:#FFF”
},
axisX:[{
标题:“测试axisX标题”,
带状线:[
{
价值:250,
颜色:“FF0000”
}
],
}],
数据:[//以后添加数据点
});
push({type:“line”,数据点:[{x:200,y:100},{x:300,y:50}]})//虚拟数据点
chart.render();//在使用set方法之前渲染图表
var setVerticalLine=函数(xPos){
if(图表类型!==“未定义”){
chart.axisX[0]。带状线[0]。设置(“值”,xPos);
}
};
刚毛蕨(220)//将带状线值更新为220


谢谢您的建议。我的错,我认为我不够准确。从按钮处理程序调用条线修改器函数。当我调用它时,图表被呈现出来,我看到了它,它带有在构造函数中创建的条带线(值:250)。图表对象是可访问的,我可以字符串化并转储它。错误是由以下行引起的:chart.axisX[0]。条带线[0]。set(“value”,xPos)。chart.axix未定义。正如@thepiercingarrow所说,只有chart.options.axix存在,它没有setter函数。这与文档不符,我无法解决。第一次呈现图表(即chart.render())后,可以访问chart.axisX[0],chart.axisX[0].stripLines[0].set()应该可以正常工作。当图表中没有数据系列(数据=[]=>没有数据系列时,您似乎会发现此问题。当图表中没有数据系列时,将不存在轴。在呈现图表之前添加虚拟数据系列(可以稍后更新)可能有助于访问axisX。检查这个谢谢你的建议。我的错,我认为我不够准确。从按钮处理程序调用条线修改器函数。当我调用它时,图表被呈现出来,我看到了它,它带有在构造函数中创建的条带线(值:250)。图表对象是可访问的,我可以字符串化并转储它。错误是由以下行引起的:chart.axisX[0]。条带线[0]。set(“value”,xPos)。chart.axix未定义。正如@thepiercingarrow所说,只有chart.options.axix存在,它没有setter函数。这与文档不符,我无法解决。第一次呈现图表(即chart.render())后,可以访问chart.axisX[0],chart.axisX[0].stripLines[0].set()应该可以正常工作。当图表中没有数据系列(数据=[]=>没有数据系列时,您似乎会发现此问题。当图表中没有数据系列时,将不存在轴。在呈现图表之前添加虚拟数据系列(可以稍后更新)可能有助于访问axisX。不管谁投了反对票,我的答案都是正确的。问题是“当我在渲染的图表上看到axisX时,它的标题和条带线怎么可以被取消定义?”我已经回答了这个问题。你是对的,你帮助我解决了我的问题。经过2个多小时的工作,setter func(根据文档和答案工作)仍然无法工作。所以我修改了options.axix.stripLine.value,并重新运行图表。@无论谁投了反对票,我的答案都是正确的。问题是“当我在渲染的图表上看到axisX时,它的标题和条带线怎么可以被取消定义?”我已经回答了这个问题。你是对的,你帮助我解决了我的问题。经过2个多小时的工作,setter func(根据文档和答案工作)仍然无法工作。因此,我修改了options.axix.stripLine.value,并重新渲染图表。