เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ปรับแต่งกราฟสำหรับอุปกรณ์มือถือ

ชื่อแกน 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
  • ลบแกนทั้งหมดและเส้นกริดพื้นหลังออก โดยระบุฟังก์ชัน 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)
  )
แก้ไขและรันโค้ด