要按照顺序改变 ggplot2 中堆叠条形图的 y-方向顺序,可以使用 reorder()
函数对条形图的 x-变量进行重新排序。
以下是一个示例代码:
library(ggplot2)
# 创建一个示例数据框
data <- data.frame(
category = c("A", "B", "C", "D"),
value1 = c(10, 15, 20, 5),
value2 = c(5, 10, 15, 20)
)
# 使用 reorder() 函数重新排序 category 列
data$category <- reorder(data$category, data$value1)
# 创建堆叠条形图
plot <- ggplot(data, aes(x = category)) +
geom_bar(aes(y = value1, fill = "Value 1"), stat = "identity") +
geom_bar(aes(y = value2, fill = "Value 2"), stat = "identity") +
scale_fill_manual(values = c("Value 1" = "blue", "Value 2" = "red")) +
labs(title = "Stacked Bar Chart", x = "Category", y = "Value")
# 打印图表
print(plot)
这段代码首先创建了一个示例数据框 data
,其中包含了一个 category
列和两个数值列 value1
和 value2
。然后,使用 reorder()
函数对 category
列进行重新排序,基于 value1
列的值。接下来,使用 ggplot()
函数创建一个堆叠条形图,其中 aes()
函数用于指定 x-和 y-变量,geom_bar()
函数用于绘制条形图,scale_fill_manual()
函数用于设置填充颜色,labs()
函数用于设置标题和轴标签。最后,使用 print()
函数打印图表。
这样,堆叠条形图的 y-方向顺序就被改变为基于 value1
列的值的顺序。
下一篇:按照顺序将列连接在一起的分隔符