Flot图表堆叠曲线

时间:2014-05-26 20:16:01

标签: jquery flot bezier stacked-area-chart

有没有人使用带有曲线插件的堆叠式flot图表?它们似乎不兼容,因为曲线插件添加了额外的数据系列,它增加了总的堆栈值,基本上复制了每个系列,创建了条纹外观并使Y轴的比例加倍。有没有人有解决方案或解决方法?

这是一个jsfiddle。顶部的示例显示没有曲线的堆栈。底部的示例显示了问题。

<div class="demo-container">
    <div id="placeholder" style="height: 200px; width: 400px;" class="demo-placeholder"></div>
    <div id="placeholder2" style="height: 200px; width: 400px;" class="demo-placeholder"></div>
</div>

$(function() {

    var d1 = [];
    for (var i = 0; i <= 10; i += 1) {
        d1.push([i, parseInt(Math.random() * 30)]);}

    var d2 = [];
    for (var i = 0; i <= 10; i += 1) {
        d2.push([i, parseInt(Math.random() * 30)]);}

    var d3 = [];
    for (var i = 0; i <= 10; i += 1) {
        d3.push([i, parseInt(Math.random() * 30)]);}

    $.plot("#placeholder", [ d1, d2, d3 ], {
        series: { stack: true,
                 lines: {show: true, fill: true, }, }
    });

    $.plot("#placeholder2", [ d1, d2, d3 ], {
        series: { stack: true,
                 lines: {show: true, fill: true, }, 
                curvedLines: {  active: true, fit: true, apply: true },}
    });
});

2 个答案:

答案 0 :(得分:1)

您可以使用tickformatter选项以您喜欢的任何方式自定义y轴。 例如。如果值加倍,则可以输出y轴标签除以2。

$.plot("#placeholder2", [ d1, d2, d3 ], {
    series: { stack: true,
             lines: {show: true, fill: true, }, 
            curvedLines: {  active: true, fit: true, apply: true },},                
            yaxis:{
                tickFormatter: function(val, axis){
                    return (val/2).toFixed();
                }
            }
});

请参阅更新的fiddle

答案 1 :(得分:1)

curvedLines插件的作者解决了我看到的问题。如果您转到上面链接的原始jsfiddle,您将看到它现在正在按预期工作。 (GitHub上的curvedLines.js是jsfiddle中的外部引用,所以当它更新时,修复程序会自动集成在小提琴中。)

相关问题