Javascript 如何在图表上取消堆叠直线系列:AMCharts3
所以在我的图表上,我有条线和条线,我希望条线系列像下图一样堆叠,但我不希望线系列被堆叠。 在示例图像中,前3个点的顶线系列值为100000,但它位于150000,而底线系列值为50000,位于50000,因此我认为它们正在叠加,我不希望发生这种情况 我希望图表看起来完全一样,但是让线系列位于yAxis上的正确值Javascript 如何在图表上取消堆叠直线系列:AMCharts3,javascript,amcharts,Javascript,Amcharts,所以在我的图表上,我有条线和条线,我希望条线系列像下图一样堆叠,但我不希望线系列被堆叠。 在示例图像中,前3个点的顶线系列值为100000,但它位于150000,而底线系列值为50000,位于50000,因此我认为它们正在叠加,我不希望发生这种情况 我希望图表看起来完全一样,但是让线系列位于yAxis上的正确值 let {dataProvider, displayCurrency} = this.props; var config = { "type":"serial"
let {dataProvider, displayCurrency} = this.props;
var config = {
"type":"serial",
"categoryField":"category",
"fontFamily":"arial",
"categoryAxis":{
"gridPosition":"start",
"title":"Time",
"titleRotation":0
},
"trendLines":[],
"graphs":[
{
"balloonText": "[[title]] of [[category]]:[[value]]",
"balloonFunction" : formatGraphMoneyBallon("Hedging"),
"balloonColor": "#000066",
"fillColors": "#000066",
"lineColor": "#000066",
"fillAlphas": 1,
"id": "coverUpper",
"title": "Hedging",
"newStack": false,
"type": "column",
"valueField": "hedging"
},
{
"balloonText": "[[title]] of [[category]]:[[value]]",
"balloonFunction" : formatGraphMoneyBallon("Maximum Additional Hedging"),
"balloonColor": "#000066",
"fillColors": "#000066",
"lineColor": "#000066",
"fillAlphas": 1,
"id": "coverAdditional",
"title": "Maximum Additional Hedging",
"type": "column",
"newStack": false,
"valueField": "maxAdditionalHedging",
"pattern": {
"url": "https://www.amcharts.com/lib/3/patterns/black/pattern5.png",
"width": 4,
"height": 4
}
}, {
"balloonText": "[[title]] of [[category]]:[[value]]",
"balloonFunction" : formatGraphMoneyBallon("Forecasted Cashflows"),
"fillAlphas": 1,
"balloonColor": "#B0DE09",
"fillColors": "#B0DE09",
"lineColor": "#B0DE09",
"id": "cfGraph",
"title": "Forecasted Cashflows",
"type": "column",
"newStack": true,
"valueField": "exposure"
}, {
"balloonText": "[[title]] of [[category]]:[[value]]",
"balloonFunction" : formatGraphMoneyBallon("Policy Minimum"),
"bullet": "triangleUp",
"balloonColor": "#014310",
"fillColors": "#014310",
"lineColor": "#014310",
"bulletAlpha": 0.6,
"dashLength": 7,
"id": "polMin",
"valueAxis": "dollarAxis",
"newStack": true,
"title": "Policy Minimum",
"valueField": "minHedge"
}, {
"balloonText": "[[title]] of [[category]]:[[value]]",
"balloonFunction" : formatGraphMoneyBallon("Policy Maximum"),
"bullet": "triangleDown",
"type": "line",
"balloonColor": "#014310",
"fillColors": "#014310",
"lineColor": "#014310",
"bulletAlpha": 0.6,
"dashLength": 7,
"newStack": true,
"id": "polMax",
"valueAxis": "dollarAxis",
"title": "Policy Maximum",
"valueField": "maxHedge"
}
],
"guides":[],
"valueAxes":[
{"id":"dollarAxis","stackType":"regular","title":"Amount " + displayCurrency}
],
"allLabels":[],
"balloon":{},
"legend":{
"enabled":true,
"useGraphSettings":true,
"spacing": 0,
"valueWidth":15
},
"export":{"enabled":true},
"dataProvider":dataProvider
}
堆叠通过轴完成。如果不希望行堆叠,请将它们放置在未设置
stackType
的单独值轴中,并通过valueAxis
属性将图形链接到值轴id。您还需要考虑禁用行的值轴的标签、网格和同步MI/MAX:
graphs:[{
type: "line",
// ...
valueAxis: "dollarAxis-line"
},
// ...
],
valueAxes: [
{
"id": "dollarAxis",
"includeHidden": true,
// ...
},
{
"id": "dollarAxis-line",
"labelsEnabled": false,
"gridAlpha": 0,
"axisAlpha": 0,
}
],
"listeners": [{
"event": "init",
"method": function(e) {
// sync axes
e.chart.valueAxes[0].maximum = Math.max(e.chart.valueAxes[0].max, e.chart.valueAxes[1].max);
e.chart.valueAxes[0].minimum = Math.min(e.chart.valueAxes[0].min, e.chart.valueAxes[1].min);
e.chart.valueAxes[1].maximum = Math.max(e.chart.valueAxes[0].max, e.chart.valueAxes[1].max);
e.chart.valueAxes[1].minimum = Math.min(e.chart.valueAxes[0].min, e.chart.valueAxes[1].min);
e.chart.validateData();
}
}]
编辑:
如果您从一个空的图表开始,您可能需要考虑使用<代码> DATAUPDATE> 事件,以便在更新数据提供程序之后它将重新同步轴。validateData
方法触发此事件,因此您需要将此调用包装在一个条件中,该条件检查标志,以便图表不会无限次地调用此方法
"listeners": [{
"event": "dataUpdated",
"method": function(e) {
setTimeout(function() {
if (!e.chart.updating) {
e.chart.updating = true;
// sync axes
e.chart.valueAxes[0].maximum = undefined;
e.chart.valueAxes[0].minimum = undefined;
e.chart.valueAxes[1].maximum = undefined;
e.chart.valueAxes[1].minimum = undefined;
e.chart.validateData();
e.chart.valueAxes[1].maximum = e.chart.valueAxes[0].maximum = Math.max(e.chart.valueAxes[0].max, e.chart.valueAxes[1].max);
e.chart.valueAxes[1].minimum = e.chart.valueAxes[0].minimum = Math.min(e.chart.valueAxes[0].min, e.chart.valueAxes[1].mix);
e.chart.validateData();
e.chart.updating = false;
}
}, 100);
}
}]
演示如下:
var chart=AmCharts.makeChart(“chartdiv”{
“类型”:“串行”,
“类别字段”:“类别”,
“fontFamily”:“arial”,
“分类法”:{
“网格位置”:“开始”,
“标题”:“时间”,
“标题旋转”:0
},
“趋势线”:[],
“图表”:[{
“文本”:“[[类别]]:[[价值]]中的[[标题]]”,
“气球颜色”:“#000066”,
“填充颜色”:“#000066”,
“线条颜色”:“#000066”,
“填充字母”:1,
“id”:“coverUpper”,
“标题”:“对冲”,
“newStack”:错误,
“类型”:“列”,
“valueField”:“套期保值”
},
{
“文本”:“[[类别]]:[[价值]]中的[[标题]]”,
“气球颜色”:“#000066”,
“填充颜色”:“#000066”,
“线条颜色”:“#000066”,
“填充字母”:1,
“id”:“覆盖范围附加”,
“标题”:“最大额外套期保值”,
“类型”:“列”,
“newStack”:错误,
“valueField”:“MaxAdditionalHedgeting”,
“模式”:{
“url”:”https://www.amcharts.com/lib/3/patterns/black/pattern5.png",
“宽度”:4,
“高度”:4
}
}, {
“文本”:“[[类别]]:[[价值]]中的[[标题]]”,
“填充字母”:1,
“气球颜色”:“B0DE09”,
“填充颜色”:“#B0DE09”,
“lineColor”:“B0DE09”,
“id”:“cfGraph”,
“标题”:“预测现金流”,
“类型”:“列”,
“newStack”:没错,
“valueField”:“风险敞口”
}, {
“文本”:“[[类别]]:[[价值]]中的[[标题]]”,
“bullet”:“triangleUp”,
“气球颜色”:“014310”,
“填充颜色”:“014310”,
“线条颜色”:“014310”,
“bulletAlpha”:0.6,
“dashLength”:7,
“id”:“polMin”,
“valueAxis”:“多拉轴线”,
“标题”:“保单最低限额”,
“valueField”:“minHedge”
}, {
“文本”:“[[类别]]:[[价值]]中的[[标题]]”,
“bullet”:“triangleDown”,
“类型”:“行”,
“气球颜色”:“014310”,
“填充颜色”:“014310”,
“线条颜色”:“014310”,
“bulletAlpha”:0.6,
“dashLength”:7,
“id”:“polMax”,
“valueAxis”:“多拉轴线”,
“标题”:“保单最高限额”,
“valueField”:“maxHedge”
}
],
“指南”:[],
“价值轴”:[{
“id”:“dollarAxis”,
“stackType”:“常规”,
“includeHidden”:正确,
“标题”:“金额($)”
},
{
“id”:“多拉轴线”,
“stackType”:“无”,
“labelsEnabled”:错误,
“gridAlpha”:0,
“axisAlpha”:0
}
],
“所有标签”:[],
“气球”:{},
“传奇”:{
“启用”:正确,
“useGraphSettings”:正确,
“间距”:0,
“valueWidth”:15
},
“出口”:{
“已启用”:真
},
“数据提供者”:[{
“类别”:“类别1”,
“minHedge”:151218,
“对冲”:111436,
“maxHedge”:236849,
“MaxAdditionalHedgeting”:272065,
“额外对冲”:233236,
“曝光”:163731
},
{
“类别”:“类别2”,
“minHedge”:150517,
“对冲”:137299,
“maxHedge”:258805,
“MaxAdditionalHedgeting”:254932,
“额外对冲”:183495,
“曝光”:111847
},
{
“类别”:“类别3”,
“minHedge”:158456,
“对冲”:198219,
“maxHedge”:231274,
“MaxAdditionalHedgeting”:259615,
“额外对冲”:187108,
“曝光”:168738
},
{
“类别”:“类别4”,
“minHedge”:167931,
“对冲”:173121,
“maxHedge”:263334,
“MaxAdditionalHedgeting”:260449,
“额外对冲”:229972,
“曝光”:156174
},
{
“类别”:“类别5”,
“minHedge”:164449,
“对冲”:157823,
“maxHedge”:268980,
“MaxAdditionalHedgeting”:268896,
“额外对冲”:180031,
“曝光”:100893
},
{
“类别”:“第6类”,
“minHedge”:166465,
“对冲”:128504,
“maxHedge”:241036,
“MaxAdditionalHedgeting”:269858,
“额外对冲”:230233,
“曝光”:117158
},
{
“类别”:“类别7”,
“minHedge”:167117,
“对冲”:110649,
“maxHedge”:229749,
“MaxAdditionalHedgeting”:262671,
“额外对冲”:201500,
“曝光”:188282
},
{
“类别”:“第8类”,
“minHedge”:151167,
“对冲”:123489,
“maxHedge”:249919,
“MaxAdditionalHedgeting”:268805,
“额外对冲”:206302,
“曝光”:120797
},
{
“类别”:“类别9”,
“minHedge”:154961,
“对冲”:185898,
“maxHedge”:269185,
“MaxAdditionalHedgeting”:271949,
“额外对冲”:173116,
“曝光”:184312
},
{
"