Как мне сделать сложенный барплот в R, используя три столбца, я хочу использовать функцию barplot () - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу составить столбчатую диаграмму в 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

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете использовать пакет 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")

Вывод:

enter image description here

PS Если вы хотите использовать barplot, вам понадобитсяпройти через создание матрицы значений, легенды, цветов и т. д. (дюжина строк кода).ggplot2 дает его вам по умолчанию.

...