मैंने बार के अंदर संबंधित लेबल के साथ स्टैक्ड बारप्लॉट बनाया है। हालांकि, मैं प्लॉट बदलना चाहूंगा, जैसे कि position = fill। यह मेरी साजिश के साथ कुछ अजीब करता है। इसे ठीक करने का कोई तरीका ?

cat <- c (0,0,0,0,0,1,1,1,1,1)
value <- c(100,200,300,100,300,200,200,200,300,300)
N <- c(15,43,7,53,25,33,5,3,2,2)
year <- c(2014,2017,2018,2016,2015,2014,2016,2018,2017,2015)
exdata <- cbind(cat, value, N, year)

exdata <- as.data.frame(exdata)

exdata2 <- group_by(exdata, year) %>% mutate (pct = paste0((round(value/sum(value)*100, 2))," %"))
exdata2 <- as.data.frame(exdata2)

plot.exdata2 <- ggplot(exdata2, aes(year, value, fill = factor(cat))) +
  geom_bar(stat = "identity", position = "stack") + # position = stack
  geom_text(aes(label = exdata2$pct), position = position_stack(vjust = 0.5), size = 3.2) +
  theme_pubclean()

enter image description here

enter image description here

वांछित प्रारूप: यहां छवि विवरण दर्ज करें

0
Nneka 1 अप्रैल 2020, 12:15

1 उत्तर

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

आप इसके बजाय geom_col को आजमा सकते हैं क्योंकि stat = "identity" होने पर इसका उपयोग करने की अनुशंसा की जाती है। इसके अतिरिक्त आपको geom_text में भी "fill" स्थिति निर्दिष्ट करनी होगी:

ggplot(exdata2, aes(year, value, fill = factor(cat))) +
  geom_col(position = "fill") + 
  geom_text(aes(label = pct), position = position_fill(vjust = 0.5))

enter image description here

0
Roman 1 अप्रैल 2020, 09:44