Category: Python

  • Intro to Python: ทำความรู้จักกับภาษา Python และวิธีใช้งานเบื้องต้น สำหรับผู้เริ่มต้น พร้อมตัวอย่าง

    Intro to Python: ทำความรู้จักกับภาษา Python และวิธีใช้งานเบื้องต้น สำหรับผู้เริ่มต้น พร้อมตัวอย่าง

    ในบทความนี้ เราจะไปทำความรู้จักกับภาษา Python กัน:

    • Python คืออะไร?
    • วิธีเขียน Python เบื้องต้น
    • Data types ใน Python
    • การทำงานกับ data types ใน Python

    ถ้าพร้อมแล้ว ไปเริ่มกันเลย


    1. 🐍 Python คืออะไร?
    2. 🏁 Getting Started With Python
    3. 👶 Baby Steps
      1. 🔢 (1) Basic Arithmetic
      2. 📦 (2) Variables
    4. 🍞 Data Types
    5. 👉 Integre & Float
      1. 1️⃣ Arithmetic
      2. 2️⃣ Type Casting
    6. 👉 String
      1. 1️⃣ Markers of String
      2. 2️⃣ Type Casting
      3. 3️⃣ Concatenate
      4. 4️⃣ String Methods
    7. 👉 Boolean
      1. 1️⃣ Check for True & False
      2. 2️⃣ Comparison
    8. 👉 List
      1. 1️⃣ Purpose
      2. 2️⃣ Indexing & Slicing
      3. 3️⃣ Check Length
      4. 4️⃣ Add to List
      5. 5️⃣ Update List
      6. 6️⃣ Delete From List
    9. 👉 Dictionary
      1. 1️⃣ Purpose
      2. 2️⃣ Extract Values
      3. 3️⃣ Get Keys & Values
      4. 4️⃣ Add to Dictionary
      5. 5️⃣ Update Dictionary
      6. 6️⃣ Delete From Dictionary

    🐍 Python คืออะไร?

    Python เป็น high-level programming language ที่พัฒนาโดย programmer ชาวดัชต์ Guido van Rossum ในช่วง ปี ค.ศ. 1980-1990 เพื่อทำให้การเขียน programme เป็นเรื่องง่าย

    van Rossum เรียกภาษาที่คิดขึ้นมาว่า Python ตามชื่อกลุ่มนักแสดงตลกจากประเทศอังกฤษ Monty Python หรือ The Pythons เพราะคำว่า Python สั้น จำง่าย และดูลึกลับ (ไม่มีความเกี่ยวข้องกับชนิดงู Python แต่อย่างใด)

    .

    เนื่องจาก Python เป็น high-level language หรือมีความใกล้เคียงกับภาษามนุษย์ (มากกว่าภาษาคอมพิวเตอร์) จึงเป็นภาษาที่ใช้งานและทำความเข้าใจง่าย และเป็นที่นิยมของนักพัฒนาทั่วโลก

    ในปัจจุบัน (2025) Python ครองอันดับในฐานะ programming language ที่เป็นที่นิยมมากที่สุด (อ้างอิง TIOBE):

    นอกจากใช้งานง่ายแล้ว Python ยังมีข้อดีอื่น ๆ อีก ได้แก่:

    • เป็น open source
    • มี libraries รองรับการใช้งานที่มากมายและหลากหลาย
    • แก้ bug ได้ง่าย
    • ใช้ได้กับหลายระบบปฏิบัติการ ทั้ง Windows, macOS, และ Linux

    .

    การใช้งาน Python มีตั้งแต่:

    • เขียน programme
    • เขียน web application
    • ทำ web scraping
    • ทำ data analysis
    • พัฒนา AI และ machine learning

    🏁 Getting Started With Python

    สำหรับการเริ่มใช้งาน Python เราสามารถติดตั้ง Python บนคอมพิวเตอร์ของเรา โดยดาวน์โหลด Python จาก https://www.python.org/downloads/:

    หรือใช้งานผ่าน online services ฟรี เช่น:

    Note: บทความนี้มีตัวอย่าง code ใน Google Colab สามารถกดเข้าไปดูได้


    👶 Baby Steps

    หลังจากเตรียมตัวให้พร้อมแล้ว เรามาดูวิธีเขียน Python เบื้องต้นกัน

    .

    🔢 (1) Basic Arithmetic

    สำหรับก้าวแรกในการเขียน Python เรามาเริ่มจากการคิดเลขง่าย ๆ กัน เช่น:

    บวก:

    # Addition
    3 + 4
    

    ลบ:

    # Subtraction
    10 - 7
    

    คูณ:

    # Multiplication
    2 * 2
    

    หาร:

    # Division
    9 / 3
    

    เราจะเห็นได้ว่า Python สามารถคิดเลขให้ได้อย่างรวดเร็ว:

    .

    📦 (2) Variables

    ในการทำงานกับ Python เราสามารถสร้าง variable เพื่อช่วยเก็บข้อมูลได้ (แทนที่การเขียน code เรียกใช้ข้อมูลเองทุกครั้ง)

    เช่น เราสามารถเก็บเงินค่าขนม:

    # Create allowance variable
    allowance = 100
    

    และค่าใช้จ่าย:

    # Create expense variable
    expense = 40
    

    แล้วเรียกใช้งานทั้งสองค่า เช่น ดูว่าเดือนนี้เราเหลือเงินเท่าไร:

    # Calculate remaining balance
    allowance - expense
    

    ผลลัพธ์:

    60

    .

    เราสามารถ update ค่าใน variable ได้ เช่น update expense จาก 40 เป็น 70:

    # Update expense
    expense = 70
    

    ถ้าเราคำนวณเงินคงเหลือ:

    # Calculate remaining balance
    allowance - expense
    

    เราจะได้ค่าที่ต่างไปจากเดิม:

    30

    .

    สุดท้าย เราสามารถเก็บผลลัพธ์ที่ได้ ไว้ใน variable ตัวใหม่ เพื่อเรียกใช้งานในภายหลังได้:

    # Store remaining balance in a variable
    remain = allowance - expense
    
    # Check remaining balance
    remain
    

    ผลลัพธ์:

    30

    Note: เราสามารถลบ variable ได้ด้วย del() เช่น del(remain) จะลบ remain จาก Python


    🍞 Data Types

    ตอนนี้ เรารู้วิธีการทำงานกับ Python เบื้องต้นแล้ว

    เรามาทำความรู้จักกับ data type หรือประเภทข้อมูล ซึ่งเป็นตัวกำหนด action ที่เราสามารถกระทำใช้กับข้อมูลได้

    .

    โดย Python มี 6 data types ที่เราใช้บ่อย ได้แก่:

    No.TypeMeaningExample
    1Integreเลขจำนวนเต็ม11
    2Floatเลขทศนิยม3.78104
    3Stringข้อความ"Python"
    4Booleanจริง/ไม่จริงTrue
    5Listเก็บข้อมูลได้หลายประเภท[”John”, 34, True]
    6Dictionaryเก็บ key-value pair{"name": "John", "age": 34, "is_male": True}

    เราไปดูกันว่า แต่ละ data type สามารถทำอะไรได้บ้าง


    👉 Integre & Float

    .

    1️⃣ Arithmetic

    จากที่ได้เห็นก่อนหน้านี้ เราสามารถใช้ integre และ float ในการคำนวณเลขได้ เช่น:

    3 * 7
    

    และ

    7.3915 - 3.2914
    

    .

    2️⃣ Type Casting

    ทั้งนี้ เราสามารถเปลี่ยนข้อมูลบางประเภท ให้เป็น integre และ float ได้ดังนี้

    เปลี่ยนให้เป็น integre:

    # Convert to integre
    int(100.50)
    

    ผลลัพธ์:

    100

    เปลี่ยนให้เป็น float:

    # Convert to float
    float("100")
    

    ผลลัพธ์:

    100.0

    👉 String

    .

    1️⃣ Markers of String

    String ใน Python จะอยู่ใน "" หรือ '' เสมอ เช่น

    # Single-line string
    "John"
    

    หรือ

    # Single-line string
    'John'
    

    ถ้าเรามีข้อความหลายบรรทัด ให้ใช้ """ หรือ ''':

    # Multiple-line string
    """
    My name is Wick.
    John Wick.
    I'm looking for my dog.
    """
    

    หรือ

    # Multiple-line string
    '''
    My name is Wick.
    John Wick.
    I'm looking for my dog.
    '''
    

    .

    2️⃣ Type Casting

    เราสามารถเปลี่ยนข้อมูลต่าง ๆ ให้เป็น string ได้โดยใช้ str() เช่น:

    str(100)
    

    ผลลัพธ์:

    '100'

    สังเกตว่า ตอนนี้ 100 อยู่ใน '' แสดงว่า 100 เป็น string และไม่ใช่ integre แล้ว

    ถ้าเราเอา 100 นี้ไปคิดเลข ระบบจะส่ง error กลับมา เพราะเราไม่สามารถคำนวณเลขด้วย string ได้:

    TypeError                                 Traceback (most recent call last)
    <ipython-input-49-efc4e6e83db0> in <cell line: 0>()
          1 # String cannot be used in arithmetic operation
    ----> 2 str(100) + 100
    
    TypeError: can only concatenate str (not "int") to str

    .

    3️⃣ Concatenate

    แม้ว่าเราจะไม่สามารถบวกลบ string ได้ แต่เราสามารถใช้ + เพื่อรวม string เข้าด้วยกันได้ เช่น:

    "I have " + str(100) + " THB."
    

    ผลลัพธ์:

    'I have 100 THB.'

    .

    4️⃣ String Methods

    นอกจากการรวม string แล้ว เรายังมีอย่างอื่นที่ใช้กับ string ได้อีก เช่น:

    No.MethodExplain
    1upper()เปลี่ยนให้เป็นพิมพ์ใหญ่ทั้งหมด
    2lower()เปลี่ยนให้เป็นพิมพ์เล็กทั้งหมด
    3capitalize()เปลี่ยนอักษรแรกให้เป็นพิมพ์ใหญ่
    4title()เปลี่ยนอักษรแรกของทุกคำให้เป็นพิมพ์ใหญ่
    5strip()ลบ space ออกจากก่อนและหลังคำ
    6replace()แทนที่คำ
    7split()แยกคำ
    8join(iterable)รวมคำ
    9find(substring)หาตำแหน่งของคำ
    10count()นับตัวอักษรที่ต้องการ

    👉 Boolean

    Boolean เป็นเหมือนกับค่า on (True) และ off (False) ของ switch ซึ่งเป็นพื้นฐานของการทำงานของคอมพิวเตอร์

    .

    1️⃣ Check for True & False

    เราสามารถใช้ bool() เพื่อเช็กว่า ข้อมูลเราเป็น True หรือ False เช่น:

    bool("John")
    

    ผลลัพธ์:

    True

    .

    bool() จะส่ง True กลับมาทุกครั้ง ยกเว้นในกรณีเหล่านี้:

    TypeFalseExplain
    Integrebool(0)เลขเป็น 0
    Stringbool("")String ที่เป็นค่าว่าง
    Booleanbool(False)Boolean ที่เป็นค่า False
    Listbool([])List ที่เป็นค่าว่าง
    Dictionarybool({})Dictionary ที่เป็นค่าว่าง

    .

    2️⃣ Comparison

    Python จะส่งค่า boolean กลับมา เมื่อเราทำการเปรียบเทียบ เช่น:

    10 > 5
    

    ผลลัพธ์:

    True

    .

    หรือ

    10 < 5
    

    ผลลัพธ์:

    False

    👉 List

    .

    1️⃣ Purpose

    List ใช้เก็บข้อมูลหลาย ๆ ค่า เช่น:

    • Integre
    • Float
    • String
    • Boolean
    • List
    • Dictionary
    • etc.

    เช่น:

    # List can store data of different types
    a_list = [10, 15.94, "ok", True, ["egg", "milk"], {"store": "Walmart"}]
    

    .

    2️⃣ Indexing & Slicing

    เราสามารถดึงข้อมูลที่อยู่ใน list ได้ โดยการใช้ []:

    SyntaxExplain
    list[x]ดึงข้อมูลในตำแหน่งที่ x
    list[-x]ดึงข้อมูลในตำแหน่งที่ -x (นับจากหลังมาหน้า)
    list[x:y]ดึงข้อมูลในตำแหน่งระหว่าง x และ y-1 (ข้อมูลที่ y จะไม่ถูกดึงมาด้วย)
    list[-x:-y]ดึงข้อมูลในตำแหน่งระหว่าง -x และ -y-1 (ข้อมูลที่ -y จะไม่ถูกดึงมาด้วย)

    .

    เช่น เรามี list ผลไม้:

    # A list
    my_list = ["apple", "banana", "cherry"]
    

    เราสามารถดึง “apple” ออกได้โดยใช้:

    # Get "apple"
    my_list[0]
    

    ผลลัพธ์:

    'apple'

    Note: เราใช้ 0 เพราะใน Python เราจะเริ่มนับตำแหน่งที่ 1 เป็น 0

    .

    หรือเลือก “apple” ถึง “cherry”:

    # Get "apple" to "cherry"
    my_list[0:3]
    

    ผลลัพธ์:

    ['apple', 'banana', 'cherry']

    .

    3️⃣ Check Length

    เราสามารถหาความยาวของ list ได้ด้วย len() เช่น:

    # Check length
    len(my_list)
    

    ผลลัพธ์:

    3

    .

    4️⃣ Add to List

    เราสามารถเพิ่มข้อมูลลงใน list ได้ด้วย 2 วิธี:

    No.WayExample
    1.append()เพิ่มข้อมูล 1 ค่า
    2.extend()เพิ่มข้อมูลจาก list หรือ string

    .

    ตัวอย่าง .append():

    # append()
    my_list.append("orange")
    
    my_list
    

    ผลลัพธ์:

    ['apple', 'banana', 'cherry', 'orange']

    .

    ตัวอย่าง .extend():

    เรามี 2 lists ที่ต้องการรวมกัน:

    # Lists to merge
    list_1 = [1, 2, 3]
    list_2 = [4, 5, 6]
    

    ให้เราใช้ .extend() แบบนี้:

    # extend()
    list_1.extend(list_2)
    

    ผลลัพธ์:

    [1, 2, 3, 4, 5, 6]

    .

    5️⃣ Update List

    เราสามารถ update ข้อมูลใน list ได้ โดยการระบุตำแหน่งข้อมูลที่เราต้องการ update

    เช่น เราต้องการเปลี่ยน “orange” เป็น “kiwi”:

    # Update list
    my_list[3] = "kiwi"
    
    my_list
    

    เมื่อเราเรียกดู my_list เราจะเห็นว่า “orange” เปลี่ยนเป็น “kiwi”:

    ['apple', 'banana', 'cherry', 'kiwi']

    .

    6️⃣ Delete From List

    เราสามารถลบข้อมูลออกจาก list ได้ด้วย .remove()

    เช่น ลบ “kiwi” ออกจาก my_list:

    # Delete from list
    my_list.remove("kiwi")
    
    my_list
    

    ผลลัพธ์:

    ['apple', 'banana', 'cherry']

    👉 Dictionary

    .

    1️⃣ Purpose

    Dictionary มีไว้เก็บ key-value pair เช่น:

    # A dictionary
    cities = {"Thailand": "Bangkok",
              "Japan": "Tokyo",
              "Brazil": "Brasilia"}
    

    .

    2️⃣ Extract Values

    เราสามารถดึงข้อมูลออกจาก dictionary ได้ด้วยการระบุ key ของข้อมูล

    เช่น ต้องการดึง “Tokyo” ให้เราระบุ “Japan”:

    # Extract values from list
    cities["Japan"]
    

    ผลลัพธ์:

    'Tokyo'

    .

    3️⃣ Get Keys & Values

    เราสามารถดู keys และ values ทั้งหมดใน dictionary ได้ด้วย .keys() และ .values() เช่น:

    # Get keys
    cities.keys()
    

    ผลลัพธ์:

    dict_keys(['Thailand', 'Japan', 'Brazil'])

    .

    และ

    # Get values
    cities.values()
    

    ผลลัพธ์:

    dict_values(['Bangkok', 'Tokyo', 'Brasilia'])

    .

    4️⃣ Add to Dictionary

    เราสามารถเพิ่มข้อมูลลงใน dictionary ได้ โดยการใส่ key และ value ใหม่ เช่น:

    # Add to dictionary
    cities["US"] = "New York"
    
    cities
    

    ผลลัพธ์:

    {'Thailand': 'Bangkok',
     'Japan': 'Tokyo',
     'Brazil': 'Brasilia',
     'US': 'New York'}

    .

    5️⃣ Update Dictionary

    เราสามารถ update ข้อมูลใน dictionary ได้ด้วยเรียก key และใส่ value ใหม่ เช่น:

    # Update dictionary
    cities["US"] = "Washington DC"
    
    cities
    

    ผลลัพธ์:

    {'Thailand': 'Bangkok',
     'Japan': 'Tokyo',
     'Brazil': 'Brasilia',
     'US': 'Washington DC'}

    .

    6️⃣ Delete From Dictionary

    เราสามารถลบข้อมูลออกจาก dictionary ได้ด้วย del

    เช่น ลบ “US”: “Washington DC” ออก:

    # Delete from dictionary
    del cities["US"]
    
    cities
    

    ผลลัพธ์:

    {'Thailand': 'Bangkok', 'Japan': 'Tokyo', 'Brazil': 'Brasilia'}
  • Seaborn 101: มาดูวิธีสร้างกราฟ 5 แบบ + 3 วิธีตกแต่งกราฟอย่างง่ายใน Seaborn กัน

    Seaborn 101: มาดูวิธีสร้างกราฟ 5 แบบ + 3 วิธีตกแต่งกราฟอย่างง่ายใน Seaborn กัน

    ในบทความนี้ เราจะมาทำความรู้จักกับ seaborn และวิธีการใช้ seaborn เพื่อสร้างและตกแต่งกราฟเบื้องต้นกัน

    ถ้าพร้อมแล้วมาเริ่มกันเลย


    1. ⚓ Intro to Seaborn
    2. 🍔 Dataset ตัวอย่าง
    3. 🤔 ก่อนเริ่มสร้างกราฟ
    4. 💻 Syntax ของ Seaborn
    5. 👉 การสร้างกราฟพื้นฐาน
      1. 📊 1. Histograms
      2. 📊 2. Box Plots
      3. 📊 3. Scatter Plots
      4. 📊 4. Line Plots
      5. 📊 5. Bar Plots
    6. 🔵 การใช้สีเพื่อเพิ่มตัวแปรในกราฟ
    7. 🖼️ การตกแต่งกราฟ
      1. 🎨 1. สี
      2. 🎨 2. Style
      3. 🎨 3. ข้อความ
    8. 💪 สรุป Seaborn 101
    9. ⏭️ Next
      1. 🧑‍💻 Example Code on GitHub
      2. 📚 Further Reading

    ⚓ Intro to Seaborn

    seaborn เป็น library สำหรับ visualise data ใน Python ซึ่งต่อยอดมาจาก:

    • pandas: library สำหรับ data transformation
    • matplotlib: library สำหรับสร้างกราฟ

    เพราะ seaborn ต่อยอดจาก pandas และ matplotlib จึงทำให้เราสามารถใช้ 3 libraries นี้ร่วมกันได้อย่างลงตัว

    จุดเด่นหลักของ seaborn คือ ความสามารถในการสร้างกราฟที่สวยงามได้อย่างง่าย

    มาดูกันว่า การสร้างกราฟด้วย seaborn ง่ายแค่ไหน


    🍔 Dataset ตัวอย่าง

    ในบทความนี้ เราจะใช้ tips ซึ่งเป็น built-in datasets ของ seaborn เพื่อดูวิธีใช้ seaborn กัน

    tips เป็น dataset เกี่ยวกับ tip ที่พนักงานในร้านอาหารได้รับ โดยมี columns ดังนี้:

    No.ColumnDescription
    1total_billจำนวนเงินค่าอาหาร
    2tipจำนวนเงินค่า tip
    3sexเพศของคนจ่ายบิล
    4smokerสถานะการสูบบุหรี่ของคนจ่ายบิล (สูบ vs ไม่สูบ)
    5dayวันของสัปดาห์
    6timeช่วงเวลาของวัน (lunch vs dinner)
    7sizeจำนวนแขกที่มาด้วยกัน

    🤔 ก่อนเริ่มสร้างกราฟ

    ก่อนเริ่มสร้างกราฟ ให้เราทำ 2 อย่างก่อน:

    .

    (1) import seaborn ก่อน พร้อมกับ libraries อื่น ๆ ที่มักใช้ร่วมกัน:

    # Import libraries
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    

    Note: seaborn ใช้ตัวย่อว่า sns ตามชื่อตัวละคร Samuel Norman Seaborn จากทีวีซีรี่ย์ The West Wing

    .

    (2) ต่อจากนั้นให้ load dataset tips ที่จะใช้งาน:

    # Load the dataset
    tips = sns.load_dataset("tips")
    

    Note: ถ้าเรา preview ด้วย .head() เราจะเห็นข้อมูลแบบนี้:

    Dataset: tips

    ในกรณีที่เราต้องการ import dataset จากข้างนอก เราสามารถใช้ pandas ช่วยได้ เช่น pd.read_csv() เพื่อโหลดไฟล์ CSV


    💻 Syntax ของ Seaborn

    Syntax ในการสร้างกราฟด้วย seaborn มีดังนี้:

    sns.plot(data, x, y, customisation)
    plt.show()
    • sns.plot = เรียกชื่อกราฟที่ต้องการสร้าง
    • data = ชุดข้อมูลที่ใช้สร้างกราฟ
    • x = ข้อมูลแกน x
    • y = ข้อมูลแกน y
    • customisation = การตั้งค่าเพื่อตกแต่งกราฟ
    • plt.show() = แสดงกราฟบนหน้าจอ

    👉 การสร้างกราฟพื้นฐาน

    มาดูวิธีการสร้าง 5 กราฟพื้นฐานกัน:

    1. Histogram
    2. Box plot
    3. Scatter plot
    4. Line plot
    5. Bar plot

    .

    📊 1. Histograms

    Histogram เป็นกราฟเพื่อสำรวจการกระจายตัว (distribution) ของข้อมูล

    ตัวอย่าง:

    ดูการกระจายตัวของ tip ที่พนักงานได้รับ:

    # Create a histogram of tips
    sns.histplot(data = tips,
                 x = "tip")
    
    # Show the plot
    plt.show()
    

    Note: สำหรับ histogram เราจะละแกน y ไว้ เพราะ y จะแสดงความถี่ของข้อมูลบนแกน x

    ผลลัพธ์:

    Histogram

    Note: จะเห็นว่า tip ที่พนักงานได้รับ อยู่ในช่วง 0.5 ถึง 10 ดอลล่าร์ โดยอยู่ในช่วง 2 ถึง 4 ดอลล่าร์มากที่สุด

    .

    📊 2. Box Plots

    Box plot ทำหน้าที่คล้ายกับ histogram คือ ช่วยในการสำรวจการกระจายตัวของข้อมูล

    ข้อแตกต่างของ box plot จาก histogram ก็คือ เราสามารถดู distribution หลาย ๆ อันได้บน box plot

    ตัวอย่าง:

    ดูการกระจายตัวของ tip ที่ได้ แบ่งตามมื้ออาหาร

    # Create a box plot of tips by time
    sns.boxplot(data = tips,
                x = "time",
                y = "tip")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Box plot

    Note: จะเห็นว่า การกระจายตัวของ tip ในแต่ละมื้อมีความใกล้เคียงกันมาก

    .

    📊 3. Scatter Plots

    Scatter plot ใช้สำรวจความสัมพันธ์ระหว่างตัวแปร 2 ตัว

    ตัวอย่าง:

    ความสัมพันธ์ระหว่างจำนวนเงินค่าอาหาร และ tip

    # Create a scatter plot of tips vs total bill
    sns.scatterplot(data = tips,
                    x = "total_bill",
                    y = "tip")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Scatter plot

    Note: จากกราฟ เราจะเห็นได้ว่า จำนวน tip ดูเหมือนจะเพิ่มขึ้นตามจำนวนเงินค่าอาหาร

    .

    📊 4. Line Plots

    Line plot ใช้สำรวจการเปลี่ยนแปลงของตัวแปรตามช่วงเวลา หรือตามตัวแปรอีกตัว

    ตัวอย่าง:

    ดูการเปลี่ยนแปลงของ tip ตามจำนวนแขก

    # Create a line plot of tips vs party size
    sns.lineplot(data = tips,
                 x = "size",
                 y = "tip")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Line plot

    Note: กราฟแสดงให้เห็นว่า tip เพิ่มขึ้นตามจำนวนแขก

    .

    📊 5. Bar Plots

    Bar plot ใช้สำรวจตัวแปรตามการจัดกลุ่มของตัวแปรอีกตัว

    ตัวอย่าง:

    ดูจำนวน tip ในแต่ละวันของสัปดาห์

    # Create a bar plot of tips vs day of week
    sns.barplot(data = tips,
                x = "day",
                y = "tip")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Bar plot

    Note: เราจะเห็นว่า ในแต่ละวัน พนักงานได้ tip ใกล้เคียงกัน แต่ในวันเสาร์และอาทิตย์จะได้เยอะกว่าวันพฤหัสฯ และวันศุกร์


    🔵 การใช้สีเพื่อเพิ่มตัวแปรในกราฟ

    จนถึงตอนนี้ เราจะเห็นว่า กราฟที่เราสร้างได้มีตัวแปร 1-2 ตัวเท่านั้น

    ถ้าเราต้องการเพิ่มตัวแปรที่สามเข้าไป (โดยไม่เปลี่ยนประเภทกราฟ) เราสามารถทำได้ง่าย ๆ ด้วยการใช้สี ผ่านการเพิ่ม parametre ชื่อ hue

    ยกตัวอย่างเช่น:

    ใน scatter plot ที่แสดงความสัมพันธ์ระหว่าง tip และจำนวนเงินค่าอาหาร เราต้องการเพิ่มตัวแปรการสูบบุหรี่เข้าไปด้วย

    • ตัวแปร 1: tip
    • ตัวแปร 2: ค่าอาหาร
    • ตัวแปร 3: การสูบบุหรี่ของลูกค้า

    เราสามารถทำได้ตามนี้:

    # Create a scatter plot: tips vs total bill vs smoker types
    sns.scatterplot(data = tips,
                    x = "total_bill",
                    y = "tip",
                    hue = "smoker")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Third variable added as hue

    จากกราฟ เราจะเห็นได้ว่า seaborn จัดการเปลี่ยนสีข้อมูลให้เองโดยอัตโนมัติ

    ทั้งนี้ ถ้าเราต้องการเปลี่ยนกราฟเป็นสีอื่น เราต้องปรับ code ของเราเพิ่มเติม


    🖼️ การตกแต่งกราฟ

    มาดู 3 วิธีในการตกแต่งกราฟใน seaborn กัน:

    1. สี
    2. Style
    3. ข้อความ

    .

    🎨 1. สี

    ใน seaborn เราสามารถปรับสีของกราฟได้ด้วย 2 วิธี:

    1. ใช้ palette
    2. ใช้ sns.set_palette()

    .

    วิธีที่ 1: กำหนด parametre ที่เรียกว่า palette

    เช่น สำหรับ scatter plot ก่อนหน้านี้ ถ้าเราอยากเปลี่ยนข้อมูลเป็นสีดำและแดง เราสามารถเขียน code ได้ดังนี้:

    • เราสร้าง dictionary ชื่อ colours เพื่อระบุว่า สีไหนจะใช้กับการสูบบุหรี่ประเภทไหน:
    # Specify colours
    colours = {"Yes": "red",
               "No": "black"}
    
    • จากนั้น เราก็ใช้ colours เป็น argument ของ palette:
    # Create a scatter plot
    sns.scatterplot(data = tips,
                    x = "total_bill",
                    y = "tip",
                    hue = "smoker",
                    palette = colours)
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Customise colour with palette

    .

    วิธีที่ 2: เรียกใช้ sns.set_palette()

    ในกรณีที่เราไม่อยากกำหนด palette เอง เราสามารถเรียก sns.set_palette() แทนได้

    sns.set_palette() จะเรียกใช้และ apply ชุดสีที่เราต้องการให้กับกราฟของเราโดยอัตโนมัติ

    สำหรับ sns.set_palette() เราสามารถใส่ argument ได้ดังนี้:

    No.Argumentค่าสี
    1"deep"ค่า default ที่ seaborn ใช้
    2"muted"เป็น "deep" เวอร์ชันสีอ่อนกว่า
    3"pastel"สีพาสเทล
    4"dark"สีเข้ม
    5"colorblind"สีสำหรับคนตาบอดสี

    เช่น:

    สร้าง scatter plot โดยใช้ "colorblind":

    • เราเรียกใช้ sns.set_palette() โดยใส่ argument เป็นชื่อ palette ที่ต้องการใช้ (ในกรณีนี้ คือ "colorblind" ซึ่งเหมาะกับคนตาบอดสี):
    # Set the palette
    sns.set_palette("colorblind")
    
    • จากนั้น สร้าง scatter plot เหมือนเดิม (3 ตัวแปร แต่ไม่มี palette):
    # Create a scatter plot
    sns.scatterplot(data = tips,
                    x = "total_bill",
                    y = "tip",
                    hue = "smoker")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Customise colour with sns.set_palette()

    .

    🎨 2. Style

    นอกจากการเปลี่ยนสีกราฟแล้ว เรายังสามารถปรับ style ของกราฟได้ ผ่าน sns.set_style()

    โดยสำหรับ sns.set_style() เราสามารถใส่ argument ได้ดังนี้:

    No.Argumentสีพื้นหลังสีเส้นกราฟ
    1"white"ขาว ⚪ขาว ⚪
    2"dark"ดำ ⚫ดำ ⚫
    3"whitegrid"ขาว ⚪ดำ ⚫
    4"darkgrid"ดำ ⚫ขาว ⚪
    5"ticks"ขาว ⚪ไม่มี ✖️

    Note:

    • "white" เป็นค่า default ของ seaborn
    • "tick" เหมาะสำหรับกราฟที่เราต้องการเน้นแกน x และ y

    ยกตัวอย่างเช่น:

    เราต้องการปรับกราฟของเราเป็น dark theme ที่มี grid:

    • กำหนด argument ของ sns.set_style() เป็น "darkgrid":
    # Set the style
    sns.set_style("darkgrid")
    
    • สร้างกราฟที่ต้องการ:
    # Create a scatter plot
    sns.scatterplot(data = tips,
                    x = "total_bill",
                    y = "tip",
                    hue = "smoker")
    
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Customise style with sns.set_style()

    .

    🎨 3. ข้อความ

    นอกจากสีและ style แล้ว เรายังสามารถตกแต่งกราฟเพิ่มเติม ด้วยการเพิ่มข้อความกำกับกราฟ อย่าง title และ labels (ชื่อแกน x และ y) ได้ด้วย

    เราสามารถทำสิ่งนี้ได้โดยใช้ functions ของ matplotlib (plt) แบบนี้:

    • สร้างกราฟ:
    # Create a scatter plot
    sns.scatterplot(data = tips,
                    x = "total_bill",
                    y = "tip",
                    hue = "smoker")
    
    • เพิ่ม title:
    # Add a title
    plt.title("Total Bill vs Tip", fontsize = 16)
    
    • เพิ่ม labels:
    # Add labels
    plt.xlabel("Total Bill ($)", fontsize = 12)
    plt.ylabel("Tip ($)", fontsize = 12)
    
    • แสดงกราฟ
    # Show the plot
    plt.show()
    

    ผลลัพธ์:

    Adding title and labels with plt.title(), and plt.xlabel() and plt.label()

    Note: จะเห็นแล้วว่า ตอนนี้กราฟของเรามีข้อความกำกับหัวข้อกราฟ (title) รวมทั้งแกน x และ y (labels)


    💪 สรุป Seaborn 101

    ในบทความนี้ เราเรียนรู้วิธีการสร้างกราฟง่าย ๆ ใน seaborn กัน

    โดยเราเริ่มจากการสร้างกราฟพื้นฐาน 5 อย่าง:

    กราฟSeaborn
    Histogramsns.histplot()
    Box plotsns.boxplot()
    Scatter plotsns.scatterplot()
    Line plotsns.lineplot()
    Bar plotsns.barplot()

    พร้อมการเพิ่มตัวแปรที่สาม:

    เพิ่มตัวแปรที่สามSeaborn
    เพิ่มผ่านสีhue

    และจบด้วยการปรับแต่งกราฟ:

    ปรับแต่งSeaborn
    สีpalette
    sns.set_palette()
    Stylesns.set_style()
    ข้อความplt.title()
    plt.xlabel()
    plt.ylabel()

    ⏭️ Next

    หวังว่า บทความนี้จะเป็นประโยชน์สำหรับคนที่ต้องการเรียนรู้เบื้องต้นเกี่ยวกับ seaborn

    .

    🧑‍💻 Example Code on GitHub

    สำหรับใครที่ต้องการลงมือทำเอง สามารถดูตัวอย่าง code ของบทความนี้ได้ที่ GitHub

    .

    📚 Further Reading

    สำหรับคนที่ต้องการเรียนรู้เพิ่มเติม สามารถอ่านเกี่ยวกับ seaborn ได้ตาม link ด้านล่าง: