0

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

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

        )

当图表中存在超过 1 个数据点时,类别轴会正确呈现,但是当我只有一个数据点时,类别轴会变得一团糟(所有标签都会堆叠和重复)。我想知道是否有一种方法可以指定轴的强制刻度数,以便每个月始终只有 12 个刻度。谢谢路易斯。

4

1 回答 1

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。这样,当您从控制器获取 JSON 数据时,您可以在控制器端更新 JSON 数据并使用 null 值附加缺失的数据点,或者您也可以在视图中获取数据并在绑定之前在 javascript 中执行此操作它与图表。

于 2014-08-19T14:51:17.967 回答