Ändern Sie die Form des Legendenschlüssels für geom_bar in ggplot2

Ich versuche, die Form des Legendenschlüssels in einem geom_bar-Diagramm zu ändern. Ich habe mir online mehrere Antworten angesehen, aber festgestellt, dass sie in diesem Fall nicht funktionierten. Lassen Sie mich das Problem erklären:

df1 = data.frame(person = c("person1", "person2", "person3"),
             variable = "variable1",
             value = c(0.5, 0.3, 0.2))

df2 = data.frame(person = c("person1", "person2", "person3"),
             variable = "variable2",
             value = c(-0.3, -0.1, -0.4))

Ich versuche ein gestapeltes Barplot zu erstellen, bei dem eine Seite negativ ist. Mit ggplot2 bekomme ich:

library(ggplot2)
ggplot() + geom_bar(data = df1, aes(x = person, y = value, fill = variable), stat = "identity") +
  geom_bar(data = df2, aes(x = person, y = value, fill = variable), stat = "identity") +
  scale_fill_manual(values = c("steelblue", "tomato"), breaks = c("variable1","variable2"),
                labels = c("Variable 1", "Variable 2"))

Es sieht dann so aus:

Nun auf der rechten Seite werden in der Legende standardmäßig Quadrate angezeigt. Gibt es eine Möglichkeit, dies beispielsweise in einen Kreis umzuwandeln?

Online Ich habe herausgefunden, wie dies normalerweise funktioniert, indem ich @ verwend

guides(fill = guide_legend(override.aes = list(shape = 1)))

Oder ähnliche Variationen. Dies scheint jedoch nicht zu funktionieren. Wenn jemand helfen kann, wäre das großartig. Ich stecke jetzt schon eine ganze Weile fest.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage