Skip to contents

Add a break or new line without breaking words. Automatically, the function can detect your plot's width and will dynamically set an auto width. You can adjust the relation (rel) parameter for different fonts and sizes until perfect harmony found. Quite similar to stringr::str_wrap but, if the text vector is a factor, the levels will be kept in order and transformed.

Usage

autoline(text, top = "auto", rel = 9)

Arguments

text

Character or factor vector.

top

Integer. How many characters aprox. should be on each line?

rel

Numeric. Relation of pixels and characters per line

Value

Character. String (vector) including some \n within.

Examples

cat(autoline("This is a long text that may not fit into a single line", 8))
#> This is
#> a long
#> text
#> that may
#> not fit
#> into a
#> single
#> line

text <- factor(c("First value", "Second value", "First value"),
  levels = c("First value", "Second value")
)
autoline(text, 1)
#> [1] First\nvalue  Second\nvalue First\nvalue 
#> Levels: First\nvalue Second\nvalue

path <- file.path(R.home("doc"), "THANKS")
text <- paste(readLines(path), collapse = " ")
cat(autoline(text))
#> R would not be what it is today without the
#> invaluable help of these people outside of the
#> (former and current) R Core team, who contributed by
#> donating code, bug fixes and documentation: Valerio
#> Aimale, Suharto Anggono, Thomas Baier, Gabe Becker,
#> Henrik Bengtsson, Roger Bivand, Ben Bolker, David
#> Brahm, G"oran Brostr"om, Patrick Burns, Vince Carey,
#> Saikat DebRoy, Matt Dowle, Brian D'Urso, Lyndon
#> Drake, Dirk Eddelbuettel, Claus Ekstrom, Sebastian
#> Fischmeister, John Fox, Paul Gilbert, Yu Gong, Gabor
#> Grothendieck, Frank E Harrell Jr, Peter M. Haverty,
#> Torsten Hothorn, Robert King, Kjetil Kjernsmo,
#> Roger Koenker, Philippe Lambert, Jan de Leeuw,
#> Jim Lindsey, Patrick Lindsey, Catherine Loader,
#> Gordon Maclean, Arni Magnusson, John Maindonald,
#> David Meyer, Ei-ji Nakama, Jens Oehlschl"agel,
#> Steve Oncley, Richard O'Keefe, Hubert Palme, Roger
#> D. Peng, Jose' C. Pinheiro, Tony Plate, Anthony
#> Rossini, Jonathan Rougier, Petr Savicky, Guenther
#> Sawitzki, Marc Schwartz, Arun Srinivasan, Detlef
#> Steuer, Bill Simpson, Gordon Smyth, Adrian Trapletti,
#> Terry Therneau, Rolf Turner, Bill Venables, Gregory
#> R. Warnes, Andreas Weingessel, Morten Welinder,
#> James Wettenhall, Simon Wood, and Achim Zeileis.
#> Others have written code that has been adopted by
#> R and is acknowledged in the code files, including
#> J. D. Beasley, David J. Best, Richard Brent, Kevin
#> Buhr, Michael A. Covington, Bill Cleveland, Robert
#> Cleveland,, G. W. Cran, C. G. Ding, Ulrich Drepper,
#> Paul Eggert, J. O. Evans, David M. Gay, H. Frick,
#> G. W. Hill, Richard H. Jones, Eric Grosse, Shelby
#> Haberman, Bruno Haible, John Hartigan, Andrew Harvey,
#> Trevor Hastie, Min Long Lam, George Marsaglia, K.
#> J. Martin, Gordon Matzigkeit, C. R. Mckenzie, Jean
#> McRae, Cyrus Mehta, Fionn Murtagh, John C. Nash,
#> Finbarr O'Sullivan, R. E. Odeh, William Patefield,
#> Nitin Patel, Alan Richardson, D. E. Roberts, Patrick
#> Royston, Russell Lenth, Ming-Jen Shyu, Richard C.
#> Singleton, S. G. Springer, Supoj Sutanthavibul,
#> Irma Terpenning, G. E. Thomas, Rob Tibshirani,
#> Wai Wan Tsang, Berwin Turlach, Gary V. Vaughan,
#> Michael Wichura, Jingbo Wang, M. A. Wong, and the
#> Free Software Foundation (for autoconf code and
#> utilities). See also files under src/extras. Many
#> more, too numerous to mention here, have contributed
#> by sending bug reports and suggesting various
#> improvements. Simon Davies whilst at the University
#> of Auckland wrote the original version of glm().
#> Julian Harris and Wing Kwong (Tiki) Wan whilst at
#> the University of Auckland assisted Ross Ihaka with
#> the original Macintosh port. R was inspired by the S
#> environment which has been principally developed by
#> John Chambers, with substantial input from Douglas
#> Bates, Rick Becker, Bill Cleveland, Trevor Hastie,
#> Daryl Pregibon and Allan Wilks. A special debt is
#> owed to John Chambers who has graciously contributed
#> advice and encouragement in the early days of R and
#> later became a member of the core team. Stefano Iacus
#> (up to 2014, a former member of R Core) and Simon
#> Urbanek developed the macOS port, including the R.app
#> GUI, toolchains and packaging. The Windows port was
#> originally developed by Guido Masarotto (for a while
#> a member of R Core) and Brian Ripley, then further
#> by Duncan Murdoch (a former member of R Core) and
#> then Jeroen Ooms (base) and Uwe Ligges (packages).
#> Tomas Kalibera is the current main developer of the
#> Windows port and provides assistance with package
#> porting. Tomas Kalibera's work has been sponsored
#> by Jan Vitek and funded by his European Research
#> Council grant "Evolving Language Ecosystems (ELE)".
#> Computing support (including hardware, hosting and
#> infrastructure) has been provided/funded by the R
#> Foundation, employers of R-Core members (notably
#> WU Wien, ETH Zurich, U Oxford and U Iowa) and by
#> Northeastern University and the University of Kent.
#> Distributions of R contain the recommended packages,
#> whose authors/contributors are listed in their
#> DESCRIPTION files.