मेरे पास अलग-अलग मजदूरी दर अर्जित करने वाले व्यक्तियों का डेटा है और मैं एक जीजीप्लॉट बनाना चाहता हूं जिसमें प्रत्येक मजदूरी बिन के लिए एक अलग श्रृंखला शामिल हो।

नीचे दिया गया कोड काम करता है, लेकिन मैं उम्मीद कर रहा था कि चर में गणित के प्रतीकों को शामिल करने का एक तरीका होगा ताकि <= किंवदंती में उपयुक्त प्रतीक में बदल जाए (< नीचे एक बार के साथ)। मैं प्लॉट के लिए कोड में लीजेंड लेबल को परिभाषित करने से बचने की कोशिश कर रहा हूं क्योंकि मुझे इस प्रकार के प्लॉट को कई बार दोहराना पड़ता है और अगर मैं नए वेज डिब्बे जोड़ता हूं, तो श्रृंखला अनजाने में गलत हो सकती है। मैं भविष्य में पौराणिक वस्तुओं में अन्य गणित प्रतीकों को भी शामिल करना चाह सकता हूं जो <= की तुलना में उनके कच्चे पाठ से अंतर करना कम आसान है।

library(tidyverse)

wage_data <- tibble(
  x=runif(100, 8, 11),
  y=rnorm(100), 
  z=y+rnorm(100, 0, 0.5),
  worker_group=case_when(
    x<9 ~ "Wage<9",
    x>=9 & x<10 ~ "9<=Wage<10",
    x>=10 ~ "Wage>=10"
  )
)
wage_data %>% 
  ggplot(aes(y, z, color=worker_group)) + geom_point()

शायद ऐसा करने का एक बेहतर तरीका यह होगा कि वर्कर_ग्रुप वैरिएबल को एक ऐसे कारक के रूप में स्टोर किया जाए जहां लेबल में गणित के प्रतीक हों और मैं स्तरों के क्रम को नियंत्रित कर सकता हूं। कोई आईडिया कि इसे कैसे किया जाए? अग्रिम में धन्यवाद।

1
Benny Goldman 2 फरवरी 2021, 23:20

2 जवाब

सबसे बढ़िया उत्तर

यह काम कर सकता है:

library(ggplot2)
library(tibble)
library(tidyverse)
wage_data <- tibble(
  x=runif(100, 8, 11),
  y=rnorm(100), 
  z=y+rnorm(100, 0, 0.5),
  worker_group=case_when(
    x<9 ~ "Wage < 9",
    x>=9 & x<10 ~ "9 <= `Wage < 10`",
    x>=10 ~ "Wage >= 10"
  )
)
wage_data %>% 
  ggplot(aes(y, z, color=worker_group)) + 
  geom_point() +
  scale_color_manual(values = scales::hue_pal()(3),
                     labels = scales::parse_format())

आउटपुट:

enter image description here

0
bttomio 3 फरवरी 2021, 01:00

मैं ggplot का उपयोग नहीं करता, लेकिन यह बेस ग्राफिक्स के लिए काम करता है और ggplot के साथ भी काम करना चाहिए

lbl <- gsub('^(.*)(?=[<>])', 'paste(\\1)', unique(wage_data$worker_group), perl = TRUE)
# [1] "paste(Wage)>=10"   "paste(9<=Wage)<10" "paste(Wage)<9"

ggplot(wage_data, aes(y, z, color = worker_group)) +
  geom_point() +
  scale_color_manual(values = scales::hue_pal()(3), labels = parse(text = lbl))

enter image description here

1
rawr 3 फरवरी 2021, 00:11