ich derzeit ein gestapeltes Balkendiagramm auf der Basis des Datensatzes unten zu schaffen versuche:Stacked Bar Chat (ggplot) in R :: Der Versuch, mehr als ein Balken im Diagramm erstellen
Erklärung Daten: Jede ungerade Spalte stellt die Unternehmensvariable dar und jede gerade Spalte stellt die Produktion von dieser Firma dar. Alle zwei Spalten (die Firma und die Produktion) repräsentieren die Produktionsmuster für diese Stunde.
Dies ist meine Daten:
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))
konnte ich unter den Code verwenden, um ein Diagramm für die erste Stunde zu erstellen:
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")
Das Balkendiagramm unten dargestellt wird:
Jetzt das Problem:
Ich habe einen Code geschrieben, um einen Datensatz für die Variable "Company" und die Variable "Production" zu erstellen. Aber wenn ich den Code ausführen, habe ich diesen Fehler:
Aesthetics must be either length 1 or the same as the data (21): x, y, fill
Ich frage mich, was technischer Fehler bin ich zu begehen und wie kann ich dieses Problem lösen. Dies ist mein Code:
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]
}
Jede Hilfe wäre sehr dankbar.
Bitte liefern Sie den Datensatz ist ein nützliches Format. Kein Bild, z.B. benutze 'dput (Dataset)'. – Deleet
Hey Delete, ich habe es gerade gepostet. Hilft das? –
ggplot mag keine Matrizen; nur data.frames. Sie müssen Ihre Daten so strukturieren, dass jede Ästhetik eine einzelne Variable in Ihrem Datenrahmen ist. Genau das hast du nicht, und was du hast, ist unklar. – alistaire