問題タブ [cartogram]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
74 参照

javascript - D3 cartogram.js 連続するカートグラム値が反映されない

D3 用の cartogram.js を使用したこの例に基づいて、内向きの難民数の連続したカートグラムを作成しています。

難民番号だけ使うと地図が動かない。 ベース難民番号

しかし、オンラインで「r」に任意の数字を追加すると、機能します。また、任意の数値が高いほど、変化が劇的になります。 例 1 例 2

どうしてこれなの?一部の値が 0 になっているためですか、それとも分散が高すぎるためですか?

0 投票する
1 に答える
325 参照

r - R のカルトグラムが期待どおりに国を歪めない

cartogramRのパッケージを使用して、生きている言語の世界地図を作成しています。国の地図はNatural Earthから、言語数はEthnologueからのものです。

生きている言語のカートグラム

私が使用しているデータには、ロシアでは 111、中国では 299 の生きた言語があり、ほぼ 3 倍です。ただし、作成されたカートグラムでは、依然としてロシアが中国より大きく表示されています。

各国のデータは次のとおりです。

私は何を間違っていますか?

編集

FuzzyLeapfrog の回答に従って、南極大陸を削除し、地図をロビンソン図法に変換しました。

メルカトル図法、ロビンソン図法、変形後の 3 つのマップを次に示します。灰色のトーンは、生きている言語の数に比例します (暗いほど数が多くなります)。

メルカトル図法

ロビンソン図法

ロビンソン図法、変形

ロシアはまだ中国よりも大きいと思いませんか?

EDIT2

上記の Natural Earth マップは軽量のシェープファイルです (.shp は 182 kB しかありません)。より詳細なマップ (6.5 MB の .shp) を使用して、次のマップを取得しました (ロビンソン投影とロビンソン変形)。ロシアはまだ大きすぎる!国の原寸が最終的な形に影響するのかな(ないと思ってたけど、今思うと)。元のサイズが最終結果に影響しないようにするためのオプションがあるかもしれませんか?

詳細なロビンソン図法

詳細なロビンソン変形

EDIT3

Mollweide と Lambert Cylindrical の 2 つの正積図法を試しました。以下はランバートの結果で、現在赤で示されています。最初に投影されたマップ、次に投影された + 変形されたマップです。赤が多いほど、面積が大きくなります。しかし、そうではありません (パプア ニューギニアとオーストラリアを比較してみてください)。

ランベルト正積図法

ランバート正積図法 + カートグラム変形

cartogram_contパッケージの関数がcartogram本当にやるべきだと思っていることをしているのだろうかと思います。ヘルプ ページには、「ラバー シート歪みアルゴリズム (Dougenik et al. 1985)」に従っていると書かれています。