สร้าง Python ในจุดและแผนภูมิของ Excel
Applies To
Excel for Microsoft 365Python ใน Excel พร้อมใช้งานแล้วสําหรับผู้ใช้ Enterprise และ Business ที่ใช้งานแชนเนลปัจจุบันบน Windows โดยเริ่มจากเวอร์ชัน 2407 (รุ่น 17830.20128) และตัวเลือก Enterprise รายเดือนบน Windows เริ่มต้นด้วยเวอร์ชัน 2408 (รุ่น 17928.20216) พร้อมใช้งานในการแสดงตัวอย่างสําหรับผู้ใช้ครอบครัวและส่วนบุคคลที่ใช้งานแชนเนลปัจจุบันบน Windows โดยเริ่มจากเวอร์ชัน 2405 (รุ่น 17628.20164) Python ใน Excel จะพร้อมใช้งานในการแสดงตัวอย่างสําหรับผู้ใช้ Education ที่ใช้งานแชนเนลปัจจุบัน (ตัวอย่าง) ผ่านโปรแกรม Microsoft 365 Insider ยังไม่พร้อมใช้งานสําหรับแชนเนลองค์กร Semi-Annual ในขณะนี้
ซึ่งจะเผยแพร่ไปยัง Excel สําหรับ Windows ก่อน จากนั้นไปยังแพลตฟอร์มอื่นๆ ในภายหลัง สําหรับข้อมูลความพร้อมใช้งานเพิ่มเติม ให้ดู 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 ไลบรารี Seabornจะถูกนําเข้าสําหรับ Python ใน Excel โดยอัตโนมัติด้วยคําสั่งนําเข้าต่อไปนี้ เพื่อให้คุณอ้างอิงด้วยนามแฝง
import seaborn as sns
เมื่อต้องการสร้างการลงจุดคู่ของชุดข้อมูลดอกไม้ไอริสกับไลบรารี Seaborn ให้ทําตามขั้นตอนต่อไปนี้:
-
ใส่ส่วนย่อยของโค้ดต่อไปนี้ในเซลล์ Python ใน Excel ส่วนย่อยของโค้ดจะจัดเก็บการลงจุดคู่เป็นตัวแปรที่เรียกว่า pairplot มันสร้างพล็อตคู่กับ sns ไลบรารี seaborn นามแฝงและฟังก์ชั่น seaborn จับคู่ pairplot = sns.pairplot(xl("Table1[#All]", headers=True)) เนื่องจากอาร์กิวเมนต์สําหรับฟังก์ชัน pairplot ส่วนย่อยของโค้ดจะใช้ฟังก์ชัน Python แบบกําหนดเอง xl() และอ้างอิงตารางแรกในเวิร์กชีต Table1 ซึ่งรวมถึงเนื้อหาทั้งตาราง (เป็น [#All]) และบันทึกย่อที่ตารางมีแถวส่วนหัว (เป็นส่วนหัว=True) ในตัวอย่างนี้ Table1 ในเวิร์กชีตจะมีชุดข้อมูล Iris
หมายเหตุ: ถ้าคุณพบข้อผิดพลาดใดๆ ให้ดู แก้ไขปัญหาข้อผิดพลาด Python ใน Excel สําหรับข้อมูลเพิ่มเติม
-
หลังจากยอมรับสูตร Python ของคุณแล้ว Python ใน Excel จะส่งกลับการแสดงภาพการลงจุดคู่ในวัตถุรูป เลือกไอคอนการ์ดในเซลล์วัตถุรูปเพื่อดูตัวอย่างการแสดงภาพ
-
เก็บการแสดงภาพเป็นวัตถุรูปภาพเพื่อใช้งานต่อสําหรับการคํานวณ Python แยกรูปภาพไปยังเส้นตาราง Excel เพื่อปรับขนาด และดูรายละเอียดเพิ่มเติมในแต่ละจุด เมื่อต้องการแยกรูปภาพไปยังเส้นตาราง ให้คลิกขวาหรือ Ctrl+คลิกบนเซลล์ที่มีวัตถุรูป แล้วเลือก แสดงการลงจุดบนเซลล์ จากเมนู
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแยกวัตถุรูป ให้ดูส่วน แยกวัตถุรูปไปยังบทความเส้นตาราง Excel ในบทความนี้
สร้างจุดกระจายด้วย Matplotlib
ตัวอย่างนี้อธิบายวิธีการสร้างจุดกระจายด้วยชุดข้อมูลตัวอย่างดอกไม้ไอริส แผนภูมิกระจายแสดงความสัมพันธ์ระหว่างตัวแปรตัวเลขสองตัวในชุดข้อมูล ตัวอย่างจะสร้างจุดกระจายที่มีลักษณะเหมือนกับสกรีนช็อตต่อไปนี้ เปรียบเทียบค่า sepal_width และค่า sepal_length
Python ใน Excel จะสร้างการแสดงภาพด้วยไลบรารีโอเพนซอร์ส Matplotlib ไลบรารี Matplotlibจะถูกนําเข้าสําหรับ Python ใน Excel โดยอัตโนมัติด้วยคําสั่งนําเข้าต่อไปนี้ เพื่อให้คุณอ้างอิงเป็นลงจุด
import matplotlib.pyplot as plt
เมื่อต้องการสร้างจุดกระจายของชุดข้อมูลดอกไม้ไอริสด้วยไลบรารี Matplotlib ให้ทําตามขั้นตอนต่อไปนี้:
-
ในเซลล์ Python ใน Excel ให้ใช้ฟังก์ชัน กระจายMatplotlib และใส่ sepal_length และ sepal_width คอลัมน์ของชุดข้อมูล Iris เป็นอาร์กิวเมนต์ ในตัวอย่างนี้ Table1 ในเวิร์กชีตจะมีชุดข้อมูล Irisplt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))
-
เพิ่มป้ายชื่อและชื่อเรื่องลงในจุดกระจาย # 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 ในเวิร์กบุ๊กของคุณได้ ถ้าคุณเลือกที่จะใส่ข้อมูลลงในเซลล์ใหม่ ตรวจสอบให้แน่ใจว่าได้ทําตามกฎลําดับการคํานวณหลักในแถวแล้วใส่หลังเซลล์แรก
-
หลังจากใส่สูตร Python ของคุณแล้ว Python ใน Excel จะส่งกลับการแสดงภาพพล็อตกระจายเป็นวัตถุรูปภาพ เลือกไอคอนการ์ดในเซลล์วัตถุรูปเพื่อดูตัวอย่างการแสดงภาพ
หมายเหตุ: ถ้าคุณพบข้อผิดพลาดใดๆ ให้ดู แก้ไขปัญหาข้อผิดพลาด Python ใน Excel สําหรับข้อมูลเพิ่มเติม
-
เก็บการแสดงภาพเป็นวัตถุรูปภาพเพื่อใช้สําหรับการคํานวณ Python ต่อไป แยกรูปภาพไปยังเส้นตาราง Excel เพื่อปรับขนาดและดูรายละเอียดเพิ่มเติม เมื่อต้องการแยกรูปภาพไปยังเส้นตาราง ให้คลิกขวาหรือ Ctrl+คลิกบนเซลล์ที่มีวัตถุรูป แล้วเลือก แสดงการลงจุดบนเซลล์ จากเมนู
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแยกวัตถุรูป ให้ดูส่วน แยกวัตถุรูปไปยังบทความเส้นตาราง Excel ในบทความนี้
แยกวัตถุรูปไปยังเส้นตาราง Excel
ดังที่สาธิตโดยตัวอย่างในบทความนี้ ไลบรารี Python เช่น seaborn และ Matplotlib สามารถส่งกลับการแสดงภาพข้อมูลไปยังเซลล์ Excel ได้ ตามค่าเริ่มต้น Python ใน Excel จะส่งกลับการแสดงภาพเหล่านี้เป็นวัตถุรูปภาพ
เลือกไอคอนการ์ดในเซลล์วัตถุรูปเพื่อดูตัวอย่างการแสดงภาพ
มีสองวิธีในการแยกรูปไปยังเส้นตาราง Excel: แสดงรูปเป็นการลงจุดบนเซลล์หรือแสดงรูปภายในเซลล์
แสดงรูปเหนือเซลล์
ทําตามขั้นตอนเหล่านี้เพื่อแสดงรูปเป็นการลงจุดบนเซลล์
-
คลิกขวาหรือ Ctrl+คลิกบนเซลล์ที่มีวัตถุรูป แล้วเลือก แสดงการลงจุดบนเซลล์ จากเมนู (หรือใช้แป้นพิมพ์ลัด Ctrl+Alt+Shift+C) ซึ่งจะสร้างสําเนาของรูปที่ลอยอยู่เหนือเส้นตาราง Excel และสามารถปรับขนาดได้อย่างง่ายดาย วัตถุรูปต้นฉบับจะยังคงอยู่ในเซลล์ต้นฉบับ
-
เลือกและลากรูปการลงจุดเพื่อย้ายไปรอบๆ เวิร์กชีตของคุณ เลือกและลากโหนดที่มุมและด้านข้างของรูปภาพเพื่อปรับขนาด
แสดงรูปภายในเซลล์
ทําตามขั้นตอนเหล่านี้เพื่อแสดงรูปภายในเซลล์
-
ส่งกลับวัตถุรูปเป็นค่า Excel เลือกเซลล์วัตถุรูปภาพ ไปที่เมนูผลลัพธ์ Python ในแถบสูตร แล้วเลือก ค่า Excel
รูปการลงจุดจะแสดงภายในเซลล์เคล็ดลับ: เมื่อต้องการสลับผลลัพธ์ของสูตร Python ระหว่างวัตถุ Python และค่า Excel ให้ใช้แป้นพิมพ์ลัด Ctrl+Alt+Shift+M เมื่อต้องการเรียนรู้แป้นพิมพ์ลัดเพิ่มเติม ให้ดู Python ในแป้นพิมพ์ลัดของ Excel
-
ขนาดของรูปการลงจุดจะขึ้นอยู่กับขนาดของเซลล์ เพิ่มขนาดของรูปโดยการเพิ่มขนาดของเซลล์ หรือโดยการผสานเซลล์
ใช้ฟอนต์ที่ต่างกันสําหรับภาษาที่ไม่ใช่ภาษาอังกฤษ
เมื่อต้องการทําแผนภูมิข้อมูลที่ใช้อักขระที่ไม่ใช่ตัวอักษรละติน เช่น จีน เกาหลี หรือไทย ให้ใช้ 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()