我有morris.js的任何setter函数吗?我已经完成了他们的文档,似乎只有一个使用setData()
更改数据点值的示例。
但是当您更改数据时,您可能需要更改x / y轴上的标签或更改其他选项。那么,是否有关于morris.js的常规setter方法?
答案 0 :(得分:4)
检查script和setData()
函数后,我发现没有任何setter函数。但是可以重置选项并重绘,如下所示。
var options = {
element : 'lead-summery',
data : xChart.leads,
xkey: 'date',
ykeys: ['total', 'bananas', 'apples', 'oranges'],
labels:['Total', 'Bananas', 'Apples', 'Oranges'],
lineColors:['#E67A77', '#D9DD81', '#79D1CF'],
fillOpacity: 0.2,
behaveLikeLine: true,
lineWidth: 1
};
// you must save the cart in a global variable
window.myAreaChart = Morris.Area(options);
现在说我们想通过AJAX添加一些新数据,并希望更改xLabelFormat
功能和xLabelAngle
标签。
var data = {}; // we get this from ajax call or whatever
// now we update the options
// xLabelFormat callback function
window.myAreaChart.options.xLabelFormat = function(date){
return formatDate(date);
}
// xLabelAngle
window.myAreaChart.xLabelAngle = 60;
// add data and update the chart
window.myAreaChart.setData(data);
了解非常重要,为了更新图表,我们需要调用redraw()
方法,例如window.myAreaChart.redraw()
。否则图表不会更新。我们没有在上面的示例中调用redraw()
因为setData()
方法调用它所以不需要调用它两次。但是,如果您不使用setData()
,则需要致电redraw()
以便直观地更新图表。