Holen Sie sich die Breite der Zeichnungsfläche in ggplot2

Gibt es eine Möglichkeit, um die Breite der Zeichnungsfläche in der grid-Fenster? Es wächst oder schrumpft, zum Beispiel, wenn plot.margin geändert wird oder wenn die y-Achse Label' font-size erhöht. Ist die irgendwo versteckt in str(p)?

Jeder Größe Messen funktionieren würde. Ich muss in der Lage sein zu Messen, die relative änderung in der Breite der Zeichnungsfläche in verschiedenen Szenarien wie das ändern der y-Achse Label' font-size.

Holen Sie sich die Breite der Zeichnungsfläche in ggplot2

df = data.frame(x = (1:3),One=c(12, 8, 13),Two=c(13, 7, 11),Three=c(11, 9, 11))
df.melt = melt(df, id.vars="x")

p = ggplot(df.melt, aes(x=x, y=value, color=variable)) + 
  geom_line() +
  coord_cartesian(xlim=c(min(df.melt$x),max(df.melt$x))) +
  theme(legend.position="none", plot.margin = unit(c(1, 4, 1, 1), "cm")) 
p

UPDATE – Zu klären: Bitte helfen Sie mir berechnen a/b.

Holen Sie sich die Breite der Zeichnungsfläche in ggplot2

p = ggplot(df.melt, aes(x=x, y=value, color=variable)) + 
  geom_line() + coord_cartesian(xlim=c(min(df.melt$x),max(df.melt$x))) +
  theme(legend.position="none")

p1 = p + theme(plot.margin=unit(c(1,1,1,1),"cm"), axis.text.y=element_text(size=10))
p2 = p + theme(plot.margin=unit(c(1,1,1,2),"cm"), axis.text.y=element_text(size=30))
grid.arrange(p1, p2, ncol=2)
  • Sie können es von der gtable
  • Ich bin ein wenig unscharf, was Sie brauchen diese info für die, die einen gewissen Einfluss haben auf die Antwort, die ich denke. Aber für den Anfang, Blick in die Ausgabe von ggplot_build(p). Ist das hilfreich?
  • das Ziel ist, um Platz geom_text Anmerkungen in einem festen Abstand von der linken und rechten Ende des plot-Bereichs auf einem festgelegten y-Wert. Meine überlegungen: Mit der absoluten Breite der Zeichnungsfläche bekannt, es ist leicht zu berechnen Sie die Entfernung zwischen zwei beliebigen Punkten auf der x-Achse und somit leicht zu positionieren geom_text bei einem x-Wert, der in einem festen Abstand von der y-Achse
  • ggplot_build(p) ist interessant, aber ich habe nicht gefunden es nützlich noch als die Werte scheinen noch angegeben werden, relativ zu den plot-Bereich. Sieht wieder später
  • Nun, der Grund, ich wollte eine Klarstellung ist, dass es immer mindestens zwei coord-Systeme Sie arbeiten könnte, dass Ihre Daten und die des Gerätes selbst ein. Wenn Ihr Ziel ist es, etwas in den plot-Bereich, sollten Sie nur Informationen brauchen, auf der coord-system mit Ihren Daten, die ggplot_build geben Sie. Wenn Sie brauchen, Positionierung unabhängig von Ihrem Grundstück, dann müssen Sie Tauchen Sie ein in die grobs selbst.
  • Ich bin mit einigen Schwierigkeiten eintauchen in grobs und Messung Konvertierungen (siehe mein Kommentar zu agstudy Antwort). Jede Hilfe würde geschätzt werden.
  • Ich kann nicht mehr helfen, vor allem, weil ich deutlich nicht das bekommen, was Sie zu tun versuchen, da ich immer noch nicht verstehe, warum können Sie nicht einfach das coord-system mit Ihren Daten.
  • Nur der coord-system schwierig werden würde, denke ich, als alles in meinem Diagramm ändern kann (x-Achsen-Bereich, Anzahl der Beobachtungen, y-Werte etc.) und die Anmerkungen sollten immer in einem festen Abstand (z.B. 0,3 cm) von der linken und rechten Seite der Zeichnungsfläche. Ich aktualisiert die Frage. Wenn niemand antwortet hier, ich könnte die post eine neue Frage, die sich mehr auf die Anmerkungen

Schreibe einen Kommentar