निम्नलिखित कोड लॉग स्केल में y-अक्ष के साथ x तत्वों की गिनती का एक बारप्लॉट बनाता है।

library(ggplot2)  
library(scales)

myData <- data.frame(
  x = c(rep(1, 22500), 
        rep(2, 6000), 
        rep(3, 8000), 
        rep(4, 5000), 
        rep(11, 86), 
        rep(16, 15), 
        rep(31, 1), 
        rep(32, 1), 
        rep(47, 1))
)

ggplot(myData, aes(x=x)) + 
  geom_bar(width = 0.5)+
  geom_text(stat='count', aes(label = ..count..), vjust = -1, size=3)+
  scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
                labels = trans_format("log10", math_format(10^.x)))+
  scale_x_continuous(breaks=(seq(1:47)))

नीचे साजिश है:

enter image description here

मेरे प्रश्न हैं:

  1. मैं शून्य गणना वाले उन स्तंभों के लिए x-अक्ष टिक चिह्न/लेबल कैसे निकालूं?

  2. मैं कॉलम 31, 32, 47 के मानों को बेहतर तरीके से कैसे दिखाऊं? (जिनकी गिनती 1 है)

  3. मैं सिर्फ सबसे ऊंचे कॉलम की गिनती कैसे लेबल करूं? (22500 कॉलम 1 इस मामले में)

0
hydradon 12 नवम्बर 2019, 01:20

1 उत्तर

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

आपके लिए एक विकल्प यह होगा कि आप एक सीमा रंग जोड़ें, जो इस बात को उजागर करने में मदद करेगा कि ग्राफ़ के उन हिस्सों में कम से कम कुछ तो है:

library(tidyverse)

df <- 
  myData %>% 
  group_by(x) %>% 
  count()

df %>% 
  ggplot(aes(x = x, y = n)) +
  geom_col(color = "cyan4", fill = "cyan3") +
  geom_text(data = . %>% filter(x == 1), aes(label = n, y = n + 10000)) +
  scale_y_log10()

enter image description here

1
cardinal40 12 नवम्बर 2019, 01:46