JQuery Flot 饼图(字符串到数据)

发布于 2024-11-30 10:03:05 字数 179 浏览 1 评论 0原文

我正在尝试使用一些数据构建饼图,我将服务器端构建为字符串:

"[{ Label: "text", Data: number },{ Label: "text", Data: number }]"

有点像那样,但想知道是否有任何方法可以将此字符串解析为浮点饼图可以使用它的数据。

I am trying to build a pie chart with some data I get serverside build into a string:

"[{ Label: "text", Data: number },{ Label: "text", Data: number }]"

a little like that, but was wondering if there is any way I can parse this string to data that the flot pie chart can use it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神爱温柔 2024-12-07 10:03:05

如果数据已经在 J​​SON 数组中,并且使用 LabelData 正确格式化,您应该能够将 JSON 数组传递给 flot。

您的代码可能类似于:

$.plot($("#default"), data,
{
    series: {
        pie: { 
            show: true
        }
    }
});

其中数据变量是 JSON 数组。

If the data is already in a JSON array and formatted correctly using Label and Data, you should be able to just pass the JSON array to flot.

Your code may look something like:

$.plot($("#default"), data,
{
    series: {
        pie: { 
            show: true
        }
    }
});

Where the data variable is the JSON array.

梦回梦里 2024-12-07 10:03:05

Flot 饼图仅接受数组作为默认输入。 JSON是字符串格式输入,所以它不起作用。要解决这个问题,您必须构建一个包含“标签”和“数据”列的数组,或者拆分 JSON 并从中形成一个数组。

请检查下面的虚拟示例:

function dataFormatter() {

    var data = [], size = 3, dataInput = 10;

        for ( var i = 0; i < size; i++) {
            data[i] = {
                        label : "Series" + (i+1),
                        data : parseInt(dataInput)
                    }
            dataInput = parseInt(dataInput) * 10;
        }   
    return data;
};

希望它能解决您的问题。

Flot pie charts only accepts array as a default input. JSON is a string format input so it won't work. To solve this you have to either built an array with "label" and "data" columns or split your JSON and form an array from it.

Please check below a dummy example for this:

function dataFormatter() {

    var data = [], size = 3, dataInput = 10;

        for ( var i = 0; i < size; i++) {
            data[i] = {
                        label : "Series" + (i+1),
                        data : parseInt(dataInput)
                    }
            dataInput = parseInt(dataInput) * 10;
        }   
    return data;
};

Hope it will solve your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文