[R] function curve() swap axes

Duncan Murdoch murdoch.duncan at gmail.com
Thu Jul 5 16:47:36 CEST 2012


On 05/07/2012 8:34 AM, Boudewijn Verkooijen wrote:
> Dear all,
>
> I'm using the curve() function to plot discharge Q against water depth a.
> However, I would like to have a graph of water depth a plotted against
> discharge Q. How can this be done?
curve() is designed for plotting y vs x where y is a function of x, so I 
think you need to do it yourself.  Simply compute a vector of "a" values 
using seq(), compute the corresponding Q values using your formula, and 
then use

plot(Q, a, type="l")

You can add the lwd and other arguments too if you like.

Duncan Murdoch
> Minimal working example:
> S0 = 0.004
> n = 0.04
> tanalpha = 1.4/1.5
> par(mar = c(5,5,1,1)) # b, l, t, r
> curve((sqrt(S0)/n)*(0.035+(0.7+(x-0.1)/tanalpha)*(x-0.1))*((0.035+(0.7+(x-0.1)/tanalpha)*(x-0.1))/(2*sqrt((0.7/2)^2+0.1^2)+2*sqrt((x-0.1)^2+((x-0.1)/tanalpha)^2)))^(2/3),0.1,1.55,
> lwd = 3, col = "royalblue4", ann = F, axes = T)
> title(xlab = parse(text='a~bgroup("[", m, "]")'))
> title(ylab = parse(text='Q~bgroup("[", m^3/s, "]")'))
> box()
> I tried to find the inverse function, but that doesn't seem to exist.
> Thank you for support,
> Boudewijn
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.



More information about the R-help mailing list