Telerik Kendo StockChart 列类型不显示 0 值的任何内容

Telerik Kendo StockChart column type doesn't display anything for 0 value

我有一张图表,你可以看到它on this link带有标记

但是当系列类型是列而不是行时,就像我的 link 一样,标记不会显示。即:

$("#chart").kendoChart({
                dataSource: foreCast,
                seriesDefaults: {
                    type: "column",
                    style: "smooth"
                },
                series: [{
                    field: "temperature",
                    categoryField: "day",
                    markers: {
                        size: 12,
                        visible: true
                    }
                }],
                valueAxis: {
                    labels: {
                        template: "#:value#℃"
                    }
                },
            });

在 telerik 的文档中,似乎没问题:

series.markers Object Marker options. ** Applicable for area and line series. **

但问题是,当我的值等于零时,用户无法判断是否存在值,这对他们来说是个问题。

当值为 0 时是否存在绘制某些东西(如标记)的解决方法?

@David Shorthouse 在 answer/comment 上的扩展

你可以按照他的建议使用系列的visual property。在该函数中,您可以测试值为 0,然后绘制一个标记(在我的示例中为小半圆);对于非零值,根据传入的颜色和尺寸绘制一个规则条。

已更新JSBIN

visual: function (e) {   
    //get chart calculated coordinates of the bar and color                                         
    var xLeft = e.rect.topLeft().x;
    var xRight = e.rect.topRight().x
    var yTop = e.rect.origin.y;
    var yBottom = e.rect.bottomRight().y;
    var c = e.options.color;

    if (e.value == 0){
      //draw small (semi-)circle for zero values
      var center = e.rect.center();  
      var circleGeometry = new kendo.geometry.Circle([center.x, center.y], 5);
      var circle = new kendo.drawing.Circle(circleGeometry).stroke(c,2);
      return circle;
    } else {
      //Draw a regular bar
      var path = new kendo.drawing.Path({
          fill: {color:  c},
          stroke: {color: c,opacity: 0.7,width: 2,}
      })
      .moveTo(xLeft,  yBottom)
      .lineTo(xRight, yBottom)
      .lineTo(xRight, yTop)
      .lineTo(xLeft,  yTop)
      .close();

      return path; 
  }                          
}