Tworzę wielopunktowy rysunek układu za pomocą R, a wygodnie byłoby móc utworzyć wieloliniowe pole tekstowe na jednym z wykresów.Wykreślanie wielolinijkowego pola tekstowego w R
Jestem zaznajomiony z używaniem Sweave do łączenia obrazów, tekstu i kodu R, jednak z różnych powodów potrzebuję tego, aby był to pojedynczy wydruk strony wyprodukowany w R. W związku z tym należy wykreślić pole tekstowe zamiast używać znaku lateksu -w górę.
Czy istnieje funkcja w istniejącym pakiecie, która może to zrobić? Jeśli to nie pomoże, czy ktoś może zaproponować proste podejście do tego problemu?
Rozważmy taką sytuację:
## Specify the dimensions of the plot
## that we require
win.graph(8,4)
## Two panel layout
layout(matrix(1:2, 1, 2))
par(mar=c(0,0,0,0))
## Left panel shows picture
plot(rep(1:10, each=10), rep(1:10, times=10),
col=rainbow(100), pch=20, cex=5)
## Right panel discusses the data
plot.default(c(0,100), c(0,100), type="n", axes=FALSE,
ylab="", xlab="")
text(20, 30, "It would be great if this text box\n
could handle word wrap, and ideally given the size\n
of the font (i.e. the cex parameter) and the area\n
of the plot it should be able to do this dynamically,\n
without requiring the newline characters I am\n
manually inserting. Ability to control the line\n
height would also be nice.\n
Am I dreaming?", cex=0.75, adj=c(0,0))
Wiem, że można wykonać owijanie za pomocą 'paste (strwrap (longString, width = WIDTH), collapse = '\ n')', ale nie jestem pewien, jak obliczyć szerokość (w znakach) Drugi dział domyślnie, aby obliczyć szerokość, na której ma się zawijać. –
@ mathematical.coffee może to być najprostsze rozwiązanie. Obracaj dynamiczne obliczenia punktu zawijania słowa dla uproszczenia (to jest wybierz "WIDTH" ręcznie na podstawie wizualnej oceny). – digitalmaps