R:按条形图分组

时间:2017-12-10 23:28:36

标签: r bar-chart

我有一个类似于这个的data.frame

library("data.table")
library("dplyr")

dat$range <- cut(dat$elevation, breaks = seq(0,300,50), include.lowest = T)

head(dat)
  elevation classes     range
1       116       1 (100,150]
2         8       1    [0,50]
3        57       2  (50,100]
4       130       3 (100,150]
5        62       1  (50,100]
6        15       1    [0,50]

我尝试按范围以50米为增量对数据进行分组,然后计算同一类的所有值。我正在尝试在下图中创建一个如下图所示的地形条形图。

enter image description here

我所管理的是将数据分组到范围中,但是我如何计算每个范围的所有项目并区分这些类,以便我可以像上面的示例一样绘制它?类号代表不同的土地利用类型。

#myModal

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

require(ggplot2);
gg <- ggplot(df, aes(y = elevation, x = range))
gg <- gg + geom_bar(
    aes(fill = as.factor(classes)),
    stat = "identity",
    position = position_stack(reverse = TRUE));
gg <- gg + coord_flip();

enter image description here

样本数据

df <- read.table(text =
    "  elevation classes     range
1       116       1 (100,150]
2         8       1    [0,50]
3        57       2  (50,100]
4       130       3 (100,150]
5        62       1  (50,100]
6        15       1    [0,50]", header = T, row.names = 1)