はじめに
「Python で Twitter の位置情報収集」で集めた Tweet の位置情報を可視化していきたい。今回はキーワードを "beer" として 2022年5月23日、24日、25日の間につぶやかれた位置情報を取得し、これを可視化してみる。データの取得方法については上記記事を確認されたし。
cartopy でヒートマップを作る方法はPython で Tweet の位置情報をヒートマップで可視化しよう!(cartopy版)に記載済み。前半部分は上記記事と全く同じ。
データの読み込みと結合
まず収集したデータを読み込み、三つのデータフレームを結合する。
# 必要なモジュールのインポート
import pandas as pd
# データの読み込み
df1 = pd.read_csv("./20220523_beer.csv")
df2 = pd.read_csv("./20220524_beer.csv")
df3 = pd.read_csv("./20220525_beer.csv")
# データ結合
df = pd.concat([df1, df2, df3])
# 結果の表示
df.head()
出力は下記の通り。
データフレームのサイズを確認してみると、
# サイズ確認
print(df.shape)
(5788, 5)
約5800行程度の位置情報がある。
folium でヒートマップを作る
folium にはヒートマップのプラグインがすでに用意されている。以下に参考記事を示す。
コードはシンプルで簡単。
# 必要なモジュールをインポート
from folium import Map
from folium.plugins import HeatMap
# 地図の作成(中心は日本)
m = Map(location=[35.658581, 139.745433], zoom_start = 2)
# ヒートマップの作成
HeatMap(
df[["lat", "long"]].values, # 緯度・経度のリスト
radius=4, # ヒートマップの点の半径。
blur=3 # ぼかしの程度
).add_to(m)
# 図の保存
m.save('heatmap.html')
やはりアメリカ、ヨーロッパ、日本で多く beer とつぶやかれており、特にロンドン、ニューヨーク付近で色が赤に近くなっているのがわかると思う。folium の html は開くと拡大縮小、移動ができるので、日本なら東京と大阪に beer のつぶやきが多いのがわかる。
おわりに
folium を使うと簡単にヒートマップを作成することができた。ほかにもいくつかプラグインがあるようなので、時間があればいろいろと試してみたいと思う。