2016-03-10 20 views
6

Vì tôi không quen thuộc với thư viện C3.js, tôi hơi bối rối khi tôi cố gắng chia dữ liệu mảng.Giới thiệu về dữ liệu biểu đồ C3.js tách

Tức thì tôi có một số giá trị mảng từ một json.

var jsondata=[[123],[45],[56],[22]]; 

    var jsondataName=[["apple"],["orange"],["banana"],["pear"]]; 

tôi đã cố gắng để vượt qua đầu tiên mảng jsondata vào bảng xếp hạng nhưng những giá trị đi vào cùng một cột mà không phải là một cái gì đó tôi muốn nhìn thấy.

Tôi muốn những giá trị mảng trở thành dữ liệu độc lập và đẩy tên vào nó

Xin xem demo i thực hiện: http://jsfiddle.net/q8h39/92/

Và kết quả tôi muốn nên trông giống như enter image description here

Cập nhật định dạng dữ liệu json:

"Name": apple, 
    "data": { 
     "value": 1434, 
     } 
    "Name": banana, 
    "data": { 
     "value": 342, 
     } 

    } 
} 
+0

Check-out fiddle này tôi đã thực hiện cho bạn, nên giúp đỡ với một số câu hỏi sau: http: // jsfiddle.net/4yqwtuwq/ – luke

+0

tôi biết bạn có thể làm điều này khi bạn xác định dữ liệu như thế này, nhưng tôi phải gọi dữ liệu theo JSON ở đó tôi phải vượt qua giá trị bằng cách sử dụng mảng – anson920520

+0

OK. Có thể bạn sẽ phải lặp lại dữ liệu và sau đó kết hợp nó thành một mảng mà bạn tạo, sau đó sử dụng mảng đó cho dữ liệu biểu đồ. Điều đó có ý nghĩa? – luke

Trả lời

1

Bạn có thể se t đối tượng JSON để data.json và sau đó thiết lập data.keys.value để một mảng các giá trị trong JSON:

var jsondata = [{ 
    "Name": "apple", 
    "data": { 
    "value": 1434, 
    }, 
}, { 
    "Name": "banana", 
    "data": { 
    "value": 342, 
    } 
}]; 

var chart = c3.generate({ 
    data: { 
    json: jsondata, 
    keys: { 
     value: [ 
     "name", "data.value" 
     ] 
    }, 
    type: "scatter" 
     //hide: true 
    } 
}); 

http://jsfiddle.net/aendrew/mz9ccbrc/

nb, Bạn cần C3 v0.4.11 cho điều này (dấu chấm cú pháp cho keys.value chỉ thêm) và đối tượng JSON của bạn cần phải là một mảng (hiện tại nó không hợp lệ).

Nếu bạn muốn chuyển đổi hai mảng từ câu hỏi ban đầu của bạn cho định dạng của JSON, hãy thử này:

d3.zip(jsondataName, jsondata) 
.map((d) => Object({name: d[0][0], data: { value: d[1][0] } })); 
Các vấn đề liên quan