Center for World University Rankings Data Visualizing

GLOBAL 2000 LIST BY THE CENTER FOR WORLD UNIVERSITY RANKINGS

nattakit pinyorattanakit
3 min readJul 19, 2023
Photo by Vasily Koloda on Unsplash

Introduction
ศูนย์จัดอันดับมหาวิทยาลัยโลก หรือ World University Ranking Center (CWUR) เป็นองค์กรที่ปรึกษาชั้นนำในการให้คำแนะนำด้านนโยบาย ข้อมูลเชิงลึกเชิงกลยุทธ์ และให้คำปรึกษาแก่รัฐบาลและมหาวิทยาลัยต่างๆ เพื่อพัฒนาการศึกษาและผลการวิจัย ตั้งแต่ปี 2012 CWUR ได้เผยแพร่การจัดอันดับทางวิชาการของมหาวิทยาลัยทั่วโลกเพื่อประเมินคุณภาพการศึกษา โดยวัดจากความสามารถในการจ้างงานคุณภาพของครูและการวิจัย

Data
ข้อมูลที่ใช้สำหรับการวิเคราะห์และการแสดงภาพการจัดอันดับนั้นได้มาจากเว็บไซต์ CENTER FOR WORLD UNIVERSITY RANKINGS ในชุดข้อมูลนี้มีมหาวิทยาลัย 2,000 อันดับ จากมหาวิทยาลัยเกือบ 20,000 แห่งทั่วโลกและกลายเป็นการจัดอันดับทางวิชาการที่ใหญ่ที่สุดในหมวดมหาวิทยาลัยทั่วโลก

เรามาเริ่มกันเถอะ

Read Data

import pandas as pd

# อ่านไฟล์ Excel
df = pd.read_excel("/content/World University Rankings.xlsx")

# แสดงข้อมูลใน DataFrame
df.head(50)
จะเห็นได้ว่าข้อมูลแถว 0 และ 1 คือ แถวเดียวกัน แต่เกิดจากการเก็บข้อมูลที่ทำให้แถวไม่ตรงกัน เพราะฉะนั้น dataset นี้จะมี 4,000 แถว จากเดิม 2,000
Check for the missing values

import

ไลบรารีที่จำเป็นต่อการทำ Data Visualization เช่น Matplotlib, Seaborn, Plotly, Wordcloud การเลือกใช้ไลบรารีหรือเครื่องมือนี้ขึ้นอยู่กับลักษณะของข้อมูลและวัตถุประสงค์ในการทำ Data Visualization แต่ละไลบรารีและเครื่องมือมีความสามารถและลักษณะที่แตกต่างกัน ทำให้มีความยืดหยุ่นในการปรับใช้ตามความต้องการของผู้ใช้งานและการวิเคราะห์ข้อมูล

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# หาจำนวนมหาวิทยาลัยในแต่ละประเทศและเอาแค่ 20 อันดับแรก
universities_by_country = df['Location'].value_counts().head(20)

# พล็อตกราฟเปรียบเทียบจำนวนมหาวิทยาลัยในแต่ละประเทศ
plt.figure(figsize=(12, 6))
sns.barplot(x=universities_by_country.index, y=universities_by_country.values)
plt.xticks(rotation=90)
plt.xlabel('Country')
plt.ylabel('Number of Universities')
plt.title('Number of Universities by Country (Top 20)')
plt.show()
กราฟนี้จะแสดงให้เห็นว่า Rank ของมหาวิทยาลัย ที่อยู่ในประเทศไหนมากสุด

เช็คมหาวิทยาลัยในประเทศไทยอยู่ในอันดับเท่าไหร่จาก 2,000 มหาวิทยาลัย

# ตรวจสอบคอลัมน์ "Location" ที่มีค่าเป็น "Thailand"
thai_universities = df[df['Location'] == 'Thailand']

# แสดงผลลัพธ์
print(thai_universities[['Institution', 'World Rank']])
จะเห็นได้ว่ามีอยู่ 10 มหาวิทยาลัยตามลำดับ

Bar chart

# พล็อตกราฟแท่งเปรียบเทียบ World Rank ของมหาวิทยาลัยในประเทศไทย
plt.figure(figsize=(10, 6))
sns.barplot(x='World Rank', y='Institution', data=thai_universities)
plt.xlabel('World Rank')
plt.ylabel('Institution')
plt.title('World University Rankings in Thailand')

# แสดงเลขอันดับที่ด้านหลังของแต่ละแถว
for index, value in enumerate(thai_universities['World Rank']):
plt.text(value, index, str(value), ha='left', va='center')

plt.show()
แสดงผลตาม World Rank จากสูงสุดจนถึงอันดับที่สุดท้าย

Pie chart

# ตรวจสอบคอลัมน์ "Location" ที่มีค่าเป็น "Thailand"
thai_universities = df[df['Location'] == 'Thailand']

# เรียงลำดับข้อมูลตามคอลัมน์ "World Rank" จากน้อยไปมาก
thai_universities = thai_universities.sort_values(by='World Rank')

# หา Top 10 มหาวิทยาลัยที่มีอันดับสูงสุด
top_10_universities = thai_universities.head(10)

# พล็อต pie plot แสดงสัดส่วนของมหาวิทยาลัย Top 10
plt.figure(figsize=(8, 8))
plt.pie(top_10_universities['World Rank'], labels=top_10_universities['Institution'], autopct='%1.1f%%')
plt.title('Top 10 Universities in Thailand by World Rank')
plt.axis('equal')
plt.show()

Hexbin Plot

# สร้าง Hexbin Plot
plt.figure(figsize=(10, 6))
plt.hexbin(df['World Rank'], df['Score'], gridsize=15, cmap='Blues')
plt.title('University Ranking - Hexbin Plot', fontsize=14)
plt.xlabel('World Rank')
plt.ylabel('Score')
plt.colorbar(label='Frequency')
plt.show()
Hexbin Plot มีประโยชน์ในการแสดงความหนาแน่นของข้อมูลที่มีการกระจายตัวแบบกระจายความถี่ โดยเฉพาะอย่างยิ่งเมื่อเรามีจำนวนข้อมูลที่มากมายและข้อมูลทับซ้อนกัน

การใช้ Hexbin Plot ช่วยให้เห็นความเข้มของความถี่ในแต่ละพื้นที่ของกราฟ ซึ่งสามารถให้ข้อมูลที่ซับซ้อนเป็นกราฟที่อ่านง่ายและเข้าใจได้ง่ายขึ้น โดยสีแต่ละตำแหน่งบนกราฟจะแสดงความถี่ของข้อมูลในพื้นที่นั้น ๆ โดยสีที่เข้มขึ้นจะแสดงถึงความหนาแน่นของข้อมูลที่มีการกระจายในพื้นที่

WordCloud

from wordcloud import WordCloud

# รวมข้อความจากคอลัมน์ "Institution" เข้าด้วยกัน
text = " ".join(df['Institution'].dropna())

# สร้าง Word Cloud
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)

# พล็อต Word Cloud
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Word Cloud of University Names')
plt.show()

ประโยชน์ของ Word Cloud คือ การสร้างภาพข้อมูลขนาดใหญ่เพื่อแสดงความถี่ของคำหรือข้อความที่มีอยู่ในชุดข้อมูล ในกรณีนี้คือชื่อมหาวิทยาลัย โดยขนาดของคำใน Word Cloud จะแสดงถึงความถี่ของมหาวิทยาลัยนั้นๆ ว่ามีอันดับสูงสุดหรือไม่

Bubble plot

# ตรวจสอบคอลัมน์ "Location" ที่มีค่าเป็น "Thailand"
thai_universities = df[df['Location'] == 'Thailand']

# เรียงลำดับข้อมูลตามคอลัมน์ "World Rank" จากน้อยไปมาก
thai_universities = thai_universities.sort_values(by='World Rank')

# หา Top 10 มหาวิทยาลัยที่มีอันดับสูงสุด
top_10_universities = thai_universities.head(10)

# พล็อต Bubble plot แสดง World Rank, Institution, และ Score ของมหาวิทยาลัย Top 10
plt.figure(figsize=(12, 8))
plt.scatter(top_10_universities['World Rank'], top_10_universities['Institution'], s=top_10_universities['Score']*5, c='skyblue', alpha=0.7)
plt.xlabel('World Rank')
plt.ylabel('Institution')
plt.title('Bubble Plot: World University Rankings in Thailand')

# แสดงเลขอันดับที่ด้านหลังของแต่ละ Bubble
for index, value in enumerate(top_10_universities['World Rank']):
plt.text(value, top_10_universities['Institution'].iloc[index], str(value), ha='left', va='center')

# แสดงคำอธิบายขนาดของ Bubble (Score)
plt.colorbar(label='Score')

plt.show()

พล็อต Bubble plot เพื่อแสดง World Rank, Institution, และ Score ของมหาวิทยาลัย Top 10 ในประเทศไทย โดยขนาดของ Bubble จะแสดง Score ซึ่งสัมพันธ์กับ World Rank ซึ่งช่วยให้เราสามารถเปรียบเทียบข้อมูลที่สนใจได้อย่างชัดเจน

การทำ Data Visualization เป็นกระบวนการที่สามารถช่วยให้เราเห็นภาพรวมของข้อมูลในมุมมองที่น่าสนใจ และช่วยให้เราเข้าใจข้อมูลที่ซับซ้อนได้ง่ายขึ้น จากข้อมูลที่เป็นตารางๆ ทำให้เราไม่เห็นความสัมพันธ์ของข้อมูล มาสร้างความรู้และความเข้าใจใหม่ๆ ในข้อมูลที่มีอยู่ และสามารถนำความรู้นั้นไปใช้ประโยชน์ในการตัดสินใจหรือการวิเคราะห์ทางธุรกิจและสังคมในอนาคตได้ด้วย

ผู้เขียนขอขอบคุณ ❤
เนื้อหาในบทความมีความผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วยครับ

--

--

nattakit pinyorattanakit

AI Engineering and data science ———————————————————————— https://misternattakit.com