剑道图表y轴标签问题

时间:2016-07-29 08:45:07

标签: asp.net-mvc charts kendo-ui kendo-chart

我遇到了剑道图表的y轴标签问题。

如果我有大值,它显示正常,它适应并显示相应步进的标签:说值从0到100,标签自动步骤为0,20,40,60,80,100。所有好的

但是对于较低的值,它们会重复出现,如下所示:

Repeated

经过一些研究,我试图将MajorUnit属性设置为1,例如,它将其固定为较低的值:

        .ValueAxis(axis => axis.Numeric()
            .Labels(l => l.Format("N0"))
            .MajorGridLines(lines => lines.Visible(true))
            .MajorTicks(lines => lines.Visible(true))
            .MajorUnit(1) // <----------- this one

low values fixed

但是,对于较高的值,它会为每一个标签生成一个标签,导致一些重叠:

high values screwed up

我无法在dataBound上设置MajorUnit,因为我在图表中有多个系列,有些从0到2,其他从0到200。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

你必须调整&#39; categoryAxis.labels.step&#39;动态地在Chart&#39; dataBound&#39;事件

function dataBound(e) {
var chart = $("#chart").data("kendoChart");
if ([*MajorUnitData*].length > 4) {
    chart.options.categoryAxis.labels.step = 10;
}
else {
    chart.options.categoryAxis.labels.step = 1;
}    

}

请参阅此链接:http://mikaelkoskinen.net/post/kendoui-dataviz-tips-and-tricks

答案 1 :(得分:0)

我会将图表高度设置为与类别轴计数

成比例
dataBound: function (e) {
                var axis = e.sender.options.categoryAxis;
                $(e.sender.element).css("height", axis.categories.length * 45);
                $(e.sender.element).data("kendoChart").redraw();
              }