【问题标题】:Create a json object for c3js using javascript使用 javascript 为 c3js 创建一个 json 对象
【发布时间】:2016-03-22 06:22:51
【问题描述】:

我在创建 JSON 对象以使用 C3JS 绘制图表时遇到问题。我可以使用静态 JSON 绘制图表,但我的数据是动态的,我的图表必须保持通用,因此我无法传递静态 JSON。 JSON 的 Key 值是通用的,只需更改值。

我的 JSON 当前 JSON 格式如下所示。

[
    {
        "Key": "data1",
        "Metric": "field1",
        "Total": 1
    },
    {
        "Key": "data1",
        "Metric": "field2",
        "Total": 1
    },
    {
        "Key": "data2",
        "Metric": "field1",
        "Total": 1
    },
    {
        "Key": "data2",
        "Metric": "field2",
        "Total": 4
    },
    {
        "Key": "data2",
        "Metric": "field3",
        "Total": 4
    },
    {
        "Key": "data3",
        "Metric": "field1",
        "Total": 1
    },
    {
        "Key": "data3",
        "Metric": "field2",
        "Total": 4
    },
    {
        "Key": "data3",
        "Metric": "field3",
        "Total": 4
    }
]

这是图表代码。

var xAxis = ['x','data1','data2','data3'];
var data1 = ['field1', 6, 13, 4];
var data2 = ['field2', 3, 3, 5];
var data3 = ['field3, 21, 22, 4];

var data = [""]




var full = [
    /*['x','data1','data2','data3'],
    ['field1', 6, 13, 4],
    ['field2', 3, 3, 5],
    ['field3, 21, 22, 4]*/
];

full.push(xAxis);
full.push(data1);
full.push(data2);
full.push(data3);

var chart = c3.generate({
    data: {
        x: 'x',
        columns: full,
        type: 'bar',
    },
    bar: {
        width: {
            ratio: 0.7 // this makes bar width 50% of length between ticks
        }
    },
    axis: {
        x: {
            type: 'category' // this is needed to load string x value
        }
    },
    bindto: '#chart'
});

我需要帮助创建一个对象,以便我可以向 C3JS 提供数据以绘制我的堆叠条形图。我必须从我的 json 响应中读取数据并将其推送到一个看起来像这样的数组中。

var xAxis = ['x','Agency','Direct','Employee Reference']; var data1 = ['Permanent', 6, 13, 4]; var data2 = ['Contract', 3, 3, 5]; var data3
= ['Conract on Hire', 21, 22, 4];

任何改变我喂养方式的建议也会有很大帮助。 这是我的第一篇 StackOver 帖子,对于歧义感到抱歉。 提前谢谢你。

【问题讨论】:

    标签: javascript json for-loop d3.js c3.js


    【解决方案1】:

    示例

    var data = [
    { 'date': '2015-01-01', 'Dept': null, 'SMV': 3},
    { 'date': '2015-01-02', 'Dept': 1, 'SMV': 4}
    ];
    

    示例数据集如下所示

    var data = [
    ['date', '2015-01-01', 2015-01-02'],
    ['Dept', null, 1],
    ['SMV', 3, 4]
    ];
    

    【讨论】:

    • 嗨 Muhammad Mohsin Muneer,我正在研究如何在 javascript 中创建数据集。
    • 完整代码可在jsbin.com/cerilugevo/edit?html,js,console获得,希望对您有所帮助!
    • jsbin 中的代码引用只是从对象中提取数据并将其推送到单个数组中,但我坚持的是不同的东西。 i) 关键元素保留在第一个数组中。 [data1,data2,data3] II) 现在挑战开始了,它是一个组合数组,看起来像 [field1 , 1,3,1] , [field2 , 2,1,3], [field3 , 3,1,2]
    猜你喜欢
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2016-10-01
    • 2016-09-05
    • 1970-01-01
    • 2019-06-18
    • 2021-12-18
    相关资源
    最近更新 更多