我的数据有所不同,这意味着某些数据看起来更具可读性,而其他数据则需要对数比例。
我正在尝试通过以下代码绘制堆积区域图
AmCharts.makeChart("amchart-metrics-history-"+tag_id, {
"type": "serial",
"theme": "dark",
"titles": [{
"text": "Tag Metrics",
"size": 15
}],
"pathToImages": "/static/img/amcharts/",
"legend": {
"equalWidths": true,
"periodValueText": "",
"position": "bottom",
"valueAlign": "left",
"valueWidth": 100
},
"dataProvider": data.data,
"dataDateFormat": "YYYY-MM-DD HH:NN:SS",
"graphs": [{
"fillAlphas": 0.6,
"lineAlpha": 0.4,
"title": "Malware",
"valueField": "malware_count",
"color": "#fff"
}, {
"fillAlphas": 0.6,
"lineAlpha": 0.4,
"title": "Benign",
"valueField": "benign_count"
}, {
"fillAlphas": 0.6,
"lineAlpha": 0.4,
"title": "Grayware",
"valueField": "grayware_count"
}],
"valueAxes": [{
"stackType": "regular",
"title": "Sample Count"
}],
"plotAreaBorderAlpha": 0,
"marginTop": 10,
"marginLeft": 0,
"marginRight":30,
"marginBottom": 0,
"chartScrollbar": {},
"chartCursor": {
"cursorAlpha": 0
},
// X-Axis values
"categoryField": "time",
"categoryAxis": {
"parseDates": true,
//"startOnAxis": true,
//"axisColor": "#DADADA",
//"gridAlpha": 0.07,
"title": "Date",
"minPeriod": "mm",
},
"export": {
"enabled": false
},
"zoomControl": {
"zoomControlEnabled": true,
},
// Y-Axis specific
"valueAxes": [{
"logarithmic": true,
}]
});
我想要完成的是在切换Y比例后重绘。我一直在尝试使用以下
$("#scale_change_"+tag_id).change(function() {
if ( $(this).is(":checked") ) {
am_chart.valueAxes[0].logarithmic = true;
} else {
am_chart.valueAxes[0].logarithmic = false;
}
am_chart.validateData();
});
不幸的是,这不起作用。有人可以说明我应该做的事情而不是切换比例,然后强制重绘吗?理想情况下,堆叠应该在规模变化之间持续......
答案 0 :(得分:1)
我遇到了完全相同的问题。对数标度对我的所有数据集都不起作用。它适用于某些人,而不适用于其他人。我想出如果你想让一个轴具有对数刻度,你必须确保:
- 轴的数据不具有零值
- 轴的数据没有负值
这可能是因为该库的对数功能被编码的方式。
答案 1 :(得分:0)
这是正确的,因为从数学上讲,您不能拥有零或负数的对数。他们没有意义