Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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 HighCharts自定义SVG标记符号_Javascript_Svg_Highcharts - Fatal编程技术网

Javascript HighCharts自定义SVG标记符号

Javascript HighCharts自定义SVG标记符号,javascript,svg,highcharts,Javascript,Svg,Highcharts,基于,您可以通过为(基于SVG的)符号路径定义自定义回调来创建自己的点标记 但是,如果需要从symbol prototype函数中获取基础系列数据,该怎么办?可能吗 例如: Highcharts.svgrender.prototype.symbols.cross=函数(x,y,w,h){ //我希望能够从这里访问序列数据。 //点数据或整个系列的数据数组。 返回['M',x,y,'L',x+w,y+h,'M',x+w,y,'L',x,y+h,'z']; }; if(Highcharts.VML

基于,您可以通过为(基于SVG的)符号路径定义自定义回调来创建自己的点标记

但是,如果需要从symbol prototype函数中获取基础系列数据,该怎么办?可能吗

例如:

Highcharts.svgrender.prototype.symbols.cross=函数(x,y,w,h){
//我希望能够从这里访问序列数据。
//点数据或整个系列的数据数组。
返回['M',x,y,'L',x+w,y+h,'M',x+w,y,'L',x,y+h,'z'];
};
if(Highcharts.VMLRenderer){
Highcharts.VMLRender.prototype.symbols.cross=Highcharts.SvgRender.prototype.symbols.cross;
}
Highcharts.chart('容器'{
标题:{
文本:“预定义、图像和自定义标记符号的演示”
},
图例:{
y:-40//为字幕腾出空间
},
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月]
},
系列:[{
名称:“自定义符号”,
数据:[54.4,29.9,71.5,106.4,129.2,144.0,176.0,135.6,148.5,216.4,194.1,95.6],
标记:{
符号:'十字架',
lineColor:null,
线宽:2
}
}],
学分:{
已启用:false
},
副标题:{
文本:“*)IE6和IE7中不支持Base64”,
垂直排列:“底部”,
对齐:“右”,
y:空,
风格:{
字体大小:“10px”
}
}
});

事实证明,您实际上可以在单个点级别定义标记特性。从那里,您可以提供该值,并使其可以从自定义回调中访问

像这样:

Highcharts.svgrender.prototype.symbols.cross=函数(x,y,w,h,d){
//我希望能够从这里访问序列数据。
//点数据或整个系列的数据数组。
如果(d.v){
控制台调试(“点特定数据:+d.v”);
}
//从这里可以想象,可以使用特定于点的数据来影响符号路径。
//一个很好的例子是,如果您想要构建一系列自定义风倒钩,
//其中倒钩的路径将基于每个点的强度和方向
// ...
返回['M',x,y,'L',x+w,y+h,'M',x+w,y,'L',x,y+h,'z'];
};
if(Highcharts.VMLRenderer){
Highcharts.VMLRender.prototype.symbols.cross=Highcharts.SvgRender.prototype.symbols.cross;
}
Highcharts.chart('容器'{
标题:{
文本:“预定义、图像和自定义标记符号的演示”
},
xAxis:{
键入:“日期时间”
},
系列:[{
名称:“自定义符号”,
数据:[{
x:1525089600000,
y:54.4,
标记:{
符号:“十字架”,
v:54.4
}
},
{
x:1525090500000,
y:71.5,
标记:{
符号:“十字架”,
v:71.5
}
},
{
x:1525091400000,
y:29.9,
标记:{
符号:“十字架”,
v:29.9
}
}
],
标记:{
符号:'十字架',
lineColor:null,
线宽:2
}
}],
});


我认为这是不可能的。。。你能解释你为什么需要这个吗?也许有另一种方法可以实现您想要的功能—不将数据存储为全局数组,然后您可以在任何地方访问它们。您能否更详细地解释您的问题,以及最终的结果是什么?