Pandas ได้ช่วยเหลือเราในขั้นตอนของการประมวลผลข้อมูลล่วงหน้า แม้ว่าในกรณีหนึ่ง ในขณะที่สร้างฮิสโตแกรม เรายังใช้โมดูลอื่นจาก Pandas – plotting
.
เราจงใจหลีกเลี่ยงมาจนถึงตอนนี้ เพราะการแนะนำก่อนหน้านี้จะทำให้เกิดคำถามมากกว่าที่จะตอบ กล่าวคือ แพนด้า และ Matplotlib เป็นคู่หูที่แพร่หลาย ซึ่ง Pandas ได้เริ่มรวมฟังก์ชันการทำงานของ Matplotlib แล้ว มัน หนัก อาศัย Matplotlib ในการลงจุดใดๆ และคุณจะพบกับฟังก์ชัน Matplotlib มากมายที่รวมอยู่ในซอร์สโค้ด หรือคุณสามารถใช้แบ็กเอนด์อื่นๆ สำหรับการวางแผน เช่น พล็อต และ Bokeh.
อย่างไรก็ตาม นุ่นยังแนะนำให้เรารู้จักกับสองแปลงที่ ไม่ได้ ส่วนหนึ่งของประเภทพล็อตมาตรฐานของ Matplotlib เช่น KDE, แอนดรูว์ เคอร์เวส, Bootstrap พล็อต และ เมทริกซ์กระจาย.
พื้นที่ plot()
หน้าที่ของแพนด้า DataFrame
ใช้แบ็กเอนด์ที่ระบุโดย plotting.backend
และขึ้นอยู่กับ kind
อาร์กิวเมนต์ – สร้างพล็อตโดยใช้ไลบรารีที่กำหนด เนื่องจากมีความเหลื่อมล้ำกันมากมาย – จึงไม่มีประโยชน์ที่จะครอบคลุมประเภทพล็อตเช่น line
, bar
, hist
และ scatter
. พวกเขาจะผลิตแปลงเดียวกันมากด้วยรหัสเดียวกันกับที่เราเคยทำกับ Matplotlib
เราจะดูเพียงสั้น ๆ ที่ plot()
ฟังก์ชั่นตั้งแต่กลไกพื้นฐานได้รับการสำรวจแล้ว ให้เน้นที่แปลงที่เรา ไม่ได้ ทำกับ Matplotlib ได้แล้ว
นี่จะเป็นบทที่สั้นมาก เนื่องจากความสามารถในการวางแผนและการแสดงภาพของ Pandas นั้นอ่อนเมื่อเปรียบเทียบกับ Matplotlib – แต่ก็ยังมีประโยชน์ที่จะรู้บางส่วนเหล่านี้ รวมทั้งตระหนักถึงความสามารถในการพล็อตจาก DataFrame
โดยตรง
พื้นที่ DataFrame.plot() ฟังก์ชัน
พื้นที่ plot()
ฟังก์ชั่นยอมรับ x
และ y
คุณสมบัติและ kind
ข้อโต้แย้ง. อีกทางหนึ่งเพื่อหลีกเลี่ยง kind
อาร์กิวเมนต์คุณยังสามารถเรียก DataFrame.plot.kind()
แทนและผ่านใน x
และ y
คุณสมบัติ
ค่าที่ยอมรับสำหรับ kind
อาร์กิวเมนต์คือ: line
, bar
, barh
(แถบแนวนอน), hist
, box
, kde
, density
(คำพ้องสำหรับ kde
), area
, pie
, scatter
และ hexbin
(คล้ายกับแผนที่ความร้อน)
import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] df_eu.plot.bar(x = 'Year', y = 'Value')
df_eu.plot.line(x = 'Year', y = 'Value')
df_eu.plot.box(x='Value') plt.show()
แทนที่จะให้ Series
อินสแตนซ์อย่างเราทำเพื่อ Matplotlib – ก็เพียงพอที่จะให้ ชื่อคอลัมน์และเนื่องจากคุณกำลังเรียก plot()
ฟังก์ชันบน DataFrame
คุณกำลังเห็นภาพ เป็นเรื่องง่ายสำหรับ Pandas ที่จะจับคู่ค่าสตริงเหล่านี้กับชื่อคอลัมน์ที่เหมาะสม
การโทรแต่ละครั้งเหล่านี้ทำให้เกิดการโทรใหม่ Figure
อินสแตนซ์และแปลงค่าที่เหมาะสมกับมัน:
เพื่อพล็อตหลายแกนบนเดียวกัน Figure
คุณสามารถสร้าง Figure
และหนึ่งหรือมากกว่า Axes
ผ่านทาง plt.subplots()
และมอบหมายตามความเหมาะสม Axes
ไป ax
ข้อโต้แย้งของแต่ละคน plot.plot_type()
โทร:
import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] fig, ax = plt.subplots(3, 1) df_eu.plot.box(x='Value', ax = ax[0])
df_eu.plot.line(x = 'Year', y = 'Value', ax = ax[1])
df_eu.plot.bar(x = 'Year', y = 'Value', rot = 45, ax = ax[2]) plt.show()
อาร์กิวเมนต์มาตรฐานบางตัว เช่น the rotation
อาร์กิวเมนต์แตกต่างกันจริงใน plot()
โทร. ตัวอย่างเช่น, rotation
สั้นลงถึง rot
. สิ่งนี้ทำให้ยุ่งยากเล็กน้อยในการ แค่เปลี่ยน ระหว่าง Matplotlib และ Pandas เนื่องจากคุณมักจะจบลงที่หน้าเอกสาร เพียงแค่ตรวจสอบว่าข้อโต้แย้งใดที่สามารถใช้ได้และข้อใดที่ไม่สามารถทำได้
ตอนนี้แทนที่จะสร้างใหม่ Figure
or Axes
ตัวอย่าง แต่ละแปลงเหล่านี้จะประจำการอยู่ในความเหมาะสม Axes
อินสแตนซ์ที่เราได้จัดเตรียมไว้ด้วย:
โดยทั่วไป การวางแผนด้วย Pandas นั้นสะดวกและรวดเร็ว – แต่สำหรับการวางแผน Bar Plots, Line Plots และ Box Plots คุณอาจต้องการใช้ Matplotlib เป็นทั้งเอ็นจิ้นพื้นฐานที่ Pandas ใช้อย่างหลีกเลี่ยงไม่ได้ และยังมีตัวเลือกการปรับแต่งเพิ่มเติมอีกด้วย และคุณไม่จำเป็นต้องจำข้อโต้แย้งชุดใหม่ที่คุณสามารถใช้กับแผนการของ Pandas
ที่ถูกกล่าวว่าสำหรับบางแปลงคุณอาจต้องการที่จะชอบ นุ่นเนื่องจากจะต้องสร้างด้วยตนเองใน Matplotlib และบางรายการก็ยุ่งยากจนไม่คุ้มกับความพยายาม เช่น สาย KDE
หมีแพนด้า พล็อต โมดูล
อะไร DataFrame
มีการนำเสนอในแง่ของการแสดงภาพไม่ใช่เรื่องใหม่สำหรับเรา อย่างไรก็ตาม โมดูลพื้นฐานที่พวกเขาเรียกว่า pandas.plotting
ทำ. plotting
โมดูลมีฟังก์ชันหลายอย่างที่เราสามารถใช้ได้ เช่น autocorrelation_plot()
, bootstrap_plot()
และ scatter_matrix()
.
แต่ละคนยอมรับ a . อย่างใดอย่างหนึ่ง Series
หรือ DataFrame
ขึ้นอยู่กับประเภทของการแสดงภาพที่พวกเขากำลังสร้าง ตลอดจนพารามิเตอร์บางอย่างสำหรับข้อมูลจำเพาะการวางแผนและการจัดรูปแบบ
Bootstrap พล็อต
ร่วมมือ เป็นกระบวนการสุ่มตัวอย่าง (พร้อมการแทนที่) ชุดข้อมูล และคำนวณการวัดความถูกต้อง เช่น อคติ, ความแปรปรวน และ ช่วงความเชื่อมั่น สำหรับการสุ่มตัวอย่าง “ด้วยการแทนที่” ในทางปฏิบัติหมายความว่าแต่ละองค์ประกอบที่เลือกแบบสุ่มสามารถเลือกได้อีกครั้ง โดยไม่ต้องเปลี่ยน หมายความว่าหลังจากแต่ละองค์ประกอบที่เลือกแบบสุ่มแล้ว จะถูกลบออกจากพูลสำหรับตัวอย่างถัดไป
A Bootstrap พล็อตสร้างขึ้นโดย Pandas bootstraps สถิติเฉลี่ย ค่ามัธยฐาน และระดับกลางของชุดข้อมูล ตามตัวอย่าง size
หลังจากนั้นจะแสดงโครงเรื่องผ่านทาง plt.show()
. อาร์กิวเมนต์เริ่มต้นสำหรับ size
และ samples
เป็น 50
และ 500
ตามลำดับ
ซึ่งหมายความว่าสำหรับคุณสมบัติ เราสุ่มตัวอย่าง 50
ค่านิยม จากนั้น ตัวอย่างย่อย 50 องค์ประกอบจะถูกสร้างขึ้น (ข้อมูลสังเคราะห์) สำหรับค่า 50 ค่าเหล่านั้น และคำนวณสถิติสรุป (ค่าเฉลี่ย/ค่ามัธยฐาน/ช่วงกลาง) สำหรับค่าเหล่านั้น กระบวนการนี้ซ้ำแล้วซ้ำอีก 500
ครั้ง ดังนั้นในท้ายที่สุด เรามีสถิติสรุป 500 รายการ:
import pandas as pd
from matplotlib import pyplot as plt df = pd.read_csv('./datasets/gdp_csv.csv')
df_eu = df.loc[df['Country Name'] == 'European Union'] pd.plotting.bootstrap_plot(df_eu['Value']) plt.show()
พล็อตความสัมพันธ์อัตโนมัติ
พล็อตความสัมพันธ์อัตโนมัติ ใช้เพื่อตรวจสอบการสุ่มข้อมูลสำหรับข้อมูลอนุกรมเวลา หลายรายการ ความสัมพันธ์อัตโนมัติ ถูกคำนวณสำหรับการประทับเวลาที่แตกต่างกัน และหากข้อมูลเป็นแบบสุ่มอย่างแท้จริง ความสัมพันธ์จะใกล้ศูนย์ ถ้าไม่ – ความสัมพันธ์จะมากกว่าศูนย์
มาพลอต Autocorrelation Plot สองแบบกัน – อันหนึ่งกับของเรา ความคุ้มค่า คุณสมบัติและอีกอันหนึ่งที่มี a Series
เต็มไปด้วยค่าสุ่ม:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('gdp_csv.csv')
# Filter DataFrame for the EU
df_eu = df.loc[df['Country Name'] == 'European Union']
# Generate 50 random integers between 0 and 100, and turn into a Series
random_series = pd.Series(np.random.randint(0, 100, size=50)) # Plot Autocorrelation Plot for the *Value* feature
pd.plotting.autocorrelation_plot(df_eu['Value'])
# Plot Autocorrelation Plot for the *random_series*
pd.plotting.autocorrelation_plot(random_series) plt.show()
พล็อต Autocorrelation สำหรับ random_series
ควรหมุนรอบ 0
เนื่องจากเป็นข้อมูลสุ่มในขณะที่พล็อตสำหรับ Value
คุณลักษณะจะไม่:
เป็นที่น่าสังเกตว่า Autocorrelation วัดหนึ่ง ฟอร์ม ของการสุ่ม เนื่องจากไม่มีความสัมพันธ์กัน แต่มีข้อมูลที่ไม่สุ่มอยู่ หากไม่ใช่แบบสุ่ม แต่ไม่มีความสัมพันธ์ที่มีนัยสำคัญ – พล็อตความสัมพันธ์อัตโนมัติจะระบุว่าข้อมูลนั้นเป็นแบบสุ่ม
เมทริกซ์กระจาย
เมทริกซ์กระจาย พล็อต a ตะแกรง ของ Scatter Plots สำหรับคุณลักษณะทั้งหมดเทียบกับคุณลักษณะทั้งหมด เนื่องจากสิ่งนี้ย่อมเปรียบเทียบแต่ละฟีเจอร์กับตัวมันเองเช่นกัน – the เส้นทแยงมุม โดยที่สิ่งนี้เกิดขึ้นมักจะถูกแทนที่ด้วย a Histogram ของคุณลักษณะนั้น แทนที่จะเป็นโครงแบบกระจาย เมทริกซ์กระจาย ยังเป็นที่รู้จักกันในนาม แปลงคู่และซีบอร์นเสนอ a pairplot()
ทำงานเพื่อการนี้เท่านั้น
พื้นที่ scatter_matrix()
ฟังก์ชั่นยอมรับ a DataFrame
และสร้าง Scatter Matrix สำหรับคุณสมบัติเชิงตัวเลขทั้งหมด และส่งคืนอาร์เรย์ 2D ของ Axes
อินสแตนซ์ที่ประกอบด้วย Scatter Matrix หากต้องการปรับแต่งอะไรเกี่ยวกับสิ่งเหล่านี้ คุณจะต้องทำซ้ำผ่านสิ่งเหล่านี้:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt df = pd.read_csv('worldHappiness2019.csv') axes = pd.plotting.scatter_matrix(df, diagonal='hist') for ax in axes.flatten(): # Rotate back to 0 degrees since they're automatically rotated by 90 ax.yaxis.label.set_rotation(0) # As to not overlap with the Axes instances, set the ticklabel # alignment to 'right' ax.yaxis.label.set_ha('right') plt.show()
ส่งผลให้มี Scatter Matrix ที่ค่อนข้างใหญ่ของคุณลักษณะทั้งหมดเมื่อเทียบกับคุณลักษณะอื่นๆ ทั้งหมด:
นอกจากนี้คุณยังสามารถผ่านใน diagonal
อาร์กิวเมนต์ซึ่งยอมรับ 'hist'
or 'kde'
เพื่อระบุประเภทของแผนภาพการกระจายที่คุณต้องการลงจุดในแนวทแยงเช่นเดียวกับ alpha
โดยระบุความโปร่งแสงของเครื่องหมายในแผนภาพกระจาย
- 100
- เกี่ยวกับเรา
- ทั้งหมด
- แล้ว
- อื่น
- ข้อโต้แย้ง
- รอบ
- กำลัง
- บิต
- กล่อง
- โทรศัพท์
- ความสามารถในการ
- บท
- การตรวจสอบ
- รหัส
- คอลัมน์
- ร่วมกัน
- ประเทศ
- คู่
- การสร้าง
- ข้อมูล
- ต่าง
- การกระจาย
- ในทวีปยุโรป
- สหภาพยุโรป
- ตัวอย่าง
- ลักษณะ
- คุณสมบัติ
- โฟกัส
- ฟังก์ชัน
- ฟังก์ชั่น
- General
- สร้าง
- HTTPS
- IT
- ที่รู้จักกัน
- ใหญ่
- ที่มีขนาดใหญ่
- ห้องสมุด
- Line
- แผนที่
- มดลูก
- มากที่สุด
- คือ
- ชื่อ
- ใกล้
- เสนอ
- เสนอ
- Options
- อื่นๆ
- ระยะ
- สระ
- กระบวนการ
- ก่อ
- ให้
- วัตถุประสงค์
- ยก
- RE
- แทนที่
- ผลสอบ
- รับคืน
- กล่าวว่า
- เลือก
- ชุด
- สั้น
- สำคัญ
- คล้ายคลึงกัน
- So
- รหัสแหล่งที่มา
- สเปค
- ข้อความที่เริ่ม
- สถิติ
- ที่มา
- ตลอด
- สหภาพ
- us
- ความคุ้มค่า
- การสร้างภาพ
- อะไร
- วิกิพีเดีย
- คุ้มค่า
- X
- ปี
- เป็นศูนย์