1
svgキャンバスに線グラフを描画するコードがありますが、d3.scaleOrdinal関数で定義したように色を変更しようとしています。D3v4:scaleOrdinalで指定された色をインデックスに登録して選択する
私は12種類の色を定義していますが、結果はthisです。 誰でも助けてくれますか?ありがとう。
var color2 = d3.scaleOrdinal().range([
'#673ab7',
'#9c27b0',
'#e91e63',
'#f44336',
'#ff5722',
'#ff9800',
'#ffc107',
'#ffeb3b',
'#cddc39',
'#8bc34a',
'#4caf50',
'#009688'])
.domain(d3.range(1,13));
var line = d3.line()
.x(function(d) { return x(d.day); })
.y(function(d) { return y(d.temp); });
var lineChart = function(csvfile, i) {
d3.csv(csvfile, function(error, data){
data.forEach(function(d){
d.month = +d.month,
d.day= +d.day,
d.temp= +d.temp;
});
svg.append('path')
.data([data])
.attr('class','line')
.style('stroke', function(i){ return color2(i);})
.attr('d', line);
}); //end of read csv
}; //end of line chart
lineChart('/static/data/temp1.csv'1);
lineChart('/static/data/temp2.csv'2);
lineChart('/static/data/temp3.csv'3);
lineChart('/static/data/temp4.csv'4);
lineChart('/static/data/temp5.csv',5);
lineChart('/static/data/temp6.csv',5);
lineChart('/static/data/temp7.csv',6);
lineChart('/static/data/temp8.csv',7);
lineChart('/static/data/temp9.csv',8);
lineChart('/static/data/temp10.csv',80);
lineChart('/static/data/temp11.csv',90);
lineChart('/static/data/temp12.csv',100);
ありがとうございました!これで問題は解決しました。あなたが指数で意味するものが常に1になると尋ねることができますか?それは機能(d、私)の私を参照していますか?申し訳ありませんが、これらがばかげた質問であれば、私は完全にd3に新しいです。 – aii
@aii彼らは愚かではない。インデックスは、無名関数が呼び出された回数に依存するため、常に0(最初のカウント)です。私はスニペットを編集し、コンソールを確認しました。 –