由于值的范围较广,所以堆叠的条形图值不可见

时间:2019-04-17 14:24:55

标签: javascript jquery methods charts kendo-ui

我用Kendo UI构建了一个条形图,其中的条形值应该相互叠加。如果您查看图表here,似乎只显示一个值(百万)。蓝绿色条所代表的另一个值(1000s)在那里,但是because it's so much smaller它是不可见的,除非您隐藏第一个值。

我希望能够转换1000s值,以便它在与百万条值相同的视图中显示。我正在某些模板中使用kendo.toLocaleString(显示图表的模板),但似乎没有任何作用。

我希望在y轴(valueAxis)上缩短百万列,但是如果您查看1000年代的屏幕截图,数字将大大偏斜。

使用Kendo模板会使事情变得更加令人讨厌,因此,如果有更好的方法可以解决此问题,请告诉我。

JS代码段:

function createWOffChart(payload, stdYAxis) {
    let i = Math.abs(payload[0].woffamt.toFixed(2));
    let j = Math.abs(payload[0].wuwdamt.toFixed(2));
    let k = Number(i) + Number(j);
    let total = k.toLocaleString();

    $("div[report='woff']").kendoChart({
        dataSource: {
            data: payload
            // template: "#= kendo.toString(value/1000000) #"
        },
        legend: {
            visible: true
        },
        schema: {
            data: "value"
        },
        seriesDefaults: {
            type: "column",
            stack: true
        },
        chartArea: {
            width: 260,
            height: 350
        },
        series: [{
            name: "WOffAmt",
            field: "woffamt", // req
            color: "#4dc3a1",
            template: "#= Math.abs(value) #"
        }, {
            name: "WUWDAmt",
            field: "wuwdamt", // req
            color: "#5d5348",
            template: "#= Math.abs(value) #"
            // template: 
        }],
        valueAxis: {
            labels: {
                visible: true,
                template: "#= Math.abs(kendo.toString(value/1000000)) #"
            },
            reverse: true // orients chart right side up
        },
        tooltip: {
            visible: true,
            template: "#= series.name #: #= Math.abs(value).toFixed(2) #" // series.value doesn't work
        }
    });
    console.log(payload);
    console.log(kendo.toString(payload[0].wuwdamt));
}

0 个答案:

没有答案