将输入数据axisx和axisy更改为axisx或arrayy数组的数组,用于Stacked Bar flot chart

时间:2012-10-08 09:52:28

标签: javascript charts smarty flot

如何将输入数据axisx和axisy更改为axisx数组或axisy数组,从输入数据[x1,x1],[x2,y2],[x3,y3]到[x1,x2,x3]和[ Y1,Y2,Y3]。它与axisy或axisx上的技巧无关。

请查看折线图的输入数据。它的轴数是u = [100,35,35,30,105,40,35,30,40,20,15]。

   function d(k) {
    var n = [];
    for(var e = 0; e <= 10; e += 1) {
        n.push([e, parseInt(Math.random() * 30)])
    }
    var m = [];
    for(var e = 0; e <= 10; e += 1) {
        m.push([e, parseInt(Math.random() * 30)])
    }
    var j = [];
    for(var e = 0; e <= 10; e += 1) {
        j.push([e, parseInt(Math.random() * 30)])
    }
    var l = {
        series: {
            stack: true,
            bars: {
                show: true,
                barWidth: 0.4
            }
        },
        grid: {
            borderWidth: 0
        }
    };
    a.plot(k, [{
        data: n,
        color: "#E15656"
    }, {
        data: m,
        color: "#A6D037"
    }, {
        data: j,
        color: "#61A5E4"
    }], l)
}

jsfiddle

1 个答案:

答案 0 :(得分:1)

您只需要为ticks对象(yaxis)中的options指定详细信息(具体而言,l):

    var l = {
            series: {
                stack: true,
                bars: {
                    show: true,
                    barWidth: 0.4
                }
            },
            grid: {
                borderWidth: 0
            },
            yaxis:{ 
                ticks: [1,3,17,23,35,43] //replace with the array of your dreams
            }
        };

更新了fiddle

编辑(我刚接听/评论,不知道评论编辑有时间限制):

好的,事实证明这个问题与我最初的解释有很大的不同。我的新解释是Alouty想要为一组数据使用一对数组:一个包含x值的数组([x1,x2,x3,...]),另一个包含y值({{1 }})。

在对[y1,y2,y3,...]的最终通话中,每个系列的数据对象必须采用.plot()形式。

虽然未以此形式创建数组[[x1,y1],[x2,y2],...](见下文),但在用作数据之前,它将被转换为坐标对数组(时间序列值为每对中的x值):

u

您将无法直接使用var u = [100, 35, 35, 30, 105, 40, 35, 30, 40, 20, 15]; var j = []; for (var o = 0; o < u.length; o++) { j.push([new Date(2012, 5, o + 1), u[o]]); } var n = [{ data: j, label: "Sales", color: "#E15656"},... 作为数据。您需要将x和y数组混合到一个坐标对数组中,就像在现有代码中一样。