性格いい人が優勝

下記のサンプルコードで、
var dataset = [100, 150, 200, 250, 300];
の生データの部分を、外部ファイル(例えば、data.txt)に入れて、
そこからデータを読み出したいのですが、
いろいろ調べると、D3.jsというものが、使えそうだということがわかったのですが、
イマイチやり方がわかりません。

textファイルに100, 150, 200, 250, 300と入れて
それをscriptで参照するには、具体的にはどうしたらいいのでしょうか?
是非教えてください。



<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>D3.jsのひな形</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
<script>
var dataset = [100, 150, 200, 250, 300];
var svg = d3.select("body").append("svg").attr({
width: 500,
height: 300
});

svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr({
x: 0,
y: function(d, i){ return i * 30; },
width: function(d, i){ return d; },
height: 20,
fill: "green"
})

</script>
</body>
</html>

A 回答 (3件)

ANo1、2です。



HTML5でFile APIが実装されているようです。
使ったことがないので、知りませんでした。
 http://www.html5rocks.com/ja/tutorials/file/dndf …

実際の実装状況はわかりませんが、javascriptだけでも対応可能かと…
    • good
    • 0
この回答へのお礼

ありがとうございます。具体的にコードをどうするのか?不明ですが
教えて頂いたページを熟読してみます。
ありがとうございました。

お礼日時:2015/08/05 23:15

ANo1です。



>全部ローカルに置いてやりたいのですが、prototypeやjQueryは
>ローカルファイルでもブラウザで動作するのでしょうか?
ライブラリによって、見かけの使い方やメソッドは違いますが、根本で利用している仕組みは同じなので、「〇〇なら動作する」といったことはないでしょう。
基本的にはWEB上での仕組みなので、WEBサーバへのhttpアクセスで動作するようになっています。
とはいうものの、ブラウザの種類やOSの環境などによっては、ローカルで動作する場合もあるようです。

ちなみに、ANo1の回答を書く際に、「ダメかな」と思いながらローカルで試してみましたが、私の環境では動きました。
. Win7(Enterprise)、Fx37 のローカル環境です。

ローカル限定でよいのなら、javascriptでなくともJScriptやVBなどを利用することで、他の方法でファイル操作することが可能だと思いますので、ファイルの読込なら、そのような方法で実現する方法もあるかと思います。
セキュリティの警告がでるとか、いろいろあるかもしれませんが・・・
    • good
    • 0
この回答へのお礼

fujillin様
HTML5でFile APIが実装されているとのことで、
いろいろ試してみました。なんとか、サーバーにファイルを置くと
成功するのですが、ローカルだと、だめでした。
ブラウザ起因なのか? 設定でなんとかいけるのか?
むずかしいですね。

お礼日時:2015/08/07 14:18

こんにちは。

 回答がないみたいなので・・・

D3は知らないので「詳しい人」ではありませんが、興味があったのでごく簡単に調べてみました。


>いろいろ調べると、D3.jsというものが、使えそうだということが
>わかったのですが
D3はサンプルでご提示のコードのように、svgを利用してデータをビジュアル化するのに便利なライブラリで、もしも外部ファイルの読み込みだけが目的であるならば、D3以外にも数多くのライブラリが存在します。
それなので、必ずしもD3にこだわる必要はないと思います。(有名なのはprototypeとかjQueryとか・・)
◇D3の概要
 http://ja.d3js.node.ws/

データを扱う関係から、外部データの読み込み機能も備えていますが、例えばテキストファイルであるなら、
d3.text("data.txt", function(error, txt){
 //txtにファイルの内容がセットされるので、読込み後の処理を
 //コールバックで記述する
 //dataset = txt.split(",").map(function(n){ return parseInt(n);}); とか
 //
}
})
のような方法で、一応、読み込めるはずです。
 https://github.com/mbostock/d3/wiki/Requests#d3_ …

ライブラリの性格上、扱うデータがcsvやtsvであることが多いので、そのような場合の機能は豊富に備えているようです。
 https://github.com/mbostock/d3/wiki/CSV


D3のAPIリファレンスが以下にありますので、ご参考になるかと思います。
 https://github.com/mbostock/d3/wiki/API-Reference
    • good
    • 0
この回答へのお礼

ありがとうございます!!いろいろ試しているのですが、D3は、サーバーにファイルを置かないとだめみたいですね。htmlとjsと、csvファイルは、全部ローカルに置いてやりたいのですが、prototypeやjQueryはローカルファイルでもブラウザで動作するのでしょうか?

お礼日時:2015/08/03 18:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!