LoginSignup
2
3

More than 5 years have passed since last update.

コピペで貼った数列を棒グラフ化する

Posted at

ソースと動作はこちらで確認できます。
http://bl.ocks.org/osoken/f8eb76f7d2dd810a847c

f8eb76f7d2dd810a847c.png

左上にあるテキストフィールドに数列を貼ると、すぐ下のグラフエリアにグラフが表示されます。
ちょっとデータを確認したいとき用。

基本的にはinputタグに下記のようなイベントを仕込んで、描画関数に投げるだけです。
例えば入力フィールドの文字列をスペースで値を区切って、それぞれ数値にキャストするのは次のようになります。

d3.select('input').on('keyup',function()
{
  var data_ = d3.select(this)
    .property('value')
    .split(' ')
    .map(function(d){return {value:((isNaN(d))?void 0:+d),text:d};});
  update_graph(data_);
});

描画関数update_graph()は、データを受け取ってそれを棒グラフ化します。詳細は割愛しますが、exitセレクションで不要な要素を消し、enterセレクションで高さ0の状態で追加して、適切な高さまでtransitionさせています。

実際にちょっと使ってみて、数字が全角だったりダブルクオートが入っていたりすると使えないのが不便だったので、リンク先のサンプルソースでは、入力全角半角変換、ダブルクオートのトリムなども行っています。
中途半端なパースになっていますが、あくまでプレビュー用と割り切っています。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3