我有以下代码来绘制不同国家/地区的合同。
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")
我想要一个简单的堆积条形图,其中条形由合同类别着色,这是变量&#34; split&#34; (即CCOM $ Contract.Category)。
但是,当我运行代码时,它会生成下面的图表:
为什么不将gplot分成三个不同的块?为什么我会在整个图表中分散颜色部分。我尝试过使用因子(分裂)和水平(分裂),但似乎不起作用。也许我把它置于错误的位置。
答案 0 :(得分:1)
ggplot
创建外部向量是一件麻烦事。而不是将Country
和Val
创建为宽松向量,而是将它们作为列添加到数据中:
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")
答案 1 :(得分:0)
正如您所建议的那样order
提供了解决方案:
ggplot(CCOM[order(CCOM$split), ], aes(x = Country, y = Val, fill = Contract.Category)) +
geom_bar(stat = "identity")
我有一个类似的例子,我使用等同于fill
作为Contact.Category
,但它仍然需要重新排序。