更改HighCharts中卷列(高/低)的颜色

更改HighCharts中卷列(高/低)的颜色,highcharts,highstock,Highcharts,Highstock,我有一个简单的图表,上面有烛台,下面有体积列: 基本上,我想使用黑色和红色的列取决于它是否关闭高于开放。我看到了一些示例,它们将Y:data,color:'#000000'作为参数。问题是我在推日期和卷号。我试图推送X:date,Y:data,color:“#000000”,但它抛出了错误,没有给我预期的结果。首先,如果你有大量的分数,你需要设置为0。这将禁用输入数据格式检查 然后,要根据蜡烛应用列颜色,我建议您使用以下代码: Highcharts.seriesTypes.column.pro

我有一个简单的图表,上面有烛台,下面有体积列:

基本上,我想使用黑色和红色的列取决于它是否关闭高于开放。我看到了一些示例,它们将Y:data,color:'#000000'作为参数。问题是我在推日期和卷号。我试图推送X:date,Y:data,color:“#000000”,但它抛出了错误,没有给我预期的结果。

首先,如果你有大量的分数,你需要设置为0。这将禁用输入数据格式检查

然后,要根据蜡烛应用列颜色,我建议您使用以下代码:

Highcharts.seriesTypes.column.prototype.pointAttribs=(函数(func){
返回函数(点、状态){
var attribs=func.apply(这是参数);
var candleSeries=this.chart.series[0];//可能需要更改索引
var candlePoint=candleSeries.points.filter(函数(p){return p.index==point.index;})[0];
var color=(candlePoint.open}(Highcharts.seriesTypes.column.prototype.pointAttribs))这对我来说非常有效:

$(函数(){
jQuery.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-json&回调=?',函数(数据){
//将数据集拆分为ohlc和卷
var volumeColor='';
var ohlc=[],
卷=[],
dataLength=data.length,
//设置允许的数据分组单位
分组单元=[[
'周',//单位名称
[1] //允许的倍数
], [
“月”,
[1, 2, 3, 4, 6]
]],
i=0;
对于(i;i=数据[i-1][1]){
体积颜色='#006633';
}否则{
体积颜色='#CC0033';
}
}
音量.推({
x:数据[i][0],//日期
y:数据[i][5],
颜色:volumeColor
});
}
//创建图表
$(“#容器”).highcharts('StockChart'{
范围选择器:{
选定:1
},
标题:{
文本:“AAPL历史”
},
亚克斯:[{
标签:{
对齐:“右”,
x:-3
},
标题:{
文本:“OHLC”
},
身高:60%,
线宽:2
}, {
标签:{
对齐:“右”,
x:-3
},
标题:{
文本:“卷”
},
前五名:“65%”,
身高:35%,
偏移量:0,
线宽:2
}],
系列:[{
键入:“烛台”,
名称:“AAPL”,
资料来源:ohlc,
数据分组:{
单位:分组单位
}
}, {
键入:“列”,
名称:'卷',
数据:卷,
亚克西斯:1,,
turboThreshold:Number.MAX_值,
数据分组:{
启用:false,
单位:分组单位
}
}]
});
});
});

当前(HighCharts 7+)解决方案不需要覆盖任何方法,只需根据当前烛台点的打开和关闭之间的比较设置音量点的
颜色属性:绿色(如果
),黄色(如果相等)

这里是一个最小的例子

//通过比较打开(1)和关闭(4)返回与蜡烛匹配的颜色
函数volumeBarColor(点){
如果(点[1]<点[4])
返回“绿色”;
如果(点[1]>点[4])
返回“红色”;
返回“黄色”;
}
Highcharts.getJSON('https://www.highcharts.com/samples/data/aapl-ohlcv.json,数据=>{
//将数据集拆分为ohlc和卷
常数ohlc=[],
数量=[];
对于(设i=0;i


使用x:date(x应该是小写)是的,如果我不清楚,很抱歉,我确实尝试过。我必须将它转换为使用大括号{}使图表均匀加载,但它不显示任何数据:先生,你就是那个人。问题,这可能是我误解了函数的工作原理,但实际上我的图表上有两个列系列(一个用于卷,一个用于带直方图的MACD)。此函数正在更改两个上的颜色,我如何修改它以仅关注系列[1]-卷系列?@Jake I略微imp