統計データを、国や地域、道路など地図上に可視化する需要が高まっています。今回は、地図情報の活用と、地図上にデータをプロットする方法を体験します。
オープンソースのJavaScriptライブラリLeafletを用いて Pythonでインタラクティブな地図を生成するライブラリです。
緯度・経度の値を使ったマーカー表示や、ヒートマップの表示、また GeoJSON形式の地理情報と統計情報を合わせた各種の可視化が可能になります。
Foliumはデフォルトで OpenStreetMap を使用しています。
コロプレス図とは、統計数値を地図上に表現したもので、区域単位(国別など)の情報を、統計値に応じた色彩や明暗によって表します。人口やGDP、生産高など、土地の上に分布するものを表現するのに適しています。
地理情報のビジュアライゼーション
ノートを、学科サイトの個人ページからリンクして下さい。以下、手順です。
このリンクを知っているインターネット上の全員が閲覧できます。
-[[GeographicVisualization>https://colab.research.go・・=sharing]]
map0 = folium.Map( location = [35,139] , zoom_start = 5.0 , tiles="OpenStreetMap" ) map0
ksu_lat = 33.66983627668292 ksu_lng = 130.44487416744232
map1 = folium.Map( location = [ksu_lat, ksu_lng] , zoom_start = 20 )
folium.Marker( location = [ksu_lat, ksu_lng] , popup="九州産業大学" ).add_to( map1 )
上と同様につき、省略します。
df = pd.read_csv('https://covid-19-surveillance・・covid-19_daily_survey.csv')本日最新のデータがこのURLから直接読まれます。
map3 = folium.Map( location = [TOKYO_lat, TOKYO_lng] , zoom_start = 11 , tiles="cartodbpositron" )
df_hospital = df.query( "医療区分=='入院' & 医療区分回答=='制限'" ).loc[:,['緯度','経度']]
df_hospital_geolist = df_hospital.values.tolist()
HeatMap( df_hospital_geolist, radius=7, blur=5 ).add_to(map3)
url = requests.get('https://raw.githubusercontent.com/johan/world.geo.json/master/countries.geo.json') text = url.text geo_json = json.loads( text)
df_gm = px.data.gapminder().query("year == 2007")
map4 = folium.Map( location = [40,0] , zoom_start = 1.8 )
folium.Choropleth( geo_data = geo_json, data = df_gm, fill_opacity = 1, line_color = 'white' , nan_fill_color = '#888888' , # 欠損値の色 columns = ['iso_alpha' , 'gdpPercap'], # 色分けに使うキーとカラム名 key_on = 'feature.id' , # データに対応した geo.json のキー fill_color = 'OrRd', ).add_to(map4)
df_gm = px.data.gapminder().query("year == 2007") fig0 = px.scatter_geo( df_gm, locations="iso_alpha", color="continent", projection="orthographic") fig0.show()
df_gm = px.data.gapminder().query("year == 2007") fig1 = px.scatter_geo( df_gm, locations='iso_alpha', color='continent', hover_name='country', size='pop', projection='orthographic' ) fig1.show()
ワードクラウドは、文章の中に含まれる単語をカウントして、どのような単語が多く含まれるかを視覚的に表現します。
英語の場合は、単語間にスペースがあるので、解析が簡単ですが、日本語の場合はオリジナルの文章から単語間がスペースで区切られた「分かち書き」の状態に変換する作業が必要になります。
import wordcloud
以下のような一般のテキストデータが利用できます。
JupyterNotebook形式(.ipynb)でプログラムを提供します。
https://github.com/koichi-inoue/DataScience/blob/main/WordCloud.ipynb
(書きかけです)