データビジュアライゼーション(Data Visualization)とは、物事の関係性を視覚的に捉えられるように、データを画像・グラフ・図表などに変換することを言います。その目的はデータから価値や知恵を生み出すことにあります。
Data → Information(構造化)→ Knowledge(知見)→ Wisdom(知恵)
Data-ink ratio = Data-ink / total ink used to print the graphicEdward Tufte, 1992, The Visual Display of Quantitative Information
Pythonを用いたデータビジュアライゼーションには、様々な関連ライブラリーのインポート、データの読み込み、各種メソッドの活用が前提となります。以下、各種ライブラリの紹介です。
import matplotlib.pyplot as plt
import seaborn as sns
import folium from folium.plugins import HeatMap
import plotly.graph_objects as go import plotly.express as px
統計データを、国や地域、道路など地図上に可視化する需要が高まっています。今回は、地図情報の活用と、地図上にデータをプロットする方法を体験します。
オープンソースのJavaScriptライブラリLeafletを用いて Pythonでインタラクティブな地図を生成するライブラリです。
緯度・経度の値を使ったマーカー表示や、ヒートマップの表示、また GeoJSON形式の地理情報と統計情報を合わせた各種の可視化が可能になります。
Foliumはデフォルトで OpenStreetMap を使用しています。
コロプレス図とは、統計数値を地図上に表現したもので、区域単位(国別など)の情報を、統計値に応じた色彩や明暗によって表します。人口やGDP、生産高など、土地の上に分布するものを表現するのに適しています。
ノートを、学科サイトの個人ページからリンクして下さい。以下、手順です。
このリンクを知っているインターネット上の全員が閲覧できます。
-[[地理情報の可視化>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
ノートを、学科サイトの個人ページからリンクして下さい。以下、手順です。
このリンクを知っているインターネット上の全員が閲覧できます。
-[[ワードクラウド>https://colab.research.go・・=sharing]]