当数据为零时,绘制饼图呈现图例但不是空图表

时间:2014-04-23 20:14:07

标签: javascript jquery json charts flot

我正在当前项目中做一些flot图表。当至少有一个具有正值的数据对象时,代码很有效,但是如果返回的数据是ZERO,我想至少显示一个空圆圈或某种消息。这是我试图制作图表的数据对象。图例显示很好,但没有图表(甚至是空图表)。

datacontent":[{"label":"Wired headset","data":0},{"label":"Bluetooth headset","data":0},{"label":"Car bluetooth","data":0},{"label":"None","data":0}]

我真的很想留下像"抱歉,没有可用的图表和#34;什么东西,同时仍然显示传说。这可能吗?

以下是目前显示内容的截图:

enter image description here

2 个答案:

答案 0 :(得分:4)

我添加了检查"没有数据"在绘图之后调用并直接向画布添加消息。通过这种方式,您可以保留图例,并可以添加进一步的自定义。

somePlot = $.plot($("#placeholder"), [{"label":"Wired headset","data":0},{"label":"Bluetooth headset","data":0},{"label":"Car bluetooth","data":0},{"label":"None","data":0}], {
    series: {
        pie: { 
            show: true
        }
    }
});

if (isNaN(somePlot.getData()[0].percent)){
    var canvas = somePlot.getCanvas();
    var ctx = canvas.getContext("2d");  //canvas context
    var x = canvas.width / 2;
    var y = canvas.height / 2;
    ctx.font = '30pt Calibri';
    ctx.textAlign = 'center';
    ctx.fillText('No Data!', x, y);
}

制作(小提琴here):

enter image description here

答案 1 :(得分:0)

当您发现自己没有数据时,为什么不创建一个值为1且标签与您的消息匹配的虚拟系列?