[R] Bar Plot with Connected Points on 1 Y-Axis
jimdare
jamesdare26 at gmail.com
Wed Jan 7 21:31:58 CET 2009
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-tp21324029p21339649.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list