Print

Print


Dear All

Here is the responses.

The sections are:

1. The query asked
2. Summary of answers
3. Responses in full with suggested packages.
4. Response from J.Warner that is of interest.


1. Query
---------
This is a satisfy my curiosity.

Does anyone know of a statistical, mathematical or graphical
package that will draw a true histogram without major
programming?

I know SPSS, Excel, Minitab and other do a histogram by dividing
the data range into equal length segments and then drawing a
barchart with the frequency of each segment along y Axis. I am not
looking for this.

I am looking for something that will, without the cludge above, plot
a graph where the area of the segment is proportional to the
frequency within the segment. That is you do not need to have the
segments range equal in each case.

I have once needed to do this. At the time I looked at Sigmaplot,
asked a colleague about Matlab and tried in SPlus.

In the end I did a cludge in Excel. I would guess that I could
programme SPlus to do the same cludge. That is to trace the
outline of the graph via a line graph but anyone come across
anything sensible.

---

2. Summary of responses
-------------------------------------

Firstly as pointed out by Denise Howell and Paul Taylor Minitab
does this. I have tried it out and got it to work. The trick is to
choose density and then specify the cut points.

Secondly SPlus looks as if it does this from menus. I have failed to
get it to do this but that my be me misunderstanding the dialogue.
Love it for programming but I find the dialogues tricky.

Thirdly there are Genstat and Statsdirect which people said were
capable of doing this but I do not have access to them to check.

Finally there are user written  routines in Stata for doing this. As
indeed there are is Splus and R.

Jay Warners email is added as it takes the debate further.


Thanks to everyone who answered.

Jean Russell

--Full responses by package.

Genstat

-- Sue Welham

 GenStat will do this for you. By default, bin widths are
 equal so this is not an issue. However, if you specify your
 own limits for the histogram bars, the heights will be scaled
 accordingly. In this case the y-axis no longer represents
 frequency directly, but you have control over it's scaling
 factor. There is also an option to produce a barchart if you
 prefer this representation of the data. There are some
 circumstances where this is required.

 For further details see
http://www.vsn-intl.com/genstat/index.htm where you can download
a free demo copy.

---Kevin McConway
The pachage R will do it. So will GenStat.


---


Minitab

--- Dialogue with Denise Howell

Denise: MINITAB will draw a 'proper' histogram if you choose
'Density'
        under the Histogram Options choices.

Jean: Sorry I checked this and it is not. They are still using the
cludge
      described for SPSS.

      I set it skewed data and I got what I would get from SPSS. The
      requirement is that the width of the bars is not always the
same. I
      should have a very low long bar at the end. Instead I had a
      disconnected column the same width as the others more
central to
      the data.

Denise: It's worked before for me.
        I don't know how your data is entered. But you can specify
the bar-
        widths by the providing 'mid-point/cutpoint' positions in the
Definition
        of intervals Histogram Option.

--- Paul Taylor

minitab will draw true histograms - check the options. So will Splus
(or
R)


Stata

---Nick Cox

You can do this within Stata with a -barplot- program written by a
user (me) which is in the public domain. You must specify heights,
widths and midpoints of bars.

I should add that it would be easy to write a much smarter program
in Stata
to do it automatically given data and a list of cutpoints. But I have
never
yet wanted to do it, even once. And your question is, I think, about
existing
solutions, and you are not seeking "in principle this is trivial ..."
answers.

---Paul Seed


Stata has a free user-written command -hist3- that achieves
exactly this.
If you have Stata version 7.0, the command -findit histogram- will
turn it
up,
along with some 20 other versions on histograms & bar charts,
anmd it can be
downloaded immeidately.

A command such as hist3 mpg , xlab(10(10)50) ylab(0(.02).1)
values(10(2)30 30(5)50)
will give a histogram of a single variable (here mpg) with bars of
width 3
up to 30 and 5 beyond.

In contrast, hist3 mpg , xlab(10(10)50) ylab(0(.02).1) values(10(2)30)
puts all the values above 30 into a single bar, ending at the last
value.



One of the good things about Stata is that there are so many user-
written
commands available that for any straightforward request, that is not
covered by the main there is almost certainly a command to do it.

---
Splus & R


---Paul Hewson


Modern Applied Statistics using S Plus (Venable and Ripley 1999)
has some
stuff on this, and there is associated software (truehist function).

Is this what you are looking for?

--- Paul Taylor

minitab will draw true histograms - check the options. So will Splus
(or
R)


---Kevin McConway
The pachage R will do it. So will GenStat.

StatsDirect

--- Iain Buchan

See the Graphics menu in StatsDirect.

Free 10 day trial can be installed from
http://www.statsdirect.com/update.htm


4.Response from Jay Warner that is of interest.

Aside from the fact that Tufte (Edward R. Tufte, The Visual Display
of
Quantitative Information, Graphics Press,  Box 430, Cheshire, CN
06410        1983 ) cautions against the form of histogram that I
think
you are looking for, I'd suggest examination of DeltaGraph.

Tufte says width of the bars should be proportional to the width of
the
range, which is what you are looking for, I gather.  He also says,
that
uniform range widths is better as a general rule.  What he really
dislikes is the people who use uniform bar widths, with non uniform
range widths, and you are avoiding that in any case.



------------------------------------------------------
Jean M. Russell M.A. M.Sc.   [log in to unmask]
Corporate Information & Computing Services,
University of Sheffield
285 Glossop Road
Sheffield
S10 2HB
United Kingdom
Phone:  0114-222-3098
Fax  :  0114-222-3040