[R] Bar Plot with Connected Points on 1 Y-Axis
jimdare
jamesdare26 at gmail.com
Fri Jan 9 00:14:08 CET 2009
Cheers Marc, it works perfectly now. Thanks for your help!
Marc Schwartz wrote:
>
> You can generalize the approach by using something like:
>
> ...
> ylim = c(0, max(DF$TACC, DF$Catch) * 1.1)
> ...
>
>
> That would allow you to use the max value of the two columns, multiplied
> by a fudge factor, which you can adjust as needed. In this case,
> increasing the y axis range by 10% to make room.
>
> HTH,
>
> Marc
>
> on 01/07/2009 02:31 PM jimdare wrote:
>> Thanks Marc, that has helped a lot. Say, for example, in a situation
>> where I
>> can't find out the highest value, is there any way to get R to
>> automatically
>> detect this and adjust the axis accordingly? I am planning to do this
>> for
>> many different stocks at once and dont wan't to have to define the
>> highest
>> value for each. I could set a standard axis value based on the max
>> values
>> of all stocks, however the detail will be lost for many of the less
>> exploited species.
>>
>>
>> Marc Schwartz wrote:
>>> on 01/06/2009 09:07 PM jimdare wrote:
>>>> Hi Everyone,
>>>>
>>>> Have created a bar plot of the data below using the following code:
>>>> barplot(TACC,space=0,names.arg=Year). I now want to add a series of
>>>> connected points to represent the catch. I tried to do this using
>>>> line(Catch) or points(Catch), however both of these commands result in
>>>> each
>>>> data point being aligned with the right edge of each bar. I need them
>>>> to
>>>> be
>>>> solid points in the centre of each bar, and for each point to be
>>>> connected
>>>> to its neighbour by a line. Another issue I have is when the points
>>>> exceed
>>>> the values for the bar graph (e.g. in 2004 and 2005 catch>TACC) R seems
>>>> to
>>>> cut them off, I need the axis to be expanded so they can be seen. I'm
>>>> sure
>>>> these are relatively simple problems but I am really stuck. Thanks
>>>> very
>>>> much for all your help, it is much appreciated.
>>>>
>>>> James
>>>>
>>>> DATA:
>>>>
>>>> Year Species Stock TACC Catch
>>>> 1 2001 ORH OR1 5000 4687
>>>> 2 2002 ORH OR1 6000 3215
>>>> 3 2003 ORH OR1 7000 6782
>>>> 4 2004 ORH OR1 9000 10000
>>>> 5 2005 ORH OR1 9000 12000
>>> One key point to note is that barplot() returns the bar midpoints. This
>>> is noted in the help for barplot(). The bars are not centered on integer
>>> axis values, so you need the returned values to place additional
>>> annotation in the proper location relative to the bars.
>>>
>>> The other thing is to set the range of the y axis using the maximum
>>> value in Catch, plus some fudge, so that the plot covers both sets of
>>> data and has enough room for the additional points.
>>>
>>> Thus, presuming that your data is in a data frame called 'DF':
>>>
>>> mp <- barplot(DF$TACC, space = 0, names.arg = DF$Year,
>>> ylim = c(0, 13000))
>>>
>>> # Now use lines() to add Catch
>>> lines(mp, DF$Catch, type = "b", pch = 19)
>>>
>>> See ?barplot, ?lines and ?points for more information.
>>>
>>> HTH,
>>>
>>> Marc Schwartz
>>>
>
> ______________________________________________
> 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.
>
>
--
View this message in context: http://www.nabble.com/Bar-Plot-with-Connected-Points-on-1-Y-Axis-tp21324029p21362442.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list