2016-05-27 4 views
1

У меня есть некоторые данные опроса, из которых я хотел бы просто рассчитать частоту каждого ответа на вопрос.Как создать заполнитель для пустых уровней факторов на оси гистограммы, используя ggplot2?

Мой код

library(ggplot2) 

Df1 # data frame with 3 variables: Provider, Question, Score 

Df1$Score <- factor(Df1$Score, levels = c(0,1,2,3)) 

# Plot 
q <- qplot(Score, data = Df1, facets = .~Provider, geom="bar", fill=Provider) 

q + labs(title = wrapper(Question, width = 70), x = "Score", y = "Frequency") # Add title and axes labels 

И результат: enter image description here

... это здорово, но как я буду генерировать некоторые из этих графиков, было бы визуально легче, если интерпретировать для оси х было также пространство «1».

Я потратил много времени, пытаясь различными комбинациями scale_x_discrete, labels, breaks и reorder, но я до сих пор не в состоянии генерировать неуловимый заполнитель.

Есть ли простой способ заставить ggplot2 построить пустой фактор?

Я уверен, что для этого есть простое решение. Извините, если это дублированный вопрос. Я искал и ничего не придумал, я вполне могу не использовать правильную терминологию (бонусные баллы, если вы можете сообщить мне, как я должен это формулировать!)

Заранее спасибо.

ответ

1

Поскольку вы не предоставили полный воспроизводимый пример:

ggplot(mtcars, 
      aes(factor(gear, levels = 1:5), 
       mpg)) + 
    geom_point() + 
    scale_x_discrete(drop=F) 

Используйте drop=FALSE сохранить неиспользованные уровни фактора.

0

Вы также можете использовать параметр limits в функции scale_x_discrete удерживать место, здесь есть фиктивный пример:

df 
    month count 
1 Jan  1 
2 Feb  2 
3 Mar  3 
ggplot(df, aes(x = month, y = count)) + 
     geom_bar(stat = "identity") + 
     scale_x_discrete(limits = c("Jan", "Feb", "Mar", "Apr")) 

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^