我有以下代码按颜色分割ggplot。而不是按字母顺序绘制x轴是否有一种简单的方法可以将条形图组合在一起,因此红色条例如彼此相邻?手动移动它们不是一种选择,因为我有更多的变量 - 干杯。
mydata <- data.frame(x = c("a", "d", "c", "q", "e", "s", "r", "b"),
n = c("UK","EUR","UK", "UK", "EUR", "GLB", "GLB", "EUR"),
F = c(-6, 17, 26, -37, 44, -22, 15, 12))
ggplot(mydata, aes(x = x, y = F, colour = n, fill =n)) + geom_bar(stat = "Identity")
答案 0 :(得分:1)
不确定这是不是你想要的。
我猜你正在绘制条形图,这些条目目前按字母顺序排列,如下例所示,
library(ggplot2)
library(dplyr)
sample_data <- data.frame(
city = letters[1:5],
value = c(10, 11, 17, 12, 13),
country = c("c1", "c2", "c1", "c1", "c2")
)
ggplot(sample_data) +
geom_col(aes(x=city, y=value, colour=country, fill=country))
条形的顺序(从左到右)是a,b,c,d,e。但是,您希望按country
排序的条形(变量确定颜色/填充),即a(c1),c(c1),d(c1),b(c2),e(c2)。 / p>
为此,您可以设置正确的&#39; city
使用factor(city, levels=...)
的顺序。由于您希望按国家/地区对城市进行排序,因此级别为city[order(country)]
。
sample_data <- sample_data %>%
mutate(city2 = factor(city, levels=city[order(country)]))
ggplot(sample_data) +
geom_col(aes(x=city2, y=value, colour=country, fill=country))
答案 1 :(得分:1)