2025年の世界の大学ランキングを可視化する (Pythonデータの可視化)

2025년 전세계 대학교 순위 그래프
( 2025年の世界大学ランキンググラフ )

英国の教育評価機関である タイムズ高等教育(THE)から毎年 世界大学ランキング(World University Rankings)を発表します。この指標は、教育、研究、論文の引用数、国際的な展望、産業収益など様々な指標を使ってスコアリングされます。大学のグローバル競争力を示す指標とされています。

今回の記事では 2025年の世界大学ランキングデータを Pythonを使ってトレンディな棒グラフで可視化する方法を紹介します。この過程でmatplotlibとseabornライブラリを活用してシンプルで直感的な可視化を作ってみます。

世界の大学ランキングデータ紹介

今回可視化するデータは、2025年の世界の大学ランキングです。 このデータは、英国の大学ランキングです。 THE(Times Higher Education)から提供された資料で、各大学のランキング、国、名前、総合点数が含まれています。 特に韓国の大学も含まれているので、国内外の大学のランキングを簡単に比較することができます。

전세계 대학교 순위 데이터 표

主なデータ概要

世界のトップ5大学には、イギリスとアメリカの代表的な大学が上位にランクインしています。アジアの主要大学の場合、中国、日本、韓国の大学が上位100位以内に含まれており、アジア圏の大学間の比較が可能です。韓国の大学の場合、ソウル大学、カイスト大学、成均館大学、延世大学が世界の大学ランキング上位に属しています。

Pythonコードで世界の大学ランキングを可視化する

それでは、全世界の大学ランキングデータをpandasで整理し、seabornとmatplotlibを使って現代的なスタイルの棒グラフを作成してみましょう。 ハングル注釈を含め、初心者でも分かりやすいように説明を追加しました。

# 必要なライブラリをインポートします。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 世界の大学ランキングデータ準備
data = { "Rank
    "Rank":[1, 2, 3, 4, 5, 12, 13, 28, 62, 82, 102, 102]、
    "Country":
    "大学":[「オックスフォード大学」、「MIT」、「ハーバード大学」、「プリンストン大学」、「ケンブリッジ大学」、
                   "清華大学", "北京大学", "東京大学", "ソウル大学", "KAIST", "成均館大学", "延世大学"]、
    "スコア"[98.5, 98.1, 98.7, 97.7, 97.5, 97.4, 92.5, 92.0, 83.3, 73.5, 69.5, 66.1, 66.1].
}

# データフレームに変換
df = pd.DataFrame(data)

# グラフスタイル設定 - 'whitegrid'スタイルを使用して綺麗な背景を作成します。
sns.set(style="whitegrid")

# グラフサイズの設定と棒グラフの描画
plt.figure(figsize=(12, 8))
bar_plot = sns.barplot(
    x="Score", y="University", data=df, # X軸は'Score'、Y軸は'University'を指定します。
    palette="viridis", edgecolor=".6" # 色は'viridis'パレット、バーの境界線の色はグレー
)

#棒グラフの端に順位とスコアを表示する
for index, row in df.iterrows():
    bar_plot.text(
        row["Score"] - 0.5, index, # テキストの位置 (スコアから少し左に移動)
        f'#{row["Rank"]} ({row["Score"]})', # 表示するテキスト (順位とスコア)
        color='white', # 表示するテキストの色
        ha='right', # 右揃えにします。
        va='center' # 垂直中央に揃える
    )

# グラフタイトルと軸ラベルの設定
bar_plot.set_title("2025 World University Rankings", fontsize=16) # グラフタイトル設定
bar_plot.set_xlabel("Score", fontsize=12) # X軸ラベル設定
bar_plot.set_ylabel("University", fontsize=12) # Y軸ラベル設定

# グラフの表示
plt.show()

コード詳細説明

以下は、各コード部分の機能を詳しく説明した内容です。 特に、棒グラフの端に順位とスコアを追加する部分を中心にコードがどのように動作するかを説明しました。

#必要なライブラリの読み込み
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#世界の大学ランキングデータを準備する
data = { "Rank
"Rank":[1, 2, 3, 4, 5, 12, 13, 28, 62, 82, 102, 102]、
"Country":
"大学":[「オックスフォード大学」、「MIT」、「ハーバード大学」、「プリンストン大学」、「ケンブリッジ大学」、
"清華大学", "北京大学", "東京大学", "ソウル大学", "KAIST", "成均館大学", "延世大学"]、
"スコア"[98.5, 98.1, 98.7, 97.7, 97.5, 97.4, 92.5, 92.0, 83.3, 73.5, 69.5, 66.1, 66.1].
}

#データフレームに変換
df = pd.DataFrame(data)
  • import文でpandas、seaborn、matplotlib.pyplotライブラリを呼び出します。 それぞれデータフレームの生成、可視化、そしてグラフを表示するための必須ライブラリです。
  • data辞書を定義して世界中の大学ランキングデータを保存します。Rank、Country、University、Scoreカラムで構成されています。
  • pd.DataFrame(data)を使ってdata辞書をデータフレームに変換してdfに保存します。これで、このデータフレームを可視化することができます。
#グラフのスタイル設定 - 'whitegrid'スタイルを使用してきれいな背景を作成します。
sns.set(style="whitegrid")
  • sns.set(style="whitegrid"): seabornライブラリのwhitegridスタイルを設定し、グラフに綺麗な背景を追加します。このスタイルは背景に浅い格子模様を追加してデータを目立たせます。
#グラフサイズの設定と棒グラフの描画
plt.figure(figsize=(12, 8))
bar_plot = sns.barplot(
x="Score", y="University", data=df, # X軸は'Score'、Y軸は'University'と指定します。
palette="viridis", edgecolor=".6" # 色は'viridis'パレット、バーの境界線の色はグレー
)
  • plt.figure(figsize=(12, 8)): グラフのサイズを横12インチ、縦8インチに設定します。 グラフがウェブページやブログでよく見えるように適切なサイズに設定します。
  • sns.barplot(...): seabornのbarplot関数を使用して棒グラフを描画します。
  • x="Score", y="University":X軸はスコア(Score)、Y軸は大学名(University)に設定します。スコアによってバーの長さが変わり、Y軸に大学名が表示されます。
  • data=df:データにはdfデータフレームを使用します。
  • palette="viridis":viridisパレットを使用してグラフの色を設定します。 viridisはトレンドカラーでデータの視覚効果を高めます。
  • edgecolor=".6″: 棒の境界線の色をグレー(.6)に設定して、グラフの棒が互いによく区別されるようにします。
#棒グラフの端に順位とスコアを表示します。
for index, row in df.iterrows():
bar_plot.text(
row["Score"] - 0.5, index, # テキストの位置 (スコアから少し左に移動)
f'#{row["Rank"]} ({row["Score"]})', # 表示するテキスト (順位とスコア)
color='white', # 表示するテキストの色
ha='right', # 右揃えにします。
va='center' # 垂直中央に揃える
)
  • for index, row in df.iterrows(): dfデータフレームの各行(row)を巡回してindexとrow変数にそれぞれインデックスと行のデータを割り当てます。 df.iterrows()はデータフレームの各行を繰り返すことができるようにするメソッドです。
  • bar_plot.text(...):棒グラフの各棒の端に順位とスコアを表示するためにtext関数を使います。
  • row["Score"] - 0.5: X座標をScore値の少し左側に位置させるために-0.5を引きます。これにより、テキストがバーの端のすぐ内側に位置するようになります。
  • index: Y座標として使用します。indexは現在繰り返している行のY軸位置を表します。
  • f'#{row["Rank"]} ({row["Score"]})':テキスト内容で、#順位(スコア)形式の文字列を作成します。例えば、#1(98.5)のような形式で表示されます。
  • color='white'です:テキストの色を白に設定し、バー内部でテキストがよく見えるようにします。
  • ha='right':テキストを右揃えにし、バーの端に合わせます。
  • va='center':テキストの縦方向のアライメントを中央に設定し、テキストがバーの高さの中央に位置するようにします。
#グラフタイトルと軸ラベルの設定
bar_plot.set_title("2025 World University Rankings", fontsize=16) # グラフタイトル設定
bar_plot.set_xlabel("Score", fontsize=12) # X軸ラベル設定
bar_plot.set_ylabel("University", fontsize=12) # Y軸ラベル設定
  • bar_plot.set_title(...): グラフのタイトルを設定します。fontsize=16はタイトルのフォントサイズを指定して強調します。
  • bar_plot.set_xlabel(...):X軸のラベルを"Score"に設定します。fontsize=12に設定して可読性を高めます。
  • bar_plot.set_ylabel(...):Y軸のラベルを"University"に設定し、大学名が表示されるようにします。
#グラフを表示する
plt.show()
  • plt.show():すべての設定が完了したグラフを画面に出力します。

締めくくりとまとめ

今回の記事では、2025年の世界の大学ランキングをPythonを活用して可視化する方法を紹介しました。データの可視化プロセスを段階的に説明し、トレンディなグラフスタイリングのヒントを提供し、データをより面白く分析する方法を共有しました。

これにより、世界の大学ランキングを直感的に把握し、大学の競争力を簡単に比較することができます。様々な分野でデータ可視化を通じて有益なインサイトを得ることができることを願っています。

ちなみに、出生率の推移に興味のある方はいらっしゃいませんか? その推移を視覚化して、特定の時点で予想される出生率を簡単に知ることができるようにする方法としては 10年ぶりに韓国の出生率は反発できるのか?国会予算政策処が予測した2025年(feat. Python) 記事を参考にしてみてください!

類似の投稿