Как бы я создал слоты на гистограмме для бинов, которые не содержат данных - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть набор данных, который я разрезал на 7 равных ячеек, используя функцию cut(). Затем я преобразовал данные обратно во фрейм данных, используя data.frame(), а затем построил график, используя ggplot, как показано ниже:

library(ggplot2)
set.seed(1)
data <- runif(n=53,200,1400)
    # converted the data to a value and broke it down from lowest data point to highest data point:
     a-tub.val <- cut(as.numeric(as.character(data)), breaks = seq(0, 1400, by = 200))
    #converted this to a data frame to read into ggplot
     a_tub.dat <- data.frame(a_tub.val)
    # then ran my ggplot code:
     ggplot(data = a_tub.dat) +
        geom_bar(mapping = aes(x=a_tub.val, fill = a_tub.val)) +
        theme(text = element_text(size=20), axis.text.x = element_text(angle=90, hjust=1), legend.title = element_text(size = 12)) +
        ggtitle("Alpha-Tubulin Signals") +
        labs(y="Number in Category", x="Fluoresence bins", fill ="Fluorescence (in thousands)")

использовались пакеты XLConnect и ggplot2

Это отображает только 4 бара на ggplot (те, которые имели значения) вместо 7, которые я хотел бы достичь. Кто-нибудь знает способ отображения тех пустых корзин, которые не содержат данных, но все же должны быть просмотрены на графике?

Plot displaying 4 bars, however 7 bins were generated

1 Ответ

0 голосов
/ 10 апреля 2020

Как отмечено в связанном ответе от @DanielV, вам нужно добавить оба вызова scale_x_discrete и scale_fill_discrete, чтобы вы могли добавить drop = FALSE аргументы.

 ggplot(data = a_tub.dat) +
        geom_bar(mapping = aes(x=a_tub.val, fill = a_tub.val)) + 
        scale_x_discrete(drop=FALSE) + 
        scale_fill_discrete(drop=FALSE) +
        theme(text = element_text(size=20), axis.text.x = element_text(angle=90, hjust=1), legend.title = element_text(size = 12)) +
        ggtitle("Alpha-Tubulin Signals") +
        labs(y="Number in Category", x="Fluoresence bins", fill ="Fluorescence (in thousands)")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...