2017-02-22 65 views
1

我的数据的结构类似于下面的例子:控制顺序

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() 

我该如何改变阴谋,使阳光明媚的是第二季度堆叠酒吧的顶部?

谢谢。

回答

3

使用stringsAsFactors = F禁用自动系数转换data.frame()。然后使用factor()levels参数来设置顺序。

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

enter image description here

+0

你并不需要使用'factor'设置级别的顺序使用前'stringsAsFactors = FALSE'。 – aosmith