我想使用拉取JSON的API製作條形圖,但不知道如何去引用數據。如何引用API並將其用作D3中的數據
數據的第一個點是應該是類別的名稱,第二個點是該條用來確定其高度的實際數據值。例如:
拉爾夫·92 吉姆·34 米歇爾55
var Champs;
function callback(response) {
Champs = response;
console.log(Champs);
}
var url =
"https://ddragon.leagueoflegends.com/cdn/4.7.16/data/en_US/champion.json";
d3.json(url, function(data) {
callback(data);
Object.keys(Champs.data).forEach(function(key, index) {
var champsObj = key;
var champName = Champs.data[champsObj].name;
var champHP = Champs.data[champsObj].stats.hp;
})
var scale = d3.scaleLinear()
.domain([0, d3.max(data.data, function(d){ return d.data.stats.hp})])
.range([0, 500]);
var canvas = d3.select('body').append('svg')
.attr('width', 500)
.attr('height', 500)
canvas.selectAll('rect')
.data(data.data)
.enter()
.append('rect')
.attr('width', function(d){return scale(d.data.stats.hp)})
.attr('height', 6)
.attr('y', function(d, i){return i*7})
.attr('fill', 'blue')
});
我通過文件,以及你的答案一個d3wiki搜查,發現從類似的問題有點幫助在這裏,但我m仍然很努力如何引用json中的數據
唉非常感謝你!如果我可能會問如何使用.id值在每個欄旁邊添加標籤? – Hawke
@Hawke就像上面那樣,'canvas.selectAll('text')。data(Object.values(data.data))。enter()。append('text')。text(function(d){return d .ID})' – arlendp