[R] (no subject)
David Winsemius
dwinsemius at comcast.net
Sun Apr 15 23:42:56 CEST 2012
On Apr 15, 2012, at 4:18 PM, Fino Fontana wrote:
> Thanks David, for helping out. Works great. A question about your
> added lines of code:
>
>
> with
> your are setting the margins, and you store them in opar
> next, par(opar) does nothing,
I disagree (and you offer no counter-examples, as would most
experienced users of R I believe. Look at the first two examples on
help(par). The warning applies to situations where you are building
functions. I was just offering a solution that would work at the
console.
Here's my counter-example to your claim.
> par("mar")
[1] 5.1 4.1 4.1 2.1
> opar <- par(mar=c(8,3,2,2))
> par("mar")
[1] 8 3 2 2
> str(opar)
List of 1
$ mar: num [1:4] 5.1 4.1 4.1 2.1
> par(opar)
> par("mar")
[1] 5.1 4.1 4.1 2.1
par() like many graphics functions works via side-effects.
--
David.
> I think because it just sets the same margins again.
>
> shouldn't this be something like the following:
>
> opar <- par( 'all graphics parameter') # store all current graphic
> parameters (in correct R language of course)
> par(mar=c(8,3,2,2) # set new margins
> barplot(...)
> par(opar) # restore former graphics parameters.
>
> Regards,
> Fino
>
>
> ----- Original Message -----
> From: David Winsemius <dwinsemius at comcast.net>
> To: David Winsemius <dwinsemius at comcast.net>
> Cc: Fino Fontana <finofontana at yahoo.com>; "r-help at r-project.org" <r-help at r-project.org
> >
> Sent: Sunday, April 15, 2012 3:23 AM
> Subject: Re: [R] (no subject)
>
>
> On Apr 14, 2012, at 9:21 PM, David Winsemius wrote:
>
>>
>> On Apr 14, 2012, at 8:11 PM, Fino Fontana wrote:
>>
>>> I am wrestling with the following in creating a barplot in R:
>>> I have a data set with 18 entries. It is plotted in a bargraph.
>>> The x-axis should have 18 tick marks each with its own label. What
>>> happens is, only a few labels are shown; there is not enough space
>>> for all labels. The tick marks are concentrated on the left side
>>> of the axis.
>>
>> The mar parameter to par() will give you control of the lower
>> margin and the 'las' parameter will give you control of the axis
>> label orientation:
>>
>> barplot(times$duur, names.arg= times$taak, las=3, mar=c(8,3,2,2) )
>
> Make that:
>
>> opar <- par(mar=c(8,3,2,2))
>> barplot(times$duur, names.arg= times$taak, las=3 )
>> par(opar)
>
>>
>> I'd like to have all labels shown, in vertical direction.
>>>
>>> This is part of the data:
>>>
>>>> times
>>> taak duur
>>> 1 algemeen 48.75
>>> 2 swimming 14.25
>>> 3 football 24.25
>>> 4 tennis 36.75
>>> 5 bicycling 1.50
>>>
>>> Under 'taak' are the labels.
>>> This is the code that should do the job:
>>>
>>> barplot(
>>> width= bar_width,
>>> times$duur,
>>> names.arg=times$taak,
>>> col=fill_colors,
>>> border="NA",
>>> space=0.3,
>>> xlab="taak",
>>> ylab="uren",
>>> main="Uren per taak")
>>>
>>> axis(1,at=1:length(times$taak),lab=times$taak)
>>>
>>>
>>> Could anyone give me advise on how to get rid of this horrible x
>>> axis?
>>>
>>> Thanks and r
>>>
>
> David Winsemius, MD
> West Hartford, CT
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list