Javascript AMcharts股票图表y轴上的2个时间序列
我正在做一张有记号的阿姆查特股票图表。我做标记的方法是,仅当满足条件时,才获取价格序列的值。因此,数据有4列:Javascript AMcharts股票图表y轴上的2个时间序列,javascript,charts,amcharts,Javascript,Charts,Amcharts,我正在做一张有记号的阿姆查特股票图表。我做标记的方法是,仅当满足条件时,才获取价格序列的值。因此,数据有4列: 日期 间谍价格(SP500 etf) 每日RSI状态1(1,0布尔值) 信号(如果每日RSI状态1=1,则为间谍价格,否则为空) CSV,其中包含以下数据: 问题是,即使数据完全对齐,但在amcharts图表上却没有显示,这让我完全困惑。标记“4.信号”显示在“2.间谍价格”时间序列下。如图所示: 最后,对于代码: 第一部分包含在下面较大的代码中,它使这两个时间序列都出现 "pa
"panels": [ {
"stockGraphs": [ {
"id": "g1",
"title": "SPY Price",
"valueField": "spy",
//"type": "line",
"lineColor": "#39fe90",
"useDataSetColors": false
},{
"id": "g2",
"title": "Signal",
"valueField": "Signal",
"bulletSize": 10,
"bullet": "round",
//"bulletBorderAlpha": 1,
"lineColor": "#551A8B",
"useDataSetColors": false
AmCharts.loadFile( "http://quantresearch.club/wp-content/themes/oceanwp/testing/RSI1dip.csv", {}, function( response ) {
var csvData = AmCharts.parseCSV( response, {
"useColumnNames": true
});
//var csvDataLength = csvData.length;
chartData = [];
guideData = [];
//var a = 0;
//var b = 0;
//var c;
var lastdate;
var firstdate;
$.each(csvData, function(i,k){
if(k.Date != undefined) {
chartData.push( {
"Date": k.Date,
"SPY": k.SPY,
"Signal": k.Signal
})
}
});
//console.log(guideData);
chart = AmCharts.makeChart( "chartdiv", {
"type": "stock",
"theme": "light",
"categoryAxesSettings": {
"labelRotation" : 30,
"minPeriod": "DD",
"axisAlpha" : 1,
"gridAlpha": 0,
//"dateFormats" : "MMM-YYYY",
},
"legend": {
"useGraphSettings": true
},
"dataSets": [ {
"fieldMappings": [{
"fromField": "SPY",
"toField": "spy"
},
{
"fromField": "Signal",
"toField": "Signal"
}],
"dataProvider": chartData,
"categoryField": "Date",}],
//Where the chart gets populated
"panels": [ {
"stockGraphs": [ {
"id": "g1",
"title": "SPY Price",
"valueField": "spy",
//"type": "line",
"lineColor": "#39fe90",
"useDataSetColors": false
},{
"id": "g2",
"title": "Signal",
"valueField": "Signal",
"bulletSize": 10,
"bullet": "round",
//"bulletBorderAlpha": 1,
"lineColor": "#551A8B",
"useDataSetColors": false
}],
"stockLegend": {
//"periodValueTextComparing": "[[percents.value.close]]%",
"periodValueTextRegular": "[[value.close]]",
//"labelText" : "SPY",
"combineLegend": true,
"markerType" : "line"
}
}, ],
"chartScrollbarSettings": {
"graph": "g1",
"usePeriod": "DD",
"position": "bottom",
"gridAlpha": 0
},
"chartCursorSettings": {
"valueBalloonsEnabled": true,
"fullWidth": true,
"valueLineBalloonEnabled": true,
"valueLineEnabled": true,
"valueLineAlpha": 0.5
},
"periodSelector": {
"inputFieldsEnabled" : true,
"position": "top",
"periods": [ {
"period": "YYYY",
"count": 2,
"label": "2Y"
}, {
"period": "YYYY",
"count": 5,
"label": "5Y"
},
{
"period": "YYYY",
"count": 10,
"label": "10Y"
},
{
"period": "MAX",
"label": "MAX",
"selected": true,
}
]
},
"valueAxesSettings": {
"gridColor": "#555",
"gridAlpha": 0,
//"axisAlpha" : 1,
"inside": false,
"position": "right",
"showLastLabel": true
},
"panelsSettings": {
"usePrefixes": false,
"marginRight" : 20,
"marginBottom" : 10,
"marginLeft" : 20,
"marginTop" : 10
},
"export": {
"enabled": true,
"position": "top-left"
}
} );
/*chart.addListener("init", function(event) {
console.log(event);
});*/
});
如果有人对此有任何想法,我们将不胜感激
非常感谢。问题是由于股票图表的错误。当有许多可见点时,图表会对数据进行分组以提高性能,这会影响线的绘制方式,因为它使用的是从其数据分组算法派生的点。默认情况下,它使用分组中的
“Close”
值绘制点,更改SPY graph中的值将更改外观。由于您的信号数据集的比较点要少得多,因此该图表仅绘制该图形的原始值,而不管您使用的是哪个periodValue
,这些值都与分组间谍图的值不匹配
要使两个图中的值正确对齐,唯一的选择是通过在类别设置中设置为0来禁用数据分组。如果您有很多要点,这将影响性能
这是maxSeries
设置为0的图表的一部分