目前我正嘗試根據下面的數據集,以建立堆疊的條形圖:堆積條形圖聊天(ggplot)中的R ::試圖在圖表中創建多個酒吧
的說明數據: 每個奇數列表示公司變量,每個偶數列表示該公司的產量。 每兩列(公司和生產)代表該小時的生產模式。
這是我的數據:
structure(list(Hour = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), X1 = structure(c(4L,
5L, 5L, 5L, 5L, 2L, 3L, 5L, 5L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L), .Label = c("", "B", "C", "Company", "D"), class = "factor"),
X1.1 = structure(c(10L, 5L, 7L, 9L, 2L, 4L, 8L, 3L, 6L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("",
"30", "31", "49", "5", "63", "73", "83", "86", "Production"
), class = "factor"), X2 = structure(c(4L, 5L, 2L, 5L, 5L,
2L, 5L, 5L, 2L, 3L, 2L, 2L, 3L, 5L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L), .Label = c("", "A", "B", "Company", "D"), class = "factor"),
X2.1 = structure(c(15L, 10L, 12L, 6L, 11L, 13L, 3L, 14L,
5L, 4L, 2L, 9L, 8L, 7L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("",
"15", "32", "34", "36", "5", "50", "52", "58", "71", "73",
"74", "78", "98", "Production"), class = "factor"), X3 = structure(c(5L,
2L, 2L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 4L, 6L, 4L, 3L, 3L,
1L, 1L, 1L, 1L, 1L, 1L), .Label = c("", "A", "B", "C", "Company",
"D"), class = "factor"), X3.1 = structure(c(17L, 6L, 15L,
3L, 4L, 16L, 13L, 7L, 11L, 9L, 5L, 8L, 10L, 14L, 12L, 2L,
1L, 1L, 1L, 1L, 1L, 1L), .Label = c("", "1", "11", "14",
"19", "33", "42", "43", "50", "57", "68", "81", "82", "84",
"85", "95", "Production"), class = "factor"), X4 = structure(c(4L,
5L, 1L, 1L, 5L, 5L, 5L, 5L, 1L, 1L, 5L, 5L, 3L, 3L, 3L, 5L,
2L, 2L, 5L, 2L, 5L, 5L), .Label = c("A", "B", "C", "Company",
"D"), class = "factor"), X4.1 = structure(c(21L, 1L, 18L,
12L, 20L, 10L, 5L, 6L, 4L, 11L, 16L, 9L, 3L, 7L, 13L, 19L,
8L, 17L, 4L, 2L, 15L, 14L), .Label = c("100", "2", "24",
"28", "3", "38", "4", "40", "42", "43", "47", "48", "54",
"64", "69", "7", "71", "81", "9", "97", "Production"), class = "factor"),
X5 = structure(c(5L, 6L, 6L, 3L, 6L, 6L, 6L, 6L, 2L, 2L,
6L, 6L, 6L, 3L, 6L, 3L, 6L, 3L, 4L, 1L, 1L, 1L), .Label = c("",
"A", "B", "C", "Company", "D"), class = "factor"), X5.1 = structure(c(18L,
12L, 3L, 9L, 14L, 10L, 16L, 2L, 17L, 13L, 5L, 13L, 4L, 7L,
6L, 2L, 15L, 11L, 8L, 1L, 1L, 1L), .Label = c("", "0", "1",
"12", "25", "30", "34", "38", "39", "45", "46", "58", "60",
"68", "73", "78", "97", "Production"), class = "factor"),
X6 = structure(c(5L, 3L, 4L, 3L, 6L, 6L, 3L, 3L, 2L, 3L,
6L, 3L, 6L, 3L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("",
"A", "B", "C", "Company", "D"), class = "factor"), X6.1 = structure(c(16L,
9L, 4L, 5L, 8L, 11L, 15L, 6L, 10L, 7L, 14L, 3L, 12L, 2L,
13L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("", "1", "29",
"3", "34", "4", "42", "48", "65", "68", "70", "8", "92",
"95", "96", "Production"), class = "factor")), .Names = c("Hour",
"X1", "X1.1", "X2", "X2.1", "X3", "X3.1", "X4", "X4.1", "X5",
"X5.1", "X6", "X6.1"), class = "data.frame", row.names = c(NA,
-22L))
我可以使用下面的代碼創建一個圖表,第一個小時:
dataset <- read_excel("Example.csv")
hour = 1
Production <- dataset[, 2]
Company <- dataset[, 1]
ggplot(data = dataset, aes(x = hour, y = Production, fill = Company)) +
geom_bar(stat = "identity")
柱形圖如下圖所示:
現在問題:
我寫了一段代碼來創建「公司」變量和「生產」變量的數據集。但是,當我運行的代碼,我有這樣的錯誤:
Aesthetics must be either length 1 or the same as the data (21): x, y, fill
我想知道什麼技術錯誤我犯我,我怎麼能解決這個問題。 這是我的代碼:
hour <- matrix(0, 1, 2)
hour[1, 1] = 1
hour[1, 2] = 2
Production <- matrix(0, 22, 2)
for (i in 1:2) {
Production[1:22, i] <- dataset[1:22, (2 * i)]
}
Company <- matrix(0, 22, 2)
for (i in 1:2) {
Company[1:22, i] <- dataset[1:22, (2 * i) - 1]
}
任何幫助將不勝感激。
請提供該數據集是一種有用的格式。不是圖像,例如使用'dput(數據集)'。 – Deleet
嘿Deleet,我剛發佈它。這有幫助嗎? –
ggplot不喜歡矩陣;只有data.frames。您需要構建您的數據,以便每個審美是您data.frame中的單個變量。現在,這不是你所擁有的,你所擁有的東西還不清楚。 – alistaire