[R] ggplot with arrows
@vi@e@gross m@iii@g oii gm@ii@com
@vi@e@gross m@iii@g oii gm@ii@com
Fri Aug 1 17:04:55 CEST 2025
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-bounces using r-project.org> On Behalf Of Ebert,Timothy Aaron
Sent: Friday, August 1, 2025 10:44 AM
To: Thomas Subia <tgs77m using yahoo.com>; r-help using 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-bounces using r-project.org> On Behalf Of Thomas Subia via
R-help
Sent: Friday, August 1, 2025 10:31 AM
To: r-help using 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 using 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 using 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.
More information about the R-help
mailing list