【超簡単~】10分間でPython+FineReportで地震ヒートマップを作成
前回はExcelでハリケーンの進路を可視化でアメリカ2017年の超大型ハリケーン「イルマ」の進路を、Excelで描きました。Excelは簡単なグラフの作成がいいですが、複雑なタイプとなると手順の数が多いです。
今回はPythonでWebスクレイピングして、データ可視化ツールFineReportを利用して抽出した地震データをヒートマップに作成します。10分間ぐらいかかって、超簡単だと思います。
では、はじめます。
Pythonでスクレイピング
1.環境構築
ここはAnacondaでPythonの環境を構築しました。具体的なインストール方法は調べるといろいろありますので、ここは省きします。
(Qiitaの記事Anaconda で Python 環境をインストールするをご参考にしてもいいです。)
AnacondaでPython をインストールした場合、Jupyter Notebook が Python と同時にインストールされています。コマンドプロンプトでJupyter Notebook を起動します。
2.ライブラリ導入
Jupyter Notebookのホームページで「New」ボタン ⇒「Python3」を選択し、ノートブックを作成します。
requests、Beautifulsoap4、pandasをインポートします。
requests:HTTPリクエストを作成する
BeautifulSoup:htmlファイルから目的のデータを抽出する
pandas:データ操作によく用いられるパッケージ。ここでは抽出したデータをCSVへのエクスポートのために使う
3.Webスクレイピング
下記のURLから、USGS(アメリカ地質調査所)の提供した世界中の地震データ(1999~2019年)をスクレイピングします。アメリカ地質調査所はアメリカ内に重点を置くので、アメリカ以外の国の場合、規模が大きな地震のみを含みます。
BeautifulSoupを使い地震データを抽出します。
データを区切って列名を指定し、Excelファイルに出力します。
出力したデータは以下の通り:
FineReportで地震ヒートマップを作成
1.Excelデータをインポート
FineReportを公式サイトからダウンロードし、インストールします。(個人体験版の試用期限が無制限。インストール方法が申し込み後のダウンロード画面にあるので、ここでは省きます。)
ExcelファイルをFineReportのインストール先C:\FineReport_10.0\webapps\webroot\WEB-INF\reportletsに置きます。
FineReportデザイナを開くと、左上のテンプレート一覧に先のExcelファイルがあります。
これからデータセットを作ります。
データセットパネルで「ファイルデータセット」を選択します。
以下に示すように、Excelファイルからデータセットを作成します。
プレビューして、データセットは以下の通り:
2.ヒートマップを作成
ダッシュボードを新規作成し、ツールバーからヒートマップを追加します。
「編集」ボタンをクリックし、右側に地図のポイントとGISレイヤを設定します。
「データ」で地図のデータを設定します。
データソースは上記のデータセットを選択し、経度、緯度、エリア名、系列を以下のように設定します。
ここまでヒートマップの作成がほぼ終わりましたが、見た目をきれいにするために、スタイルも調整します。
凡例は既定でグラデーションとなりますが、場合によって最大値、最小値などを変更できます。
では、完了したヒートマップを以下に示します。
また、拡張グラフの地球を選択し、上記のように設定すれば、以下の効果が出できます。かっこいいじゃないか?
以上です。
ぜひやってみてください!
本記事はQiitaにも掲載されました!