1

我有一个 Kendo UI 图表,我在 3 个不同的值轴上显示 3 个系列的数据。

“广告位置”值轴是倒置的,1 是可能的最高值(根据图像)。带有倒 Y 轴的图表

如您所见,这导致“广告排名”系列呈现“自上而下”。

有谁知道强制这个系列渲染“自下而上”的方法,例如让条形图从最低值(4.5)开始渲染。

Javascript:

var categories = Array();
var series1 = Array();
var series2 = Array();
var series3 = Array();

// data is populated by parsing a html table
// $chart is passed in as a variable
$chart.kendoChart({                
    theme: "bootstrap",                
    title: {
        text: "Hour of Day Avg. Position"
    },
    legend: {
        position: "bottom"
    },
    seriesDefaults: {
        type: "line",                    
    },
    series: [{
        data: series1,
        name: "Avg. Ctr",
        tooltip: {
            visible: true,
            template: "#= category #: #= value #%"                        
        },
        axis: "ctr"
    },
    {
        type: "bar",
        data: series2,
        name: "Avg. Position",
        tooltip: {
            visible: true,
            template: "#= category #: #= value # Avg. Pos."
        },
        axis: "adPos"
    },
    {
        data: series3,
        name: "Clicks",
        tooltip:
        {
            visible: true,
            template: "#= category #: #= value # Clicks"
        },
        axis: "clicks"
    }],
    valueAxes: [
    {
        title: { text: "Click Through Rate" },
        name: "ctr",
        labels: {
            visible: true,
            format: "{0}%"
        }
    },
    {
        title: {text: "Clicks per Hour"},
        name: "clicks",
        labels: {
            visible: true,
            format: "{0}"
        }
    },
    {
        title: { text: "Ad Position" },
        name: "adPos",                    
        labels: {
            visible: true,
            format: "{0}"
        },
        min: 1,
        reverse: true
    }],
    categoryAxis: {
        categories: categories,
        labels: {
            rotation: 45
        },
        title: {
            text: "Hour of Day (24Hr)"
        },
        reverse: false,
        axisCrossingValues: [0,30]
    }
    });
4

2 回答 2

2

这不受支持,但我可以使用隐藏轴实现类似的效果。它应该具有相同的范围,但在法线方向:

series: [{
   axis: "hidden"
   // ...
}],
valueAxes: [{
  reverse: true,
  min: 1,
  max: 4.5
}, {
  visible: false,
  name: "hidden",
  min: 1,
  max: 4.5
}]

请参阅此 jsBin以获取工作演示。

另一种方法是使用烛台系列来模拟范围条。这个想法是只使用一对开/低和高/收盘值。在此处查看演示。

不过,专用范围条形图将是最佳解决方案。随意对UserVoice投票。

于 2012-12-13T12:17:33.700 回答
1

Telerik 的直接回答:

一般来说,reverse: true轴的属性只会反转轴的方向,不会改变两个轴和类别轴的交点。因此,为了获得所需的结果,您应该指定值轴axisCrossingValue的。"adPos"例如:

$("#chart").kendoChart({
    //....
    valueAxes: [
        //....
    },
    {
        title: { text: "Ad Position" },
        name: "adPos",                   
        //....
        reverse: true,
        axisCrossingValues: 50
    }]
}); 
于 2012-12-14T01:14:55.377 回答