Ich habe nach einer Wrapper-Funktion in ggplot2 gesucht, die mir helfen kann, den Legendentext in einem definierten rechteckigen Bereich zu platzieren. Bis jetzt habe ich keinen gefunden. Hier ist mein Fall:Wrap-Legendentext mit Ausdruck in ggplot2
library (ggplot2)
p = ggplot (mtcars, aes (x = mpg, y= cyl,color = factor (cyl)))
p + geom_point()
z = unique (factor (mtcars$cyl))
p + geom_point() + scale_color_manual(name="legend title", breaks = z,
labels = c (expression(a + b + c + d + e + f + g + h + i), expression(x) , expression(y)),
values = c("red","blue","green"))
Was ich will, ist die lange Ausdruck innerhalb einer Breite von fünf Zeichen gewickelt haben.
Gibt es eine Funktion, die automatisch den Text jeder Legendenschlüssel in eine definierte Textbreite umbrechen kann, und ich frage mich, ob das auch für Ausdrücke gelten kann.
@stevebI haben dieses man versucht. Aber sobald ich den Ausdruck komplexer mache (wie das Einfügen von Index und Hochstellen), scheint es nicht zu funktionieren. Lassen Sie –
@ satyanarayanrao können Sie den Code, den Sie für die Super-und Indices haben. Ich kann mir diese ansehen, aber die Konzentration auf Ihren speziellen Fall wäre ein guter Anfang. – steveb
Hier ist es: str = einfügen ("P [\" "," a "," \ "]^m * Q *", "P [\" "," b "," \ "]^m * Q ", sep =" ") Im ggplot: labels = c (str_wrap (parse (text = str), 15), Ausdruck (x), Ausdruck (y)) Hier kommt der Ausdruck nicht wie erwartet heraus . Eigentlich habe ich eine lange Reihe solcher Ausdrücke, und ich möchte sie umhüllen. –