>>>>> Paul Murrell via R-help >>>>> on Mon, 4 Aug 2025 09:00:44 +1200 writes:
> Hi > At the risk of being labelled a "purist", you do not have to leave R to > gain access to the underlying components and modify them. > The following code combines Rui's tidy up of the ggplot() call with an > example of directly modifying the underlying 'grid' grob to add arrows > to the ends. There are more arguments in arrow() that you can explore > if you want to. > library(ggplot2) > library(grid) > ggplot() + > stat_function( > fun = function(x) x^2, > color = "blue", linewidth = 1.25, > xlim = c(-5, 5) > ) + > theme_linedraw() > grid.force() > ## Check the name of the line grob > ## grid.ls() > grid.edit("GRID.polyline", grep=TRUE, > arrow=arrow(ends="both")) > Hope that helps. > Paul I'm coming a bit late, but .. Indeed, the above not only helps but is "wonderful" -- truly convincing ! -- thanks to Paul M., the creator of {grid} (and hence *the* enabler of ggplot2 !) Martin > On 2/08/2025 3:24 am, Rui Barradas wrote: >> On 8/1/2025 4:15 PM, Rui Barradas wrote: >>> On 8/1/2025 3:43 PM, Ebert,Timothy Aaron wrote: >>>> I would save the graph as a PowerPoint object and then edit it in >>>> PowerPoint. >>>> library(ggplot2) >>>> library(grid) >>>> library(officer) >>>> library(rvg) >>>> x <- seq(-5, 5, length.out = 100) >>>> y <- x^2 >>>> data <- data.frame(x, y) >>>> plot <- ggplot(data, aes(x, y)) + >>>> geom_path(color = "blue", linewidth = 1.25) + >>>> geom_segment( >>>> aes(x = x[1], y = y[1], xend = x[100], yend = y[100]), >>>> arrow = arrow(angle = 20, type = "closed", ends = "both", length >>>> = unit(0.2, "inches")), >>>> color = "red" >>>> ) + >>>> theme_linedraw() >>>> doc <- read_pptx() >>>> doc <- add_slide(doc, layout = "Title and Content", master = "Office Theme") >>>> doc <- ph_with(doc, dml(ggobj = plot), location = ph_location_fullsize()) >>>> print(doc, target = "quadratic_with_arrows.pptx") >>>> >>>> If I remember I think you have to ungroup it in PowerPoint and then >>>> all elements become editable. The general approach can be done with >>>> other file formats/programs, not just PowerPoint. >>>> Tim >>>> >>>> -----Original Message----- >>>> From: R-help <r-help-boun...@r-project.org> On Behalf Of Thomas Subia >>>> via R-help >>>> Sent: Friday, August 1, 2025 10:31 AM >>>> To: r-help@r-project.org >>>> Subject: [R] ggplot with arrows >>>> >>>> [External Email] >>>> >>>> Consider: >>>> >>>> x <- seq(-5,5,length.out = 100) >>>> y <- x^2 >>>> data <- data.frame(x,y) >>>> library(ggplot2) >>>> ggplot(data,aes(x,y))+ >>>> stat_function( >>>> fun = function(x) x^2, >>>> color = "blue", linewidth = 1.25 >>>> ) + >>>> theme_linedraw() >>>> I'd like to add an arrow to the ends of curve to illustrate the curve >>>> continues indefinitely in that direction, ChatGPT suggests using >>>> geom_segment or geom_link but there has an easier way to do this. >>>> >>>> Any suggestions would be appreciated. ...... ...... ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.