かなり複雑なタイプのデータを視覚化する必要があるプロジェクトに取り組んでいます (この古い質問を参照してください)。つまり、JSON、CSV、またはその他の任意のフラット形式にエクスポートできる大量のデータがありますが、可能であれば XML は避けたいと思います (基になるデータの詳細な説明については、上記のリンクされた質問を参照してください)。
私は D3 を使用してビジュアライゼーションの作業を開始しました。私が書いたレイアウトは、Javascript で配列としてハードコーディングした非常に単純なデータでテストすると、これまでのところ問題なく動作しているようです。D3 でのデータ バインディングについて私が読んだチュートリアルは、JSON を使用するものもあれば、TXT/CSV 形式を使用するものもあれば、ハードコードされた配列/行列を使用するものもあるという意味で、少し混乱しています。
JSONの場合、ナレーターがJSONファイルをWebサーバーでホストし、ローカルファイルの読み取りではなくHTTPリクエストを使用して取得することを強くアドバイスするチュートリアルを見ました. これは、クロス ドメイン リクエストの制限によるものであることがわかりました。何らかの方法で回避する必要があると思います。この時点で、次のように進める方法がわかりません。
D3 を利用した視覚化は、私が作成した分析ツールの結果として作成される一連の HTML レポートに表示されます。分析はユーザーのコンピューターで行われ、HTML レポートもクライアント側でローカルに作成されます。
対象となるユーザーは、間違いなく技術に精通していないため、ローカルホストを介して JSON またはその他のタイプまたはリソースを提供できるように、コンピューターで Web サーバーを実行するように指示することはできません。
記録のために、python SimpleHTTPServer モジュールを実行して試してみましたが、すべて正常に動作します。次に、生成された HTML レポートのデータをハードコーディングしてから、D3 を使用するスクリプトから JSON オブジェクトを呼び出してみました。
//d3.json("mydata.json", function(json){
d3.json(myjson, function(json){
nodeData = json.elements;
....
}
その場合、D3.jsがURLを期待している間にJSONオブジェクトを送信することになるため、失敗します。
この問題を回避/解決するにはどうすればよいですか?