[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: weighted scatter / different label size

From   n j cox <>
Subject   Re: st: weighted scatter / different label size
Date   Fri, 19 Oct 2007 16:58:54 +0100

Maarten Buis has posted a method which appears
to make you happy. That's good.

I want to make you unhappy again, or rather uneasy.

When people want this I often wonder they mean precisely.
Do they want the linear dimension of text to be
proportional to whatever it is, or the areal dimension?
That's two different possibilities for a start.
(Which, or what, does -mlabsize()- do?)

(I dimly recall psychological literature to the effect
that when people see areas, they perceive them roughly
as area^0.7, so it's best to be sceptical about what
people actually _decode_ from a size _encoding_.)

Or do they really mean "proportional" when they say that,
or are they thinking of some monotonic function of

Price in the auto data is unlikely to be your real example
but it illustrates the issues. Max/min is almost 5,
which is not extraordinary. With that kind of range,
it is difficult to get the smallest text readable
yet the largest not ridiculously large, and conversely
the largest text modest and the smallest text still

Just wondering.

If I had an easy solution for the problem of x, y, z
on a 2-D diagram I would have told you!


Philipp Rehm

Stata 9.2, born 20 Jul 2007, Win XP.

I would like to produce a scatter plot in which the labels are
"weighted", i.e. are proportional to the size of what they indicate.

Here is an example:

sysuse auto, clear
keep in 1/10
scatter mpg weight [w=price], ms(Oh) msize(large)

In this scatter plot, the hollow circles are weighted; their size is
proportional to the variable price.

If I add labels, however, the hollow circles all have the same size,
despite the applied weights:

scatter mpg weight [w=price], ms(Oh) msize(large) ///
	mlabel(make) mlabsize(small)

I could work around this by using a two-way graph:

twoway ///
	(scatter mpg weight [w=price], ms(Oh) msize(large)) ///
	(scatter mpg weight, ms(none) mlabel(make) mlabsize(small))

Ideally, however, I would like to have a scatter plot in which only the
labels are scattered (which I manage to do), and in which their size is
proportional to a weighting variable (which I don't manage to do).

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index