7

生成されたcsvファイルがあり、それらをd3にロードしてグラフ化しようとしています。列名はデータに基づいているため、基本的に事前に知ることはできません。テストでは、列の名前を知っていれば、このデータをロードしてグラフ化することができます...しかし、私のユースケースではそうではありません。

これをd3でどのように処理できますか? オンラインまたはドキュメントで、これを支援/参照するものを見つけることができないようです。d3.csv からコンソール data[0] にログを記録すると、2 つの列があり、それらの値が読み取られていることがわかりますが、データの列 1 または 2 を任意に参照する方法がわかりません。事前に列の名前。それが理にかなっていれば、タイムスタンプが列1にあり、データが列2にあることを知っているので、一般的にそれを避けたいと思います。

編集、私の答えは d3.entries を使用して不明な列の名前を学習し、そのインデックスを持つすべてのオブジェクトに引き続きアクセスします。

d3.csv("export.csv", function(error, data) {
    var mappedArray = d3.entries(data[0]);
    var valueKey = mappedArray[1].key;
    data.forEach(function(d) {
        ...
        d.value = d[valueKey];
    }
}
4

4 に答える 4

3

このd3.entries()関数を使用して、連想配列を、キーと値のペアごとにkeyとキーを持つ連想配列を含む別の配列に変換できます。value

于 2013-02-27T20:34:47.410 に答える
1

次のようなD3 v3values()メソッドを使用してキー (列名) を取得できます。

const [dataValues] = d3.values(data)
const keys = Object.keys(dataValues)
console.log(keys);
于 2016-07-29T20:45:38.273 に答える
-1

以下のように d3.entries() を使用しました。

for(i=0;i<data.length;i++)
{
    var temp = d3.entries(data[i]);
    for(j=0;j<temp.length;j++)
    if(temp[j].key == selectedx)
    myarray.push(temp[j].value);
}

お役に立てれば :)

于 2015-11-05T23:58:18.617 に答える