剑道图上的类别轴无法正确渲染

时间:2014-08-13 22:38:41

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

我有一个绑定到数据模型的剑道图表,该模型正在接收不同点的列表。类别轴是日期轴,其中最大值和最小值绑定到模型。类别轴的范围始终是一整年(12个月,不一定从1月开始)。 轴的代码如下:

.CategoryAxis(axis => axis
                    .Labels(labels => labels.Rotation(0).Format("MMM ‘yy"))
                    .Date().Min(Model.StartDate).Max(Model.EndDate).Justify(false)

        )

当我在图表中存在多个数据点时,类别轴正确呈现,但是当我只有一个数据点时,类别轴变得一团糟(所有标签都堆叠并重复)。 我想知道是否有办法为轴指定一个强制性的刻度数,因为每个月只有12个刻度。 谢谢 路易斯。

1 个答案:

答案 0 :(得分:0)

唯一拥有所有滴答声的是附加图表数据,其中包含缺失月份的空值。因此,当您有一个数据点时,您需要使用空值附加其他数据点,但保留其他月份。请参阅以下示例代码:

     <div id="kk"></div>
     <script>
     var _data=[{"weight":200,"createddate":"1/1/2014"},
                {"weight":200,"createddate":"2/1/2014"},
                {"weight":200,"createddate":"3/1/2014"},
                {"weight":149.91,"createddate":"4/1/2014"},
                {"weight":null,"createddate":"5/1/2014"},
                {"weight":null,"createddate":"6/1/2014"},
                {"weight":null,"createddate":"7/1/2014"},
                {"weight":null,"createddate":"8/1/2014"},
                {"weight":null,"createddate":"9/1/2014"},
                {"weight":null,"createddate":"10/1/2014"},
                {"weight":null,"createddate":"11/1/2014"},
                {"weight":null,"createddate":"12/1/2014"}]

        $("#kk").kendoChart({
            dataSource: {
                data:_data
            },
            seriesColors: ["Red"],                
            seriesDefaults: {
                type: "column",
            },
            series: [{
                name: "weight",
                field: "weight",
                categoryField: "createddate",
            }],
            categoryAxis: {
                type: "date",
                baseUnit: "months"
            }                        
        });
     </script>

请找一个JSFiddle。 这样,当您从Controller获取JSON数据时,您可以更新控制器端的JSON数据并使用空值附加缺失数据点,否则一旦在View中获取数据并且在绑定之前,您也可以在javascript中执行此操作它与图表。