สร้างการลงจุดและแผนภูมิด้วย Python ใน Excel

นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac

สําหรับข้อมูลความพร้อมใช้งาน ให้ดูความพร้อมใช้งานของ Python ใน Excel หากคุณพบปัญหาใดๆ กับ Python ใน Excel โปรดรายงานปัญหาเหล่านั้นโดยการเลือกคําติชมวิธีใช้ใน> Excel

ไม่เคยใช้ Python ใน Excel ใช่หรือไม่ เริ่มต้นด้วยบทนําสู่ Python ใน Excel และเริ่มต้นใช้งาน Python ใน Excel

ใช้ไลบรารี Python โอเพนซอร์สเพื่อสร้างการลงจุดและแผนภูมิ

Python ใน Excel มาพร้อมกับชุดหลักของไลบรารี Python ที่ให้บริการโดย Anaconda บทความนี้อธิบายวิธีการใช้ไลบรารี Python เช่น seaborn และ Matplotlib เพื่อสร้างการลงจุดและแผนภูมิ เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไลบรารีโอเพนซอร์สที่พร้อมใช้งานกับ Python ใน Excel ให้ดูไลบรารีโอเพนซอร์สและ Python ใน Excel

ตัวอย่างในบทความนี้ใช้ชุดข้อมูลดอกไอริส ดาวน์โหลดเวิร์กบุ๊กตัวอย่างนี้เพื่อติดตามบทความ: python-in-excel-iris-dataset.xlsx

สร้างพล็อตคู่กับ seaborn

ตัวอย่างนี้แสดงวิธีสร้างการแสดงภาพแบบคู่ของชุดข้อมูลดอกไอริส การลงจุดแบบคู่คือเมทริกซ์ของการลงจุดและแผนภูมิที่เปรียบเทียบความสัมพันธ์ระหว่างตัวแปรแต่ละตัวในชุดข้อมูล ในกรณีนี้ ชุดข้อมูลดอกไอริสจะมีข้อมูลตัวเลขสี่คอลัมน์ ได้แก่ sepal_lengthsepal_widthpetal_length และ petal_width

ใช้ Python ใน Excel เพื่อสร้างการลงจุดคู่กับไลบรารี seaborn

Python ใน Excel สร้างการแสดงภาพด้วยไลบรารี seaborn ไลบรารี seaborn จะถูกนําเข้าสําหรับ Python ใน Excel โดยอัตโนมัติด้วยคําสั่งนําเข้าต่อไปนี้ เพื่อให้คุณสามารถอ้างอิงได้ด้วยนามแฝง sns

import seaborn as sns

เมื่อต้องการสร้างการลงจุดคู่ของชุดข้อมูลดอกไอริสด้วยไลบรารี seaborn ให้ทําตามขั้นตอนต่อไปนี้:

  1. ใส่ส่วนย่อยของโค้ดต่อไปนี้ในเซลล์ Python ใน Excel ส่วนย่อยของโค้ดจะเก็บการพล็อตคู่เป็นตัวแปรที่เรียกว่า pairplot ซึ่งจะสร้างพล็อตคู่ที่มีนามแฝงของไลบรารี seaborn sns และ pairplot ฟังก์ชัน seaborn

    pairplot = sns.pairplot(xl("Table1[#All]", headers=True))

    เป็นอาร์กิวเมนต์สําหรับฟังก์ชัน pairplot ส่วนย่อยของโค้ดจะใช้ฟังก์ชัน Python แบบกําหนดเอง xl() และอ้างอิงตารางแรกในเวิร์กชีต Table1 ซึ่งจะรวมเนื้อหาตารางทั้งหมด (เป็น [#All]) และสังเกตว่าตารางมีแถวส่วนหัว (เป็น headers=True) ในตัวอย่างนี้ Table1 ในเวิร์กชีตมีชุดข้อมูล Iris

    ดูตัวอย่างการลงจุดคู่ใน DataFrame

    หมายเหตุ

    หากคุณพบข้อผิดพลาดใดๆ ให้ดูข้อผิดพลาด แก้ไขปัญหา Python ใน Excel สําหรับข้อมูลเพิ่มเติม

  2. หลังจากการยืนยันสูตร Python แล้ว Python ใน Excel จะส่งกลับการแสดงภาพการลงจุดคู่ในวัตถุรูปภาพ เลือกไอคอนรูปบัตรในเซลล์ของวัตถุรูปเพื่อดูตัวอย่างของการแสดงภาพ

    ดูตัวอย่างการลงจุดในการ์ด DataFrame

  3. เก็บการแสดงภาพเป็นวัตถุรูปภาพเพื่อใช้ต่อสําหรับการคํานวณของ Python แยกรูปไปยังเส้นตาราง Excel เพื่อปรับขนาดและดูรายละเอียดเพิ่มเติมเกี่ยวกับการลงจุดแต่ละรายการ เมื่อต้องการแยกรูปลงในตาราง ให้คลิกขวาหรือ Ctrl+คลิกที่เซลล์ที่มีวัตถุรูป แล้วเลือก แสดงการลงจุดเหนือเซลล์ จากเมนู

    สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแยกวัตถุรูปภาพ ให้ดูส่วนบทความแยก วัตถุรูปภาพลงในเส้นตาราง Excel ในบทความนี้

สร้างแผนภาพกระจายด้วย Matplotlib

ตัวอย่างนี้อธิบายวิธีการสร้างแผนภูมิกระจายด้วยชุดข้อมูลตัวอย่างดอกไอริส การลงจุดแบบกระจายแสดงความสัมพันธ์ระหว่างตัวแปรตัวเลขสองตัวในชุดข้อมูล ตัวอย่างจะสร้างแผนผังกระจายที่มีลักษณะเหมือนสกรีนช็อตต่อไปนี้ โดยเปรียบเทียบค่า sepal_width และค่า sepal_length

ใช้ Python ใน Excel เพื่อสร้างแผนภูมิกระจายด้วยไลบรารี matplotlib

Python ใน Excel สร้างการแสดงภาพด้วยไลบรารีโอเพนซอร์ส Matplotlib ไลบรารี Matplotlib ถูกนําเข้าสําหรับ Python ใน Excel โดยอัตโนมัติด้วยคําสั่งนําเข้าต่อไปนี้ ซึ่งให้คุณอ้างอิงเป็น plt

import matplotlib.pyplot as plt

เมื่อต้องการสร้างการลงจุดแบบกระจายของชุดข้อมูลดอกไอริสด้วยไลบรารี Matplotlib ให้ทําตามขั้นตอนต่อไปนี้:

  1. ในเซลล์ Python ใน Excel ให้ใช้ฟังก์ชันการกระจาย Matplotlib และใส่คอลัมน์ sepal_length และ sepal_width ของชุดข้อมูลม่านตาเป็นอาร์กิวเมนต์ ในตัวอย่างนี้ Table1 ในเวิร์กชีตมีชุดข้อมูล Iris

    plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))

  2. เพิ่มป้ายชื่อและชื่อลงในแผนภาพกระจาย

    # Label the x and y axes of the plot.
    plt.xlabel('sepal_length')
    plt.ylabel('sepal_width')

    # Add a title to the plot.
    plt.title('Sepal length and width analysis')

    หมายเหตุ

    คุณสามารถเพิ่มส่วนย่อยของโค้ดนี้เป็นบรรทัดโค้ดเพิ่มเติมหลังจากสูตร Python ในขั้นตอนก่อนหน้า ในเซลล์ Excel เดียวกัน หรือคุณสามารถใส่ลงในเซลล์ Python ใน Excel ใหม่ในเวิร์กบุ๊กของคุณก็ได้ ถ้าคุณเลือกที่จะใส่ข้อมูลลงในเซลล์ใหม่ ตรวจสอบให้แน่ใจว่าได้ทําตามกฎลําดับการคํานวณแถวหลัก และใส่กฎลําดับหลังเซลล์แรก

  3. หลังจากการยืนยันสูตร Python แล้ว Python ใน Excel จะส่งกลับการแสดงภาพแผนภูมิกระจายเป็นวัตถุรูปภาพ เลือกไอคอนรูปบัตรในเซลล์ของวัตถุรูปเพื่อดูตัวอย่างของการแสดงภาพ

    ดูตัวอย่างของแผนภูมิกระจายใน DataFrame

    หมายเหตุ

    หากคุณพบข้อผิดพลาดใดๆ ให้ดูข้อผิดพลาด แก้ไขปัญหา Python ใน Excel สําหรับข้อมูลเพิ่มเติม

  4. เก็บการแสดงภาพเป็นวัตถุรูปภาพเพื่อใช้ต่อสําหรับการคํานวณของ Python แยกรูปไปยังเส้นตาราง Excel เพื่อปรับขนาดและดูรายละเอียดเพิ่มเติมจากรูปนั้น เมื่อต้องการแยกรูปลงในตาราง ให้คลิกขวาหรือ Ctrl+คลิกที่เซลล์ที่มีวัตถุรูป แล้วเลือก แสดงการลงจุดเหนือเซลล์ จากเมนู

    สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแยกวัตถุรูปภาพ ให้ดูส่วนบทความแยก วัตถุรูปภาพลงในเส้นตาราง Excel ในบทความนี้

แยกวัตถุรูปลงในเส้นตาราง Excel

ตามที่แสดงให้เห็นโดยตัวอย่างในบทความนี้ ไลบรารี Python เช่น seaborn และ Matplotlib สามารถส่งกลับการแสดงภาพข้อมูลไปยังเซลล์ Excel ได้ ตามค่าเริ่มต้น Python ใน Excel จะส่งกลับการแสดงภาพเหล่านี้เป็นวัตถุรูปภาพ

เลือกไอคอนบัตรในเซลล์ของวัตถุรูปภาพเพื่อดูการแสดงตัวอย่างของการแสดงภาพ

ดูตัวอย่างการลงจุดในการ์ด DataFrame

วิธีการแยกรูปลงในเส้นตาราง Excel มีด้วยกันสองวิธี ได้แก่ แสดงรูปเป็นการลงจุดเหนือเซลล์ หรือแสดงรูปภายในเซลล์

แสดงรูปเหนือเซลล์

ทําตามขั้นตอนเหล่านี้เพื่อแสดงรูปเป็นการลงจุดเหนือเซลล์

  1. คลิกขวาหรือ Ctrl+คลิกบนเซลล์ที่มีวัตถุรูปภาพ แล้วเลือก แสดงการลงจุดเหนือเซลล์ จากเมนู (หรือใช้แป้นพิมพ์ลัด Ctrl+Alt+Shift+C) การทําเช่นนี้จะสร้างสําเนาของรูปภาพที่ลอยอยู่เหนือเส้นตาราง Excel และสามารถปรับขนาดได้อย่างง่ายดาย วัตถุรูปภาพต้นฉบับจะยังคงอยู่ในเซลล์ต้นฉบับ

  2. เลือกและลากภาพการลงจุดเพื่อย้ายไปรอบๆ เวิร์กชีตของคุณ เลือกและลากโหนดที่มุมและด้านข้างของรูปเพื่อปรับขนาด

    สร้างการแสดงภาพการลงจุดแบบลอยตัวด้วยไอคอน สร้างการอ้างอิง

แสดงรูปภายในเซลล์

ทําตามขั้นตอนเหล่านี้เพื่อแสดงรูปภายในเซลล์

  1. ส่งกลับวัตถุรูปภาพเป็นค่า Excel เลือกเซลล์วัตถุรูปภาพ ไปที่เมนูผลลัพธ์ Python ในแถบสูตร แล้วเลือกค่า Excel

    ใช้เมนูผลลัพธ์ Python ถัดจากแถบสูตรเพื่อเปลี่ยนชนิดผลลัพธ์

    รูปที่ลงจุดจะแสดงภายในเซลล์

    เคล็ดลับ

    หากต้องการสลับผลลัพธ์ของสูตร Python ระหว่างวัตถุ Python และค่า Excel ให้ใช้แป้นพิมพ์ลัด Ctrl+Alt+Shift+M หากต้องการเรียนรู้แป้นพิมพ์ลัดเพิ่มเติม โปรดดูแป้นพิมพ์ลัด Python ใน Excel

  2. ขนาดของรูปการลงจุดขึ้นอยู่กับขนาดของเซลล์ เพิ่มขนาดของรูป โดยการเพิ่มขนาดของเซลล์ หรือด้วยการผสานเซลล์

ใช้ฟอนต์ต่างๆ สําหรับภาษาที่ไม่ใช่ภาษาอังกฤษ

เมื่อต้องการสร้างแผนภูมิข้อมูลที่ใช้อักขระที่ไม่ใช่ตัวอักษรละติน เช่น จีน เกาหลี หรือไทย ให้ใช้excel.FontPath ตามค่าเริ่มต้น Python ใน Excel จะแสดงอักขระที่ไม่ใช่ตัวอักษรละตินเป็นสี่เหลี่ยมว่าง ('□') ในการแก้ไขปัญหานี้ ให้คุณ excel.FontPath ใช้โมดูลเพื่อ excel เรียกฟอนต์อื่นและแสดงอักขระ

ฟอนต์ต่อไปนี้มีให้ใช้งาน: แอตทริบิวต์จะถูกผ excel.FontPath นวกไว้ในโค้ด Python ของคุณ เส้นทางอ้างอิงไปยังไฟล์ฟอนต์ที่ถูกเรียกโดยแอตทริบิวต์

แอตทริบิวต์ เส้นทาง
เบงกาลี /usr/share/fonts/Vrinda.ttf
CHINESE_SIMPLIFIED /usr/share/fonts/SimSun.ttf
CHINESE_TRADITIONAL /usr/share/fonts/MingLiU.ttf
ฮินดี /usr/share/fonts/Mangal.ttf
ญี่ปุ่น /usr/share/fonts/Meiryo.ttf
เกาหลี /usr/share/fonts/Batang.ttf
ไทย /usr/share/fonts/THSarabunPSK.ttf

ใช้ Excel FontPath เพื่อแสดงป้ายชื่อการลงจุดภาษาจีนประยุกต์

สกรีนช็อตต่อไปนี้แสดงแผนภูมิที่มีป้ายชื่อลายจุดเป็นอักขระภาษาจีนประยุกต์โดยใช้excel.FontPath ตัวอย่างโค้ดหลังจากภาพหน้าจอจะสาธิตวิธีการใช้เพื่อแสดง excel.FontPath.CHINESE_SIMPLIFIED อักขระจากไลบรารีภาษาจีนประยุกต์

แผนภูมิที่มีการแสดงอักขระอย่างถูกต้อง

ตัวอย่างโค้ดโดยใช้ Excel FontPath

ตัวอย่างโค้ดนี้แสดงวิธีใช้ในการสร้าง excel.FontPath.CHINESE_SIMPLIFIED การลงจุดและอักขระภาษาจีนประยุกต์ในป้ายชื่อการลงจุดที่แสดงในสกรีนช็อตก่อนหน้านี้

-

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# Set the font path. This returns '/usr/share/fonts/simsun.ttf'.
font_path = excel.FontPath.CHINESE_SIMPLIFIED

# Point the properties to the font path.
font_properties = FontProperties(fname=font_path)
plt.rcParams['font.family'] = font_properties.get_name()

# Make the plot.
myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文')

# Show the plot.
plt.show()