position_fill需要ggolot中不重叠的x区间

时间:2016-08-10 20:32:27

标签: r ggplot2 bar-chart

我正在使用ggplot生成一个由因子堆叠的条形图。我使用以下代码

ggplot(X) +
  geom_bar(aes(X$Decade, fill=factor(X$Motivation)),
       position='fill') +
  theme(legend.position = "bottom")+
  theme(axis.title.x = element_text(size = 20),
    axis.title.y = element_text(size = 20))+
  theme(text = element_text(size=20))+
  theme(legend.text = element_text(size = 16),legend.title = element_blank())+
  xlab("Decade")+
  ylab("Percentage")+
  scale_y_continuous(labels=percent)

但是程序会发出以下警告,

  

警告讯息:       position_fill需要不重叠的x区间

结果数字如下 plot

在1940年的十年中似乎是警告。当1940年的观察结果为this

我不知道这里有什么问题,因为其他观察看起来像1940年那样,当我删除了1940年的观察结果时,再也没有警告了。

1 个答案:

答案 0 :(得分:0)

尝试将x变量(十年)变成一个因子。不幸的是,我们无法测试您的代码,因为您没有提供数据的代表。另外,正如评论者所述,您不应该使用X $ Decade,因为在ggplot中,您已经加载了X作为数据集。

ggplot(X) +
  geom_bar(aes(factor(Decade), fill=factor(Motivation)), position='fill')