Center for World University Rankings Data Visualizing
GLOBAL 2000 LIST BY THE CENTER FOR WORLD UNIVERSITY RANKINGS
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)
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()
เช็คมหาวิทยาลัยในประเทศไทยอยู่ในอันดับเท่าไหร่จาก 2,000 มหาวิทยาลัย
# ตรวจสอบคอลัมน์ "Location" ที่มีค่าเป็น "Thailand"
thai_universities = df[df['Location'] == 'Thailand']
# แสดงผลลัพธ์
print(thai_universities[['Institution', 'World Rank']])
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()
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 ช่วยให้เห็นความเข้มของความถี่ในแต่ละพื้นที่ของกราฟ ซึ่งสามารถให้ข้อมูลที่ซับซ้อนเป็นกราฟที่อ่านง่ายและเข้าใจได้ง่ายขึ้น โดยสีแต่ละตำแหน่งบนกราฟจะแสดงความถี่ของข้อมูลในพื้นที่นั้น ๆ โดยสีที่เข้มขึ้นจะแสดงถึงความหนาแน่นของข้อมูลที่มีการกระจายในพื้นที่
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 เป็นกระบวนการที่สามารถช่วยให้เราเห็นภาพรวมของข้อมูลในมุมมองที่น่าสนใจ และช่วยให้เราเข้าใจข้อมูลที่ซับซ้อนได้ง่ายขึ้น จากข้อมูลที่เป็นตารางๆ ทำให้เราไม่เห็นความสัมพันธ์ของข้อมูล มาสร้างความรู้และความเข้าใจใหม่ๆ ในข้อมูลที่มีอยู่ และสามารถนำความรู้นั้นไปใช้ประโยชน์ในการตัดสินใจหรือการวิเคราะห์ทางธุรกิจและสังคมในอนาคตได้ด้วย
ผู้เขียนขอขอบคุณ ❤
เนื้อหาในบทความมีความผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วยครับ