[R] Plotting multiple ablines

Uwe Ligges ligges at statistik.tu-dortmund.de
Thu Apr 2 11:42:07 CEST 2009



Rolf Turner wrote:
> 
> On 2/04/2009, at 7:04 AM, Thomas Levine wrote:
> 
>> I really want to do this:
>>
>> abline(
>> a=tan(-kT*pi/180),
>> b=kY-tan(-kT*pi/180)*kX
>> )
>>
>> where kX,kY and kT are vectors of equal length. But I can't do that
>> with abline unless I use a loop, and I haven't figured out the least
>> unelegant way of writing the loop yet. So is there a way to do this
>> without a loop?
>>
>> Or if I am to resort to the loop, what's the best way of doing it
>> considering that I have some missing data? Here's the mess that I
>> wrote.
>>
>> converge <- na.omit(data.frame(kX,kY,kT))
>> for (z in (length(converge$kT)))
>> {abline(
>> a=tan(converge$kT[z]*pi/180),
>> b=converge$kY[z]-tan(-converge$kT[z]*converge$kX[z]*pi/180)
>> )}
>>
>> I think the missing data are causing the problem; this happens when I 
>> run:
>>
>> Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) :
>>   'a' and 'b' must be finite
> 
> The help for abline explicitly states that a and b must be ``single 
> values'';
> so no vectorization appears to be possible, as abline is currently written.
> Hence you are stuck with a for-loop.
> 
> There appears to be nothing wrong with the for-loop that you've written,
> at first blush at least.


Or use mapply(). Untested:

mapply(abline, tan(converge$kT * pi / 180),
        converge$kY - tan(-converge$kT * converge$kX * pi / 180))

Uwe Ligges



> 
> There won't be NAs in ``converge'' since you've very cleverly used na.omit.
> So ``missing data'' are NOT the problem.
> 
> The problem is then (probably) that some of your data are yielding infinite
> values of tan().
> 
> ***Look*** at the values in converge.  ***Look*** at the values of a and b
> produced in your loop and see where you're getting infinite values.
> 
>     cheers,
> 
>         Rolf Turner
> 
> ######################################################################
> Attention:\ This e-mail message is privileged and confid...{{dropped:9}}
> 
> ______________________________________________
> 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