Hi,

If I understand your intentions correctly, the simplest way would be to manually insert arrows using `geom_segment()` with the `arrow` argument:

```

ggplot(data = d1, aes(x=X1,y=X2,z=Z))+
  stat_contour(breaks = c(2)) +
  stat_contour(data=d2, aes(x=X1,y=X2,z=Z), breaks=c(6)) +
  geom_segment(
    aes(x = 1.25, y = 1.50, xend = 1.4, yend = 1.325),
    arrow = arrow(length = unit(0.5, "cm"))
  ) +
  geom_segment(
    aes(x = 1.6, y = 1.95, xend = 1.8, yend = 1.75),
    arrow = arrow(length = unit(0.5, "cm"))
  )

```

If your actual data is organized differently, you may also be able to do this in a more elegant programmatic way. Here is a StackOverflow conversation about this exact topic, one Google search away: https://stackoverflow.com/questions/38008863/how-to-draw-a-nice-arrow-in-ggplot2

Have a nice day,

Lennart Kasserra

Am 11.01.24 um 01:13 schrieb Deepankar Basu:
Hello,

I am drawing contour lines for a function of 2 variables at one level of
the value of the function and want to include a small arrow in any
direction of increase of the function. Is there some way to do that?

Below is an example that creates the contour lines. How do I add one small
arrow on each line in the direction of increase of the function (at some
central point of the contour line)? Any direction will do, but perhaps the
direction of the gradient will be the best.

Thanks in advance.
DB

--------------------------------------------

library(tidyverse)

x <- seq(1,2,length.out=100)
y <- seq(1,2,length.out=100)

myf <- function(x,y) {x*y}
myg <- function(x,y) {x^2 + y^2}

d1 <- expand.grid(X1 = x, X2 = y) %>%
   mutate(Z = myf(X1,X2)) %>%
   as.data.frame()

d2 <- expand.grid(X1 = x, X2 = y) %>%
   mutate(Z = myg(X1,X2)) %>%
   as.data.frame()

ggplot(data = d1, aes(x=X1,y=X2,z=Z))+
   stat_contour(breaks = c(2)) +
   stat_contour(data=d2, aes(x=X1,y=X2,z=Z), breaks=c(6))

        [[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 http://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 http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to