Ich bin auf einige Daten auf Partei Polarisation arbeiten (something like this) und verwendet geom_dumbbell
von ggalt
und ggplot2
. Ich bekomme immer die gleichen aes
Fehler und andere Lösungen im Forum hat dies nicht so effektiv adressiert. Dies sind meine Beispieldaten.Ästhetik müssen entweder 1 oder Länge die gleichen wie die Daten (1) sein: x, y, Etikett
df <- data_frame(policy=c("Not enough restrictions on gun ownership", "Climate change is an immediate threat", "Abortion should be illegal"),
Democrats=c(0.54, 0.82, 0.30),
Republicans=c(0.23, 0.38, 0.40),
diff=sprintf("+%d", as.integer((Democrats-Republicans)*100)))
wollte ich, um die Handlung zu halten, so umgewandelt Politik factor
und wollte% nur in der ersten Zeile angezeigt werden.
df <- arrange(df, desc(diff))
df$policy <- factor(df$policy, levels=rev(df$policy))
percent_first <- function(x) {
x <- sprintf("%d%%", round(x*100))
x[2:length(x)] <- sub("%$", "", x[2:length(x)])
x
}
Dann habe ich ggplot verwendet, das etwas nahe an das gemacht hat, was ich wollte.
gg2 <- ggplot()
gg2 <- gg + geom_segment(data = df, aes(y=country, yend=country, x=0, xend=1), color = "#b2b2b2", size = 0.15)
# making the dumbbell
gg2 <- gg + geom_dumbbell(data=df, aes(y=country, x=Democrats, xend=Republicans),
size=1.5, color = "#B2B2B2", point.size.l=3, point.size.r=3,
point.color.l = "#9FB059", point.color.r = "#EDAE52")
Ich wollte dann den Hantel Democrat
und Republican
oben lesen, die die beiden Punkte (like this) zu beschriften. Hier bekomme ich den Fehler.
gg2 <- gg + geom_text(data=filter(df, country=="Government will not control gun violence"),
aes(x=Democrats, y=country, label="Democrats"),
color="#9fb059", size=3, vjust=-2, fontface="bold", family="Calibri")
gg2 <- gg + geom_text(data=filter(df, country=="Government will not control gun violence"),
aes(x=Republicans, y=country, label="Republicans"),
color="#edae52", size=3, vjust=-2, fontface="bold", family="Calibri")
Irgendwelche Gedanken auf, was ich tun könnte falsch?
wo kommt 'country' kommen aus? – Nate
Versuchen Sie, 'gg' oder' gg2' zu referenzieren ?! – bouncyball
'Aes' Aufruf akzeptiert Variablen definiert in' data', 'label =" Republicans "' ist keine Variable, sondern eine konstante Zeichenfolge daher der Fehler – missuse