1

我有一个剑道柱形图,当通过日期选择器设置不同的标准时,数据源会被刷新。

我想阻止图表将值轴显示为小数,到目前为止我发现的唯一方法是设置格式,这会导致数字重复,或者设置主要单位,如果我的数据发生变化,那么这会导致在重叠的值轴标签中。都不合适。

我现在能想到的唯一方法是根据我的最大值是否小于 10 动态设置主要单位,如果是,则主要单位设置为 1,如果不是,则不设置主要单位。

这应该可以正常工作,但是,如果主要单位设置为 1,并且数据发生更改,我现在需要找到一种方法来清除主要单位,如果我的新最大值大于 10。

在javascript中我有:

if (highest <= 10) {
   chart.data("kendoChart").options.valueAxis.majorUnit = 1;
} else {
   chart.data("kendoChart").options.valueAxis.majorUnit.remove(); // This does not work
}

我不能只将 majorUnit 设置为 null 或 0,它不喜欢这样,并且没有关于删除此类属性的正确语法的文档。

4

3 回答 3

1

这对我有用:

chart.data("kendoChart").options.valueAxis.majorUnit = undefined;

别忘了打电话

chart.data("kendoChart").refresh();
于 2013-10-08T15:04:41.987 回答
0

如果您使用的是数据源,则可以将此代码放入 requestEnd 函数中,因此不需要刷新图表:

$("#chart").kendoChart({
    dataSource: {
        transport: {
            read: {
                url: url,
                dataType: "json",
                type: 'POST'
            }
        },
        // This is to set a step that looks appropriate for the size of the graph
        requestEnd: function(e){
            var max = 1;

            // Iterate over your own data as you need, here my data returns "Category" and "Count" in each row.
            e.response.forEach(function(row){
                if(row.Count > max)
                    max = row.Count;
            });

            if(max <= 10)
                $("#chart").data('kendoChart').options.valueAxis.majorUnit = 2;
            else
                $("#chart").data('kendoChart').options.valueAxis.majorUnit = undefined;
        },
    },
于 2013-11-28T12:52:58.927 回答
0

你有一个例子可以展示吗?如果您只是隐藏价值轴线,它对您有帮助吗?

http://docs.kendoui.c​​om/api/dataviz/chart#configuration-categoryAxis.line.visible

chart.data('kendoChart').options.valueAxis.line.visible = false;
于 2013-07-01T14:24:48.187 回答