ปรับแต่งกราฟสำหรับอุปกรณ์มือถือ
ชื่อแกน x นั้นค่อนข้างซ้ำซ้อนอยู่แล้ว เนื่องจากได้เพิ่มป้ายกำกับสำหรับทั้งสองปีไปแล้ว ในขั้นตอนนี้จะเพิ่มป้ายกำกับประเทศลงในกราฟ ซึ่งจะทำให้สามารถลบแกนทั้งหมดออกได้
ในแบบฝึกหัดนี้ คุณจะได้พบกับสิ่งที่อาจเป็นเรื่องใหม่ นั่นคือ geometry แต่ละตัว เช่น geom_text() สามารถรับชุดข้อมูลของตัวเองได้ โดยไม่ต้องใช้ชุดข้อมูลที่ส่งให้กับ ggplot() ตั้งต้น ในแบบฝึกหัดนี้จำเป็นต้องใช้วิธีนี้ เนื่องจากต้องการเพิ่มป้ายกำกับ เพียงหนึ่งอัน ต่อลูกศรแต่ละอัน หากใช้ชุดข้อมูลเดิม ilo_data จะได้ป้ายกำกับสองอันต่อประเทศ เพราะมีข้อมูลสองแถวต่อประเทศ ได้แก่ ปี 1996 และปี 2006
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสื่อสารด้วยข้อมูลใน Tidyverse
คำแนะนำการฝึกหัด
- ชุดข้อมูลใหม่
median_working_hoursถูกสร้างขึ้นแล้ว เพื่อให้มีป้ายกำกับเพียงอันเดียวต่อประเทศ ลองดูโครงสร้างของมันด้วยstr() - ใช้
median_working_hoursเป็นอาร์กิวเมนต์dataในการเรียกgeom_text()ใหม่ เพื่อเพิ่มป้ายกำกับให้แต่ละประเทศ- ระบุ aesthetic ที่จำเป็นสำหรับ
geom_text()ให้ถูกต้อง ได้แก่xและlabelโดยชี้ไปยังตัวแปรที่ถูกต้องในชุดข้อมูลmedian_working_hours
- ระบุ aesthetic ที่จำเป็นสำหรับ
- ลบแกนทั้งหมดและเส้นกริดพื้นหลังออก โดยระบุฟังก์ชัน
element_blank()สำหรับอาร์กิวเมนต์axis.และpanel.gridทั้งหมดในtheme()ที่กำหนดเอง - หลังจากรันโค้ดแล้ว ให้ปรับขนาดหน้าต่างกราฟทางด้านขวาเพื่อจำลองหน้าจออุปกรณ์มือถือในโหมดแนวตั้ง (แคบและสูง) ป้ายกำกับทั้งหมดจะพอดีกับพื้นที่แสดงกราฟ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Compute temporary data set for optimal label placement
median_working_hours <- ilo_data %>%
group_by(country) %>%
summarize(median_working_hours_per_country = median(working_hours)) %>%
ungroup()
# Have a look at the structure of this data set
___
ilo_dot_plot +
# Add label for country
geom_text(data = ___,
aes(y = country,
x = ___,
label = ___),
vjust = 2,
family = "Bookman",
color = "gray25") +
# Remove axes and grids
theme(
axis.ticks = ___,
axis.title = ___,
axis.text = ___,
panel.grid = ___,
# Also, let's reduce the font size of the subtitle
plot.subtitle = element_text(size = 9)
)