0

この例に従って、D3 コロプレスを作成しようとしています。unemployment.tsv次のようなを作成する方法を除いて、すべてを理解しました。

id      rate
1001    .097
1003    .091
1005    .134
1007    .121
...     ...

さらに掘り下げた後、ID が特定の d3 グラフ オブジェクトへの参照であることがわかりました。私の質問は、これらの ID の ID 値を設定する簡単な方法があるかどうか、または手動で行う必要があるかどうかです。

可能であれば、Google Chartsのような簡単な方法を探しています。

4

1 に答える 1

4

マップの描画に使用されるファイルには、各郡の概要とFIPS コードus.jsonに関する情報が含まれています。

{"type":"Polygon","arcs":[[250,-204,-17]],"id":30047}

の各行はunemployment.tsv、FIPS コードと失業率を含む 1 つの郡を表します。ファイルがロードされると、オブジェクトの配列から変換されます。

> unemployment
[{id: '1001', rate: '.097'},
 {id: '1004', rate: '.091'},
 {id: '1005', rate: '.134'},
 ... ]

郡IDとしてのキーと値としての率を持つオブジェクトに:

var rateById = {};
unemployment.forEach(function(d) { rateById[d.id] = +d.rate; });

> rateById
{1001: .097,
 1004: .091,
 1005: .134}

( +d.rateas は、失業率の文字列を数値としてキャストします。)

それが完了したら、各郡の色付けは簡単です。対応する失業率を見つけ、その数値をスケールrateByIdで色に変換するための図形の ID だけです。color

.style("fill", function(d) { return color(rateById[d.id]); });

質問にもっと直接的に答えるには、郡レベル*のデータを国の FIPS コードでコーディングし、それを使用してマップに色を付けたいと思うでしょう。郡データで作業していない場合は、変換 (緯度/経度または都市/州を郡にマッピング) を試すか、別の種類の地図を完全に使用することができます (世界地図については、この例と以下のコメントを参照してください)。

*私には GIS のバックグラウンドがまったくありません。これを実行しようとするたびに、古い FIPS コードを使用することになります -> 郡名ルックアップ テーブルを使用し、手動でいくつか修正する必要があります。NIST の Web サイトには、私が見つけられなかったより良いソース ファイルがおそらくあります。

于 2013-07-14T15:19:52.080 に答える