プロが教える店舗&オフィスのセキュリティ対策術

CSVファイルに
data
apple
orange
tomato

とデータが入っています。それをD3.jsで読み込みたいのですが
どうしてもうまくいきません。
d3.csv("data.csv", function(error, data){
var text = "";
for(var i=0; i<data.length; i++){
text += data[i].value+","
}
var englishArray = data;
});

データを読み出して、それをカンマでつないで、さらに、var englishArrayに入れたいのですが
うまくいきません。原因はわかりますでしょうか?

もともとは、
var englishArray = [ "apple", "orange", "tomato"]
とJSファイルの中で定義されているものを外部ファイル(CSV)から読み出したいです。

アドバイス頂けないでしょうか。

A 回答 (2件)

ANo1です。



読込処理はできているとのことですから、d3のパース結果はANo1に示したような配列になっているはずです。
それなので、そのまま配列として使用できるはずと思います。(そうでなければ、パースする意味がない)

>”  ”の連想配列の値だけを取り出す必要があるのですね
わざわざ配列を作り直すのであるなら、パースしてから変換するといった二度手間をかけなくとも、前回のご質問のようにテキストで読み込んで、改行(あるいはカンマ)でsplitすることで簡単に配列化にすることが可能です。
ただし、データが複雑で単純なsplitではすまないという場合はまた別ですが、サンプルでご提示のデータはごく単純なものなので、問題なく可能ではないかと想像します。
 https://developer.mozilla.org/ja/docs/Web/JavaSc …
    • good
    • 0
この回答へのお礼

分かりやすいサイトのご紹介ありがとうございます。
その後、試行錯誤で、ようやくできました!!
d3.csv("data.csv", function(data) {
englishArray = data.map(function(d) { return d[カラム名]; });
console.log(dataset)
});
D3.jsを使うやり方ですが、最終的に、このやり方でできました。CSVファイルのカラム名の列にある行のデータを取り出すことが出来ました。
同じようなことに挑戦されている方がいらっしゃいましたら是非上のやり方を試してみてください。
いろいろとアドバイスありがとうございました。Firefoxは問題なくローカルに置いたCSVにファイルを読んでくれます。
クローンは、起動オプションを付ければできますが、index.htmlファイルを直接開くと参照してくれません。IEは、だめでした。ブラウザのセキュリティ関係でしょうか。

お礼日時:2015/08/24 10:43

回答がないようなので・・・




例示のcsvデータがcsvっぽくないですが(笑)、d3のcsvメソッドで読み込むと、csvとしてパースしてくれるので、ご提示のデータの場合
 [
  { data: "apple" },
  { data: "orange" },
  { data: "tomato" }
 ]
という内容のものが返されるはずです。
(前回も提示しましたが念のため)
 https://github.com/mbostock/d3/wiki/CSV


それよりも、前回のご質問ではweb環境ではないようなお話でしたが、環境を変えてデータの読込み処理そのものはできるようになったのでしょうか?
 https://oshiete.goo.ne.jp/qa/9034778.html
    • good
    • 0
この回答へのお礼

ありがとうございます。データ読み込みはcromeは起動オプションをつけてjD3.jsがローカルで動きました!FirefoxはそのままOKでした。IEでは今だに動きません。そしてコードですが、”  ”の連想配列の値だけを取り出す必要があるのですね。もう少し勉強してみたいと思います。
data.forEach(function(d){
values.push(d3.values(d));
})

お礼日時:2015/08/21 10:19

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