論文や技術資料、製品カタログ、古い報告書を見ていると、グラフは残っているのに元データが見つからないことがあります。「この曲線をExcelで使いたい」「PDFに載っているグラフからXY座標を取り出したい」という場合、グラフを見ながら一つずつ数値を読むのは、点数が多いほど大変です。
Browser KittyのGraph Digitizerは、グラフ画像やPDFページの軸を校正し、画像上の位置をXYの数値に変換してCSVとして保存するツールです。色を使った曲線の自動追跡、丸や四角などのマーカー抽出、複数系列、Linear / log10軸、作業保存にも対応し、選択した画像やPDF、抽出座標はブラウザ内で処理します。
グラフ画像から数値を取り出す仕組み
画像になったグラフには、通常「このピクセルがX=10、Y=50」といった情報は入っていません。そこで最初に、値が分かっているX軸とY軸の目盛りを指定します。
たとえばX軸上の「0」と「10」、Y軸上の「0」と「100」の位置を登録すると、画像上の座標と実際の数値の対応関係を計算できます。その校正情報を使って、クリックした点や自動検出した曲線の位置をXY座標へ変換します。
Graph Digitizerで得られる数値は、画像上に残っている位置情報から計算した推定値です。低解像度画像から元データと同じ桁数や測定精度まで正確に復元できるとは限りません。
画像またはPDFを読み込み、必要ならグラフ部分を切り抜く
入力画像はPNG、JPEG、WebPに対応し、ファイル選択、Drag & Drop、クリップボード貼り付けを使えます。PDFの場合は対象ページを選び、必要に応じてグラフ部分を矩形で切り抜いてから作業画像として確定します。
PDFページ全体に本文、表、複数のグラフ、脚注、凡例がある場合は、必要なグラフだけを切り抜くと校正点を指定しやすく、曲線色も選びやすくなり、自動追跡の対象範囲も絞れます。
PDFを開いた瞬間にそれまでの作業が置き換わるわけではありません。使用するページや範囲を確認してから作業画像へ切り替えます。
- PNG
- JPEG
- WebP
- PDFページ
X1 / X2 / Y1 / Y2の4点で軸を校正する
画像上の位置とグラフの数値を対応させるため、値が分かっている目盛りを使ってX1、X2、Y1、Y2の4点を指定します。たとえばX軸の0と10、Y軸の0と100の位置を登録すれば、その4点を基準にXY値へ変換できます。
校正点は原点や軸の交点である必要はありません。X軸上の20と40がはっきり見えているなら、その2点を使えます。重要なのは、指定した画像上の位置がどの数値を示しているか正確に分かることです。
可能であれば近接した2点より、ある程度離れた目盛りを使う方が、1ピクセル程度の位置ずれによる影響を小さくしやすくなります。
- X1
- X2
- Y1
- Y2
Linear / log10、逆向きの軸、少し傾いた画像を確認する
グラフの軸が必ずしも線形とは限りません。1、10、100、1000が同じ間隔で並ぶなら対数軸です。Graph DigitizerではX軸とY軸それぞれにLinear / log10を指定でき、片対数・両対数グラフを扱えます。
対数軸をLinearとして校正すると変換式が変わり、結果が大きくずれます。数値を取り始める前に、目盛りが等間隔なのか、10倍ごとに等間隔なのかを確認します。
右へ行くほど値が小さくなるX軸なども、その向きに合わせて校正値を指定すれば扱えます。また、直線のXY軸であれば、スキャン画像が多少傾いていても4点の校正情報から座標を計算できます。
写真の遠近歪み、レンズ歪み、湾曲した紙、曲がった軸そのものを自動補正する機能ではありません。
- Linear
- log10
点数が少ないグラフは手動で読み取り、位置を1px単位で修正する
点数が少ないグラフなら、手動で指定するのがいちばん確実です。グラフ上の読み取りたい位置をクリックすると、その位置がXY座標に変換され、現在の系列へ追加されます。
手動抽出は、曲線が複雑、系列同士の色が似ている、グリッド線が濃い、自動追跡しにくい、必要なのが数点だけ、といった場合にも向いています。
選択した点はルーペで確認しながら1px単位で調整できます。PCでは矢印キーで1px、Shift + 矢印キーで10px移動できます。スマートフォンでは仮位置を置いたあと、ルーペで微調整してから確定できます。
色を指定して曲線を自動追跡する
点数の多い折れ線や連続曲線では、曲線モードを使えます。対象の色を指定すると、X方向に沿ってその色に近い部分を探し、候補点を自動抽出します。
曲線色、対象範囲、開始点、色許容差、連続性、サンプリング間隔などを調整できます。対象範囲は校正済みの軸範囲や任意の矩形へ絞れます。
自動追跡結果はそのまま系列へ追加されず、まずPreviewとして表示されます。元の曲線を正しく追えているか確認し、必要なら設定調整や誤検出の除外をしてから系列へ反映します。
丸や四角などのデータマーカーを点として抽出する
折れ線グラフでは、線そのものではなく丸や四角の中心だけが実際の観測点という場合があります。その場合はマーカーモードを使います。
曲線モードが色付きの線をX方向に追跡するのに対し、マーカーモードは丸や四角など、局所的に太くなっている部分を探して、その中心をデータ点として扱います。
凡例、文字、グリッドとの交差、別系列などを誤って拾った場合は、Preview上で不要な点を選択し、Delete / Backspaceで除外してから系列へ反映できます。
長い欠損は別segmentにし、複数系列を分けて管理する
曲線の途中が大きく欠けている場合、Graph Digitizerは長い欠損区間を自動補間して1本につなぐのではなく、別segmentとして保持します。画像に線が存在しない場所を推測して値を作らないためです。
赤線、青線、緑線のように複数系列があるグラフでは、系列名、表示色、抽出点を別々に管理できます。Experiment A / Experiment Bのように名前を付けておけば、CSV出力後も識別できます。
系列同士が交差する、色がよく似ている、線が重なる、グリッド線と近い色を使っている場所では誤追跡しやすくなります。その部分は元画像を見ながら手動で確認・修正します。
元画像へのOverlayと再描画グラフで抽出結果を確認する
グラフのデジタイズでは、数値を取り出すこと以上に「正しく取れているか確認すること」が重要です。Graph Digitizerでは抽出点を元画像へ重ねて表示でき、曲線から外れた点や別の線を拾った箇所を見つけやすくなります。
抽出したXYデータからグラフを再描画し、曲線全体の形、ピーク位置、傾き、欠損部分が不自然でないか確認できます。
元画像Overlay、再描画グラフ、要確認一覧、座標表は同じ選択点と連動します。要確認点を選び、画像位置と数値を見比べながら修正できます。
作業途中を.graphdigitizer.jsonとして保存する
軸校正や複数系列の抽出が一度で終わらない場合は、現在の作業を.graphdigitizer.jsonとして保存できます。作業画像、軸校正、系列、segment、抽出点、自動追跡設定、CSV設定などを保持し、あとから続きから作業できます。
PDFから始めた場合でも、元PDF全体が作業ファイルへ丸ごと保存されるわけではありません。選択した作業ページの画像など、再開に必要な情報が保存されます。
CSVをPreviewして保存し、Excelなどで再利用する
標準CSVはseries,segment,x,yの4列で、複数系列や途中で切れた曲線を区別できます。1系列・1segmentだけなら、よりシンプルなx,y形式も選べます。
保存前に実際のCSV本文をPreviewでき、系列名、列、数値、segmentが意図した状態か確認できます。CSV本文をコピーして別のアプリへ貼り付けることもできます。
保存したCSVはExcel、Python、Rなどで再利用できます。ExcelでX列とY列から散布図を作れば元グラフに近い形を再描画できますが、画像から推定した座標であり、元の生データと完全に同じという意味ではありません。
| 形式 | 用途 |
|---|---|
| series,segment,x,y | 複数系列や複数segmentを区別したい場合 |
| x,y | 1系列・1segmentだけのシンプルなデータ |
PDF内部の元データ復元、棒グラフ、一般OCRは対象外
Graph DigitizerはPDF内部のグラフ元データやベクター情報を解析して復元するツールではありません。PDFページを描画し、表示されたグラフ上の位置を校正してXY値へ変換します。
v1.0.0の主な対象は、各X位置に対しておおむね1つのYがある通常のXYグラフです。棒グラフ、ヒストグラム、極座標、三角座標、3Dグラフ、塗りつぶし面積の一般的な自動解析には対応していません。
軸ラベルや「1月」「2月」のようなカテゴリ名をOCRしてCSVへ入れる一般的なグラフOCR機能もありません。カテゴリ軸は必要に応じてX=1〜12のような数値として校正し、CSV出力後に文字列へ置き換えます。
- 棒グラフ
- ヒストグラム
- 極座標 / 三角座標
- 3Dグラフ
- 塗りつぶし面積
- 一般的なグラフOCR
自動追跡がうまくいかないときは元画像と手動修正を見直す
曲線追跡は、対象の色や形が画像上ではっきり見えているほど成功しやすくなります。JPEGノイズ、低解像度、細すぎる線、濃いグリッド、系列の交差、近い色、弱いコントラストは自動追跡を難しくします。
可能であれば、何度もJPEG保存したスクリーンショットより、元PDF、PNG、高解像度画像を使う方が適しています。線や目盛りが鮮明なほど、軸校正や点指定もしやすくなります。
すべてを自動で処理する必要はありません。長い区間は自動追跡し、交差部分だけ手動で修正するなど、自動追跡を完成データの自動生成ではなく手作業を減らす候補生成として使うと扱いやすくなります。
画像・PDF・作業ファイルのサイズ上限
v1.0.0では、画像は最大20 MiBかつ展開後最大1600万ピクセル、PDFは最大80 MiBで、作業ページのラスターは1600万ピクセル以内に制限されます。.graphdigitizer.json作業ファイルは最大96 MiBです。
大きなスキャン画像ではファイルサイズが20 MiB未満でも、展開後のピクセル数で上限を超える場合があります。巨大なPDFや高解像度画像では端末メモリも多く消費します。
| 対象 | 上限 |
|---|---|
| 画像 | 20 MiB / 展開後1600万ピクセル |
| 80 MiB / 作業ページ1600万ピクセル | |
| 作業ファイル | 96 MiB |
画像・PDF・抽出座標はブラウザ内で処理する
Graph Digitizerでは選択した画像やPDFをブラウザ内で処理します。生成HTMLにはconnect-src 'none'を含むContent Security Policyが設定され、実行時CDN、Analytics、Telemetry、外部AI API、外部モデルは使用しません。PDF.js本体、Worker、必要なWASMも生成HTMLへ内包されています。
Browser KittyやGitHub Pages上のWeb版を開くときは、最初にアプリ本体のHTMLを取得する通信が発生します。一方、読み込んだ画像、PDF、作業ファイル、抽出座標をアプリから外部へ送信する処理はありません。
完全にネットワークを切った状態で使いたい場合は、生成済みの単一HTMLをローカルで開くこともできます。
画像から読み取れる以上の精度を信用せず、用途に合わせて使う
グラフをデジタイズするときは、鮮明な元画像やPDFを使い、校正点を正確に置き、Linear / log10を間違えず、自動追跡結果を元画像Overlayで確認することが重要です。画像から読み取れる以上の桁数を信用しないことも大切です。
用途としては、論文のグラフから参考値を取り出す、古い報告書の曲線をCSV化する、製品データシートの性能曲線を数値化する、PDFしか残っていない実験結果を再解析する、過去資料のグラフをExcelで再描画する、といったケースがあります。
論文や第三者資料から取得したデータを利用する場合は、元資料の著作権、利用条件、研究上の引用ルールなども別途確認してください。
手順
- 画像またはPDFを読み込む
- 必要であればグラフ部分を切り抜く
- X1 / X2 / Y1 / Y2を校正する
- Linear / log10を確認する
- 系列を作成する
- 手動・曲線・マーカーのいずれかでデータを取る
- 元画像へのOverlayで確認する
- 要確認点を修正する
- 再描画したグラフを確認する
- CSV Previewを確認して保存する
Graph Digitizer
グラフ画像やPDFページの軸を校正し、曲線やマーカーからXYデータを抽出・修正してCSV保存します。
注意点
- できるだけ鮮明な元画像やPDFを使う
- 校正点は目盛りの位置へ正確に置く
- Linear / log10を間違えない
- 校正には、可能であれば離れた2点を使う
- 自動追跡結果をそのまま採用しない
- 元画像へのOverlayで位置を確認する
- 重要な点はルーペで微調整する
- 画像から読み取れる以上の桁数を信用しない
よくある質問
グラフ画像から数値データを取り出せますか?
できます。X軸・Y軸を既知の目盛りで校正し、画像上の点や曲線の位置をXY値へ変換します。
PDF内のグラフもCSVにできますか?
できます。PDFから対象ページとグラフ範囲を選び、デジタイズした結果をCSVとして保存できます。
対数グラフにも対応していますか?
X軸とY軸それぞれにLinear / log10を設定できます。片対数グラフ、両対数グラフのどちらにも利用できます。
曲線を自動で読み取れますか?
色を指定した曲線の自動追跡に対応しています。色許容差、連続性、サンプリング間隔などを調整でき、検出結果はPreviewで確認してから系列へ反映します。
折れ線グラフの丸い点だけを読み取れますか?
マーカーモードを使うと、丸や四角などのデータマーカーを検出し、その中心を点として抽出できます。
自動検出で間違えた点は削除できますか?
できます。Preview上の誤検出はDelete / Backspaceで除外できます。系列へ追加した点も選択して修正・削除できます。
棒グラフにも対応していますか?
v1.0.0は主に通常のXYグラフを対象としており、棒グラフやヒストグラムを自動解析する専用機能はありません。
グラフ内の文字や月名をOCRできますか?
一般的なグラフOCRには対応していません。「1月〜12月」のようなカテゴリ軸の場合は、X=1〜12のように数値として校正し、必要であればCSV出力後に文字列へ置き換えます。
元データとまったく同じ数値を復元できますか?
保証できません。抽出値は画像上のピクセル位置から計算した推定値です。画像化によって失われた精度まで復元することはできません。
作業途中を保存できますか?
.graphdigitizer.jsonとして保存できます。軸校正、系列、点、segment、自動追跡設定などを保存し、あとから作業を再開できます。
CSVはどんな形式ですか?
標準形式はseries,segment,x,yです。1系列・1segmentの場合は、よりシンプルなx,y形式も選択できます。
画像やPDFはサーバーへアップロードされますか?
いいえ。画像・PDFの読み込み、PDF描画、校正、自動追跡、座標計算、CSV生成はブラウザ内で行います。Web版では、最初にアプリ本体のHTMLを取得するための通信のみ発生します。