ทำความสะอาดพื้นหลังกราฟ
ระหว่างที่สำรวจรูปแบบระดับรัฐของสินค้าที่จำหน่ายในตลาดของเกษตรกร พบว่าบางรัฐโดดเด่นขึ้นมาเป็นพิเศษ โดย North Dakota และ New Mexico มักติดอันดับท้ายๆ ในแง่สัดส่วนของตลาดที่จำหน่ายสินค้าแต่ละประเภท ในขณะที่ Vermont มักอยู่ในอันดับต้นๆ เสมอ จึงต้องการนำเสนอรูปแบบทั่วไปของการจำหน่ายสินค้าตามรัฐ พร้อมทั้งเน้นให้เห็นรัฐที่น่าสนใจเหล่านี้ด้วย
สร้าง scatter plot ของสินค้าแต่ละประเภทตามสัดส่วนของตลาดที่จำหน่ายสินค้านั้นในแต่ละรัฐ เพื่อเน้นรัฐที่น่าสนใจ ให้ลากเส้นเชื่อมระหว่างจุดข้อมูลของแต่ละรัฐ และเพื่อให้กราฟดูสะอาดและเรียบง่าย ให้ลดองค์ประกอบพื้นหลังให้เหลือเพียงเส้นกริดที่ช่วยอ้างอิงตำแหน่ง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพัฒนาการแสดงผลข้อมูลใน Python
คำแนะนำการฝึกหัด
- ตั้งค่าพื้นหลังของกราฟให้เป็นสีขาวพร้อมเส้นกริด
- กำหนดแกน x และแกน y ของ scatter plot และ line plot ด้วย
'good'(สินค้าที่จำหน่าย) และ'prop selling'ตามลำดับ - ลบเส้นขอบ ทั้งหมด ออกจากกราฟ จำไว้ว่าโดยค่าเริ่มต้น
sns.despine()จะลบเฉพาะเส้นขอบด้านบนและด้านขวาเท่านั้น!
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Set background to white with grid
sns.set_style('____')
plt.scatter('____','____', marker = '_', alpha = 0.7, data = goods_by_state)
# Draw lines across goods for highlighted states
highlighted = goods_by_state.query("state in ['New Mexico','North Dakota','Vermont']")
sns.lineplot('____','____', 'state', data = highlighted, legend = False)
# Draw state name at end of lines
last_rows = highlighted.groupby('state', as_index = False).agg('first')
for _,row in last_rows.iterrows():
plt.annotate(row['state'], (row['good'], row['prop selling']),
ha = 'right', xytext = (5,0), textcoords = 'offset pixels')
# Remove all borders
sns.____(____ = ____, ____ = ____)
plt.show()