From murdoch at stats.uwo.ca  Mon Mar 13 18:33:01 2006
From: murdoch at stats.uwo.ca (murdoch@stats.uwo.ca)
Date: Mon, 13 Mar 2006 18:33:01 +0100 (CET)
Subject: [Rd] [R] dotchart: Gap between text and chart (PR#8681)
Message-ID: <20060313173301.4874F102CB@slim.kubism.ku.dk>

(Moved from r-help)

On 3/13/2006 9:33 AM, Dietrich Trenkler wrote:
> I have some data which I would like to display with dotchart. The
> labels are very long, so the chart becomes too small. Setting cex=0.7
> seems to be a good compromise, but the gap between the text and the
> chart still is too large. I did not find a "gap" parameter in the
> description of dotchart...
> 
> Thanks for any help.
> 
> D. Trenkler
> 
> 
> "a" <- structure(c(103.35, 36.73, 55.09, 302.66, 68.54, 35.46,
>     138.65, 25.21, 110.85, 6.66, 46.57, 70.23), .Names = 
> c("Nahrungsmittel und alkoholfreie Getraenke",
>     "Alkoholische Getraenke, Tabakwaren", "Bekleidung und Schuhe",
>     "Wohnungsmieten, Energie", "Einrichtungsgegenstaende", 
> "Gesundheitspflege",
>     "Verkehr", "Nachrichtenuebermittlung", "Freizeit, Unterhaltung  und 
> Kultur",
>     "Bildungswesen", "Beherbergungs und Gaststaettendienstleistungen",
>     "Andere Waren und Dienstleistungen"))
> 
> dotchart(sort(a))
> dotchart(sort(a),cex=0.7)

I've determined that this is a bug in dotchart.  It miscalculates the 
height of a line of text in the right margin, using

  lheight <- strheight("M", "inch")

which doesn't give the right answer.  You get the correct answer in this 
case by putting

  lheight <- par("mai")[2]/par("mar")[2]

but that's not a general solution, as the denominator may be zero.

I'll look for a better solution.

Duncan Murdoch



[Rd] [R] dotchart: Gap between text and chart (PR#8681)
murdoch@stats.uwo.ca