GGPLOT2 geom_bar填写审美(ggplot2 geom_bar fill aesthet

2019-10-21 20:06发布

我有下面的代码绘制在不同国家的合同。

Country <- CCOM$Principal.Place.of.Performance.Country.Name
Val <- CCOM$Action_Absolute_Value
split <- CCOM$Contract.Category

ggplot(CCOM, aes(x = Country, y = Val, fill = levels(split))) +
    geom_bar(stat = "identity")

我想与合同类别,它是变量“分裂”五色棒的简单堆积条形图(即CCOM $ Contract.Category)。

然而,当我运行代码它产生下图:

为什么不会gplot支出分成三个不同的块? 为什么会分散在整个图表的颜色部分? 我一直在使用因子(分割)和级别(分)尝试,但似乎并没有工作。 也许我把它在错误的位置。

Answer 1:

按照你的建议order提供了一个解决方案:

ggplot(CCOM[order(CCOM$split), ], aes(x = Country, y = Val, fill = Contract.Category)) +
   geom_bar(stat = "identity")

我有,我用相当于一个类似的例子fillContact.Category ,它仍然需要重新排序。



Answer 2:

啊,我刚刚意识到发生了什么事情。 你似乎害怕修改您的数据帧,不要! 创建外部载体ggplot是自寻烦恼。 而不是创建CountryVal松散的载体,将其添加为您的数据列:

CCOM$Country <- CCOM$Principal.Place.of.Performance.Country.Name
CCOM$Val <- CCOM$Action_Absolute_Value

那么你的情节是美好而简单,你不必担心订单或其他任何东西。

ggplot(CCOM, aes(x = Country, y = Val, fill = Contract.Category)) +
    geom_bar(stat = "identity")


文章来源: ggplot2 geom_bar fill aesthetic
标签: r ggplot2