For some, the purist perspective is to automate a process using a single
tool. Some see it as pure to use a series of (often smaller and more focused
set of) tools that together do the job.

In a sense, ggplot is closer to the latter with endless extensions you can
add in to tweak a result and sometimes people stand on their heads to do
something that could be done with less effort by a technique like switching
mid-way to another tool, perhaps with a manual component. 

The suggestion by Tim is reasonable and, as he notes, common enough
especially for one-time projects or people who are not as great at R
programming as using other tools like PowerPoint or EXCEL. And, sometimes
you have to hand your work to a client who wants to adjust things just so
using the tool of their choice, including playing with fonts or where to
wrap text or position things more precisely.

Of course, if you do things repeatedly such as make a new graph every day
with more data, it gets annoying to have to step out each time and take a
saved file and open it anew and ...


-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Ebert,Timothy Aaron
Sent: Friday, August 1, 2025 10:44 AM
To: Thomas Subia <tgs...@yahoo.com>; r-help@r-project.org
Subject: Re: [R] ggplot with arrows

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.


        [[alternative HTML version deleted]]

______________________________________________
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.

______________________________________________
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.

______________________________________________
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.

Reply via email to