ビジュアライジング・データ
――Processingによる情報視覚化手法

[cover photo]
  • 2008年11月 発行
  • 432ページ
  • ISBN978-4-87311-378-4
  • フォーマット Print
  • 原書: Visualizing Data

オライリー・ジャパンで書籍を購入:
定価3,888円


手軽で強力なプログラミング環境「Processing」を用いた情報視覚化技術についての解説書。地図情報・階層ファイルシステム・リスト・グラフ構造・時系列データなど、さまざまなデータの収集・解析手法から対話的な視覚化手法・プログラミングテクニックまでを豊富な実例を用いて詳しく解説しています。EclipseなどのJava開発環境や、ActionScriptを利用した視覚化手法についてもカバーしています。情報視覚化に興味のある幅広い読者にとって役に立つでしょう。
ビジュアライジング・データで言及されている書籍の本棚

原著者によるサポートページ
サンプルファイルのダウンロード

和書(日本語翻訳版)のサンプル
「日本語版に寄せて」「監訳者まえがき」「まえがき」のPDF(1MB)
「7章 木構造、階層、再帰」のPDF(2.5MB)
「索引」のPDF(1MB)
「索引」のテキスト(60KB)

関連書籍

Processingをはじめよう 第2版
集合知プログラミング
詳解 Javaプログラミング 第2版 VOLUME 1
詳解 シェルスクリプト
詳説 正規表現 第3版
初めてのActionScript 3.0
初めてのPHP & MySQL 第2版

日本語版に寄せて
監訳者まえがき
まえがき
1章 情報視覚化の7ステップ
    1.1 データ表示には計画が必要
        1.1.1 情報過多
        1.1.2 データ収集
        1.1.3 データについて考える
        1.1.4 データは変動する
        1.1.5 問いは何か?
        1.1.6 複数分野の組み合わせ
        1.1.7 プロセス
    1.2 プロセスの適用事例
        1.2.1 問いは何か?
    1.3 反復と協同
    1.4 基本原則
        1.4.1 プロジェクトの要件はそれぞれ異なる
        1.4.2 食べ放題を避ける
        1.4.3 ユーザを知る
    1.5 さて次は
2章 Processing入門
    2.1 Processingでスケッチする
        2.1.1 Hello World
        2.1.2 Hello Mouse
    2.2 成果物のエクスポートと配布
        2.2.1 成果物を保存する
    2.3 サンプルプログラムとリファレンス
        2.3.1 size ( )メソッドの詳細
        2.3.2 データのロードと表示
    2.4 メソッド
        2.4.1 ライブラリによる機能追加
    2.5 スケッチとスクリプト
        2.5.1 最初から大聖堂を目指すのではなく
    2.6 ではいよいよ
3章 マッピング
    3.1 地図を描く
        3.1.1 コードの説明
    3.2 地図上の位置
    3.3 地図上のデータ
        3.3.1 表裏を成すデータ範囲
        3.3.2 追加情報をマウス操作で呈示する(インタラクション)
        3.3.3 値を更新する(データ収集、マイニング)
        3.3.4 値を滑らかに補間する(精緻化)
    3.4 独自のデータを使う
        3.4.1 ユーザからデータを取得する
    3.5 次のステップは
4章 時系列
    4.1 ミルクと紅茶とコーヒー(データ収集、解析)
    4.2 データ表を整理する(フィルタリング、マイニング)
    4.3 シンプルなプロット表示(表現、精緻化)
    4.4 データセットを表すラベルを付ける(精緻化、インタラクション)
    4.5 軸ラベルを付ける(精緻化)
        4.5.1 年のラベル
        4.5.2 垂直方向に量のラベルを付ける
        4.5.3 両方の軸にタイトルを付ける
    4.6 適切な表現を選ぶ(表現、精緻化)
    4.7 ポップアップテキストを使って各データポイントの詳細を表示する(インタラクション)
    4.8 データポイントのつなぎ方を工夫する(精緻化)
        4.8.1 データを面積として表す
        4.8.2 さらなる精緻化とグラフィック要素の消去
        4.8.3 棒グラフによる離散値(表現)
    4.9 タブ付き区画としてのテキストラベル(インタラクション)
        4.9.1 変数を追加する
        4.9.2 タブを描画する
        4.9.3 マウス入力を処理する
        4.9.4 タブにイメージを使う(精緻化)
    4.10 データセット間の補間(インタラクション)
    4.11 時系列のまとめ
5章 関連と相関
    5.1 データソースの切り換え
    5.2 プロジェクトの由来
    5.3 前処理
        5.3.1 勝敗データを取り込む(データ収集)
        5.3.2 勝敗ファイルの内容を調べる(マイニング、フィルタリング)
        5.3.3 チームのロゴを取得する(データ収集、精緻化)
        5.3.4 年俸データを取得する(データ収集、解析、フィルタリング)
    5.4 前処理を終えたデータを使う(データ収集、解析、フィルタリング、マイニング)
        5.4.1 チームの名前とコード
        5.4.2 チームの年俸
        5.4.3 チームの勝敗表
        5.4.4 チームのロゴ
        5.4.5 セットアップを終える
    5.5 結果を表示する(表現)
    5.6 問いに立ち返る(精緻化)
        5.6.1 線を強調する
        5.6.2 数値データに適した書体
        5.6.3 タイポグラフィについて
    5.7 洗練されたソート処理:同等の場合に年俸を使う(マイニング)
    5.8 複数の日付に対応する(インタラクション)
        5.8.1 日付を描く
        5.8.2 シーズン全体の勝敗データをロードする
        5.8.3 表示する日を切り替える
        5.8.4 ここで確認を
    5.9 インタラクションを円滑にする(精緻化)
    5.10 運用面の対策(データ収集、解析、フィルタリング)
6章 散布図
    6.1 前処理
        6.1.1 米国国勢調査局のデータ(データ収集)
        6.1.2 郵便番号データベースファイルを処理する(解析、フィルタリング)
        6.1.3 前処理プログラムを組み立てる
    6.2 データをロードする(データ収集、解析)
    6.3 郵便番号の場所を点で描く(マイニング、表現)
    6.4 キー入力に応答して強調表示する(精緻化、インタラクション)
    6.5 該当する場所の情報を表示する(精緻化)
    6.6 明るさを徐々に変える(精緻化)
    6.7 ズーム機能(インタラクション)
    6.8 ズームモードのときの表示を変える(精緻化)
    6.9 運用上の問題(データ収集、精緻化)
    6.10 次なるステップへ
7章 木構造、階層、再帰
    7.1 再帰を使ってディレクトリの木構造を組み立てる
        7.1.1 ファイルを扱う際の注意点(フィルタリング)
        7.1.2 木構造の内容を再帰的に出力する(表現)
    7.2 キューを使って非同期でロードする(インタラクション)
        7.2.1 進行状況を報告する(表現)
    7.3 ツリーマップとは
        7.3.1 シンプルなツリーマップライブラリ
        7.3.2 ツリーマップの簡単な例
    7.4 最大のスペースを占めているファイルは?
        7.4.1 ディレクトリ構造を読み取る(データ収集、解析、フィルタリング、
マイニング、表現)
    7.5 フォルダの内容を表示する(インタラクション)
    7.6 ツリーマップの表示を改善する(精緻化)
        7.6.1 コンテキストを維持する(精緻化)
        7.6.2 色の価値を高める(マイニング、精緻化)
    7.7 ファイルをナビゲートする(インタラクション)
        7.7.1 FileItemをズーム対応にする
        7.7.2 FolderItemをズーム対応にする
        7.7.3 フォルダ選択ダイアログを追加する(インタラクション)
    7.8 次なるステップへ
8章 ネットワークとグラフ
    8.1 簡単なグラフの例
        8.1.1 JavaからProcessingに移植する
        8.1.2 ノードを操作する
    8.2 複雑なグラフを描く
        8.2.1 テキストを入力に使う(データ収集)
        8.2.2 本を読み込む(解析)
        8.2.3 ストップワードを除去する(フィルタリング)
        8.2.4 ノードとエッジをスマートに追加する(マイニング)
        8.2.5 本を表示する(表現、精緻化)
        8.2.6 イメージをベクタ形式で保存する
        8.2.7 成果をチェックする
    8.3 ネットワーク表現再考
    8.4 高度なグラフの例
        8.4.1 Java IDEの最初の一歩
        8.4.2 Webサーバのログファイルを入手する(データ収集)
        8.4.3 Apacheログファイルを読み込む(解析)
        8.4.4 その他のソースファイルについて
        8.4.5 ProcessingからJavaに移行する
        8.4.6 データの読み込みと整理(データ収集、解析、フィルタリング)
        8.4.7 全体を組み立てる(マイニング、表現)
        8.4.8 枝とノードを表現する(表現、精緻化)
        8.4.9 データと戯れる(インタラクション)
        8.4.10 ノードの名前を描く(表現、精緻化)
        8.4.11 ユーザの足跡を描く(表現、精緻化)
    8.5 さらなる情報のマイニング
9章 データ収集
    9.1 どこにデータを探すか
        9.1.1 データ収集の倫理
    9.2 インターネットからデータ収集するためのツール
        9.2.1 WgetとcURL
        9.2.2 NcFTPとLinks
    9.3 Processingで使うファイルの場所
        9.3.1 dataフォルダ
        9.3.2 URL
        9.3.3 ローカルファイルへの絶対パス
        9.3.4 出力の位置を指定する
    9.4 テキストデータをロードする
        9.4.1 大きすぎてloadStrings ( )が適さないファイルを扱う
        9.4.2 ファイルを少しずつ読み込む
        9.4.3 スレッドにより非同期でファイルを読み込む
        9.4.4 大規模ファイルを読みながら解析する
    9.5 ファイルとフォルダを扱う
        9.5.1 JavaのFileオブジェクトを使ってファイルの場所を求める
    9.6 フォルダ中のファイルをリストする
        9.6.1 一連の番号付きファイルを扱う
    9.7 イメージを非同期でダウンロードする
    9.8 Javaとの橋渡しとしてopenStream( )を使う
    9.9 バイト配列を処理する
    9.10 高度なWebテクニック
        9.10.1 Webフォームを処理する
        9.10.2 Webブラウザを装う
    9.11 データベースを使う
        9.11.1 はじめてのMySQL
        9.11.2 MySQLをProcessingで使う
        9.11.3 その他のデータベース
        9.11.4 対話型アプリケーションにおけるデータベースの性能
    9.12 多数のファイルを処理する
10章 データ解析
    10.1 取り組みのレベルについて
    10.2 手がかりを集めるためのツール
    10.3 テキストがベスト
        10.3.1 TSV(Tab-Separated Values)
        10.3.2 CSV(Comma-Separated Values)
        10.3.3 固定幅テキスト
    10.4 マークアップ言語
        10.4.1 HTML
        10.4.2 XML
        10.4.3 JSON
    10.5 正規表現
    10.6 文法とBNF記法
    10.7 圧縮データ
        10.7.1 GZIPストリーム(GZ)
    10.8 ベクタと座標情報
        10.8.1 SVG(Scalable Vector Graphics)
        10.8.2 OBJとAutoCAD DXF
        10.8.3 PostScriptとPDF
        10.8.4 ShapefileとWKT
    10.9 バイナリデータ形式
        10.9.1 Excelスプレッドシート(XLS)
        10.9.2 dBASE/xBase(DBF)
        10.9.3 任意のバイナリ形式を扱う
        10.9.4 ビットのシフト処理
        10.9.5 DataInputStream
    10.10 高度な探索作業
        10.10.1 ネットワークトラフィックを監視する
11章 Javaとの統合
    11.1 プログラミングモード
        11.1.1 基本モード
        11.1.2 連続モード
        11.1.3 Javaモード
    11.2 追加のソースファイル(タブ)
        11.2.1 .javaソースファイルを使う
    11.3 プリプロセッサ
    11.4 API構造
        11.4.1 イベント処理
        11.4.2 size ( )メソッド
        11.4.3 main ( )メソッド
        11.4.4 frameオブジェクト
    11.5 JavaアプリケーションにPAppletを埋め込む
        11.5.1 画面更新のための2つの方法
        11.5.2 Swingアプリケーションにスケッチを埋め込む
    11.6 ProcessingスケッチでJavaコードを使う
        11.6.1 スケッチに.jarファイルを追加するためのcodeフォルダ
        11.6.2 コードをライブラリにパッケージ化する
    11.7 ライブラリを使う
    11.8 processing.coreのソースコードを調べる
付録A ActionScriptによる情報視覚化
    A.1 ActionScript開発環境
    A.2 ProcessingとActionScript
    A.3 ActionScriptで実現するズーミング視覚化システム
        A.3.1 ズーミング辞書の利用例
        A.3.2 ズーミング辞書の実装
    A.4 その他のシステム
付録B 参考文献
    B.1 データ収集、解析
    B.2 フィルタリング、マイニング
    B.3 表現
    B.4 精緻化
    B.5 インタラクション
    B.6 視覚化全般
索引

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

■P.49 上から7行目
  • 【誤】最小値と最大値は最初から決めておく必用があります。
  • 【正】最小値と最大値は最初から決めておく必要があります。
■P.298 上から19行目
  • 【誤】HttpClientのコードそのもの
  • 【正】HttpClientのコードそのもの†
  •  †◆監訳注:2009年2月時点でダウンロード可能なHttpClient 3.1にはlog4jが含まれていないのでこのままでは本書のサンプルプログラムを実行できません。サンプルを実行するためには、log4j-1.2.15.jar(http://logging.apache.org/log4j/1.2/download.html)を別途ダウンロードして追加する必要があります。
■P.298 上から20行目
  • 【誤】http://commons.apache.org/downloads/download_httpclient.cgi
  • 【正】http://hc.apache.org/downloads.cgi
■P.381 索引の右段下から7行目
  • 【誤】* drawTitleTabs( )……94
  • 【正】※この行を削除
■P.381 索引の右段下から6行目
  • 【誤】drawTitleTabs( )……88, 90
  • 【正】drawTitleTabs( )……88, 90, 94
■P.389 索引の左段上から19行目
  • 【誤】* setFloat( )……49
  • 【正】setFloat( )……49
■P.394 索引の右段下から18行目
  • 【誤】drawTitleTabs( )……94
  • 【正】※この行を削除
■P.395 索引の左段下から1行目
  • 【誤】setFloat( )……49
  • 【正】※この行を削除

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]