मोबाइल डिवाइस के लिए प्लॉट को ऑप्टिमाइज़ करना
x-axis का शीर्षक पहले से ही काफ़ी अनावश्यक है क्योंकि आपने दोनों वर्षों के लेबल जोड़ दिए हैं। अब आप प्लॉट में देशों के लेबल जोड़ेंगे, ताकि सभी axes हटाए जा सकें.
इस अभ्यास में, आप एक ऐसी चीज़ से गुजरेंगे जो शायद आपके लिए नई हो: geom_text() जैसी किसी एक geometry को नया डेटा सेट दिया जा सकता है, ताकि वह प्रारंभिक ggplot() कॉल में दिए गए डेटा सेट का उपयोग न करे। आपको यह इसलिए चाहिए क्योंकि आप हर तीर (arrow) पर सिर्फ़ एक लेबल जोड़ना चाहते हैं। अगर आप मूल डेटा सेट ilo_data का उपयोग करते, तो दो लेबल जुड़ते क्योंकि हर देश के लिए डेटा सेट में दो observations हैं — एक 1996 के लिए और एक 2006 के लिए।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Tidyverse में डेटा के साथ संवाद
अभ्यास निर्देश
- एक नया डेटा सेट
median_working_hoursबनाया गया है ताकि प्रति देश सिर्फ़ एक लेबल हो। इसका स्ट्रक्चरstr()से देखिए। - हर देश के लिए लेबल जोड़ने हेतु नई
geom_text()कॉल मेंdataआर्ग्युमेंट के रूप मेंmedian_working_hoursइस्तेमाल करें।geom_text()के लिए आवश्यक aesthetics सही तरीक़े से दें:xऔरlabel, जोmedian_working_hoursडेटा सेट के सही वैरिएबल्स की ओर संकेत करें।
- कस्टम
theme()कॉल में सभीaxis.औरpanel.gridआर्ग्युमेंट्स के लिएelement_blank()फ़ंक्शन देकर सभी axes और background grid हटा दें। - अंतिम कोड चलाने के बाद, दाईं ओर प्लॉट विंडो का आकार बदलें ताकि मोबाइल डिवाइस की पोर्ट्रेट स्क्रीन (पतली और लंबी) का सिमुलेशन हो — सभी लेबल प्लॉट व्यूपोर्ट में फिट हो जाएँगे।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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)
)