2017-02-22 47 views
1

Мои данные структурированы похож на примере ниже:Контроль сложенной фигуры в ggplot2

Quarter <- c("Q1", "Q2", "Q2", "Q3", "Q4") 
Weather <- c("cloudy", "cloudy", "sunny", "sunny", "cloudy") 
Duration <- c(16, 10, 12, 15, 14) 
WeatherCondData <- data.frame(Quarter, Weather, Duration) 

Когда я сюжет этой информации, второй вход для четверти два (Q2) солнечно, однако, не отображается в последовательном порядке в сюжете - облачная - вторая запись.

ggplot(WeatherCondData, aes(x = Quarter, y = Duration, fill = Weather)) + 
    geom_bar(stat = "identity", position = "stack") + 
    theme_classic() 

Как изменить сюжет так, чтобы солнечная составляла верхняя часть штабелированной панели для Q2?

Спасибо.

ответ

3

Используйте stringsAsFactors = F, чтобы отключить автоматическое преобразование факторов в data.frame(). Затем используйте factor() с levels args, чтобы установить порядок.

WeatherCondData <- data.frame(Quarter, Weather, Duration, stringsAsFactors = F) 
WeatherCondData$Weather <- factor(WeatherCondData$Weather, levels=c('sunny','cloudy')) 

enter image description here

+0

Вам не нужно использовать 'stringsAsFactors = false' перед использованием' factor', чтобы установить порядок уровней. – aosmith