我想要R中的堆叠条形图,以年为我的x轴,以百分比为我的y轴,将土地用途作为颜色填充。我的数据如下
Year Percentage LandUse
1 2015 49.8 Agriculture
2 2012 51.2 Agriculture
3 2009 50.2 Agriculture
10 2015 22.5 fishing
11 2012 21.4 fishing
12 2009 21.9 fishing
19 2015 14.7 services and residential
20 2012 16.0 services and residential
21 2009 17.1 services and residential
28 2015 0.8 mining and quarrying
29 2012 0.7 mining and quarrying
30 2009 0.7 mining and quarrying
37 2015 0.4 water and waste treatment
38 2012 0.5 water and waste treatment
39 2009 0.4 water and waste treatment
46 2015 0.8 Industry and Manufacturing
47 2012 0.8 Industry and Manufacturing
48 2009 0.9 Industry and Manufacturing
答案 0 :(得分:0)
您可以使用ggplot2
包来绘制堆积的条形图。请注意,Year
变量应为factor
类型。
请参见下面的代码:
df <- structure(list(Year = c(2015L, 2012L, 2009L, 2015L, 2012L, 2009L,
2015L, 2012L, 2009L, 2015L, 2012L, 2009L, 2015L, 2012L, 2009L,
2015L, 2012L, 2009L), Percentage = c(49.8, 51.2, 50.2, 22.5,
21.4, 21.9, 14.7, 16, 17.1, 0.8, 0.7, 0.7, 0.4, 0.5, 0.4, 0.8,
0.8, 0.9), LandUse = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 5L,
5L, 5L, 4L, 4L, 4L, 6L, 6L, 6L, 3L, 3L, 3L), .Label = c("Agriculture",
"fishing", "Industry_and_Manufacturing", "mining_and_quarrying",
"services_and_residential", "water_and_waste_treatment"), class = "factor")), class = "data.frame", row.names = c("1",
"2", "3", "10", "11", "12", "19", "20", "21", "28", "29", "30",
"37", "38", "39", "46", "47", "48"))
df$Year <- factor(df$Year)
library(ggplot2)
ggplot(df, aes(Year, Percentage, fill = LandUse)) +
geom_bar(stat = "identity")
输出:
P.S。
如果要使用barplot
,则需要绘制值矩阵的创建,图例,颜色等(数十行代码)。 ggplot2
默认将其提供给您。