ปรับแต่งกราฟใหม่
คุณพบว่าความสัมพันธ์ระหว่างละติจูดของตลาดเกษตรกรกับจำนวนเดือนที่ตลาดเปิดทำการนั้นน่าสนใจมาก โดยหลักการแล้ว ยิ่งอยู่ทางใต้มากเท่าไร ฤดูกาลเพาะปลูกก็ยิ่งยาวนานขึ้น ทำให้ตลาดสามารถเปิดได้นานกว่า เพื่อนำเสนอเรื่องราวนี้ จึงสรุปข้อมูลตลาดในระดับรัฐ แล้วสร้าง heatmap โดยให้แต่ละคอลัมน์แทนระยะเวลาที่ตลาดเปิดทำการ แต่ละแถวแสดงการกระจายของ "ฤดูกาล" ตลาดของแต่ละรัฐ และเรียงแถวตามค่าละติจูดของรัฐจากมากไปน้อย

heatmap แบบค่าเริ่มต้นยังมีจุดที่ต้องปรับปรุงอีกมาก ลองลดขนาดตัวอักษรลงเพื่อให้ชื่อรัฐแต่ละรัฐแสดงผลได้โดยไม่ทับซ้อนกัน นอกจากนี้ โทนสีเข้มยังดูขัดกับพื้นหลังสีอ่อน และแถบสีแบบต่อเนื่องก็ไม่ได้ช่วยให้ผู้อ่านเข้าใจได้ง่ายขึ้น เนื่องจากจุดประสงค์หลักคือการเปรียบเทียบเชิงสัมพัทธ์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพัฒนาการแสดงผลข้อมูลใน Python
คำแนะนำการฝึกหัด
- ลดขนาดตัวอักษรลงเหลือ 85% ของค่าเริ่มต้น เพื่อให้ชื่อรัฐแสดงผลได้โดยไม่แออัด
- สร้างชุดสีใหม่ที่ไล่จาก
'white'ไปยัง'steelblue' - แทนที่ชุดสีเริ่มต้นด้วยชุดสีที่สร้างขึ้นใหม่
- ลบแถบสีแบบต่อเนื่องที่แสดงอยู่ข้าง heatmap ออก
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Decrease font size so state names are less crowded
sns.set(____ = ____)
# Switch to an appropriate color palette
blue_pal = sns.light_palette("____", as_cmap = True)
# Order states by latitude
g = sns.heatmap(markets_by_month.reindex(state_by_lat),
# Add gaps between cells
linewidths = 0.1,
# Set new palette and remove color bar
cmap = ____, cbar = ____,
yticklabels = True)
# Rotate y-axis ticks
g.set_yticklabels(g.get_yticklabels(), rotation = 0)
plt.title('Distribution of months open for farmers markets by latitude')
plt.show()