画像形式のグラフから数値データを取得する方法【WebPlotDigitizer】

研究

画像化されたグラフの元データが猛烈に欲しいとき、たまにありますよね。

前回の大学院進学に関する記事も、元の論文から今回紹介するツールを使用して数値データを取得しました。

グラフの目盛りから手作業でデータを得るには膨大な時間がかかります。

そこで、ダウンロード不要のWEBアプリ【WebPlotDigitizer】を使うと簡単に数値データを得ることができます。

自分の周りではあまり知名度高くありませんが、非常に便利なツールです。

グラフデータの解析方法や表示形式を変更したいとき、他の論文のデータと比較をしたいときなど様々な場面で役に立ちます。

データで遊ぶにはうってつけのツールです。



WebPlotDigitizer の使い方

WebPlotDigitizerにアクセス

まずは、サイトにアクセスしましょう。

以下のような画面が表示されると思います。

残念ながら日本語版はないので、そのまま “Launch Now!” をクリックします。

データの読み込み

画像データを読み込んでいきましょう。

① “Load Image” をクリック
② “ファイルを選択” で読み込みたい画像形式のグラフを選択してください

ちなみに、ここまではドラッグ&ドロップでもできます。

今回は例として、総務省統計局の『2019年(令和元年)科学技術研究調査 結果の要約』から、〈図2-2 女性研究者数(実数)及び女性の割合の推移〉のグラフをスクショしたものを使用します。

見本なので、面倒くさいグラフを選びました。

軸の設定

軸の種類の選択

グラフを読み込むと以下の画面が表示されるかと思います。

読み込んだグラフの形式により、選択箇所が異なります。

一般的な X軸-Y軸の折れ線グラフや散布図でしたら、一番上の “2D (X-Y) Plot” を選択すれば大丈夫です。

“2D Bar Plot” は棒グラフ、”Polar Diagram” は極座標グラフ、”ternary Diagram” は三角ダイアグラムの場合に使います。
“Map with scale Bar” は縮尺のスケール表示がある地図や顕微鏡画像で選択箇所の長さを知りたいときに使います。これもなかなか便利です。

軸の値の入力

軸の種類を選択し、”Align Axes” をクリックすると、軸の設定方法が表示されます。

グラフ上で既知である、X軸の2点 (X1とX2)、Y軸の2点 (Y1とY2) の位置と数値を入力することで、軸の値が設定されます。

なるべく距離の遠い2点を選択した方が精度は上がります。

今回は 2D (X-Y) Plot を選択したので、棒グラフではなく、折れ線グラフの軸である右側の軸から設定していきます。

Y軸のY1を0でなく12の位置で設定したのは、省略線があったためです。
省略線がある場合、注意が必要です。

こんな感じで4箇所設定できたら “Complete!” をクリックしましょう。

このような画面が表示されました。ここで、選択した4点の軸の値を設定していきます。

今回のX軸は2009~2018なので大丈夫ですが、もし平成元年~令和元年などだった場合、西暦に直す等、連続した数値で表現できるよう入力してください。
日付データの場合なども同様に値を自分で設定することが必要です。

対数グラフの場合は、右側の “Log Scale” を選択してください。

2軸グラフの場合の追加設定

先程の作業で、ほとんどのX-Yグラフの場合、軸の設定が完了ですが、今回のように両側にY軸がある2軸グラフの場合は追加の設定が必要です。

① 左の “Axes” を選択します
② 左下に表示された “Add Callibration” を選択します

すると、先程見た画面が表示されます。

③ 軸の種類を選択します (今度は “2D Bar Plot” にします)
④ ”Align Axes” をクリックし、軸の値の設定に入ります

今度はY軸の2点のみの設定です。左側の軸にY1,Y2を設定し、先程と同じように値を入力します。

データの取得

データセットの追加

取得したいデータがグラフ1つのみの場合は設定不要ですが、2つ以上の場合、データセットの追加が必要です。

① 左の “Datasets” を選択
② 左下の “Add Dataset” を選択
③ 自分が分かりやすいグラフ名前を入力し、”Add Single Dataset” を選択

これで2つのデータセットを取得する準備ができました。

元からあった “Default Dataset” も左下の “Rename Dataset” から名前を変更しておくと後々楽です。

データの抽出

 

①は取得したいデータセットが2つ以上の場合にのみ、
②は2軸グラフの場合にのみ 選択が必要です

1つのみの場合は、これ以降の作業からでOKです

③ “Add Point” を選択します(薄赤色になっていれば選択されています)
④ グラフの色を選択するため、右側の■をクリックします
⑤ 取得したいデータセットのグラフの色を選択します(今回は折れ線グラフのデータを取得するので黒色を選択)

この状態で右下の “Run” を押してみましょう。

大変なことになっていますね。

先程指定した色に基づいてポイントが追加されますが、グラフの枠や文字も黒色のため、それらにも全てポイントが追加されてしまいました。

これを防ぐには、マスク機能を使います。

マスク機能

“Mask” の設定をすることで、マスクした部分のみにポイントの追加を制限することができます。

Maskの “Pen” を選択(消す場合は “Erase”)
② “Width” でペンの太さを自由に変更
③ グラフを上からなぞる

棒グラフも黄色くて分かりにくいですが、マスクできた部分は黄色く表示されます。

もう一度、右下の “Run” を押してみます。

今度は綺麗にプロットされました。

連続的にたくさんプロットされていますが、今回欲しいポイントは1年に1度のみです。

そういう場合は右下から “Algorithm” の変更をします。

アルゴリズムの変更

いまはΔXとΔYが10Pxで設定されています。10Pxごとに1つポイントが追加されるという意味です。

この値を小さくするともっと細かくポイントが追加されます。

1年おきにするには “Averaging Window” のところを “X Step w/ Interpolation” に変更します。

すると、現在は “ΔX Step” が 0.18Units で設定されているのが分かります。

この “ΔX Step” を 1 Units に変更してみましょう。

これで思っていた通りのポイントを得ることができました。

2つめのデータセットの取得

先程と同様にデータ取得の準備をします。

① “Datasets” から取得したいデータセットを選択
② 軸が正しいか確認(先程はXY, 今回はBar)
③ グラフの色を選択(今回は黄色)
④ マスクをする

これで “Run” を押してみます。

綺麗にポイントがとれました。棒グラフはアルゴリズムを変更しなくても棒ごとにデータを取得してくれます。

取得したデータの出力

あとはデータを出力するのみです。

① “Datasets” を選択
② “Export All Data” を選択
③ “Download.CSV” を選択

これでプロットした値がエクセル形式で保存されました。やったね。

エクセルで確認してみると以下のような感じです。

データの名前は文字化けしていますが、値は元のグラフに記入してある数字と比較しても、概ね満足できる結果が得られています。もちろん完璧とは言えませんが。

出力された結果を基にグラフをつくってみます。

ほぼ同じ内容でも、だいぶ可愛いグラフがつくれました。

このように、統計データを研究発表スライドの緒言などで引っ張ってきたいけど元のグラフめちゃダサい~ってときにも使えます。

是非色々いじって遊んでみてください。

 

ゴハン
ゴハン

ないです!グラフかわいいね!

以上

コメント

タイトルとURLをコピーしました