On Mon, Jun 16, 2008 at 3:55 PM, hadley wickham <[EMAIL PROTECTED]> wrote:
> On Mon, Jun 16, 2008 at 7:52 AM, mfrumin <[EMAIL PROTECTED]> wrote: > > > > Dear all, > > > > With normal plotting, one can size a set of points in a plot using a > vector > > argument to cex in the points() function. This works whether you are > using > > one of the standard R symbols (i.e. 19+) or some ascii symbol, such as > '/' > > > > eg: > > plot(1:10, 1:10, type='n'); > > points(1:10, 1:10, cex = 1:10, pch = '/') > > > > Trying to make the transition to ggplot2, I find that the aesthetic size > > mapping does not apply if i do geom_point(..., shape='/') -- the points > show > > up looking like '/' but they are not sized. Is there anything to do > about > > this? > > > > eg: > > ggplot(data = data.frame(x = 1:10, y = 1:10, size = 1:10), aes(x = x, y = > > y)) + geom_point(mapping = aes(size = size), shape = '/') > > > > the plot that I'm making really needs a vertically oriented mark, not a > > round-ish point/square/triangle that takes up a lot of area. am I totally > > out of luck? > > Hmmm, I'd never noticed this "feature" of grid before. To size the > points, I'm using the size argument of grid.points, which doesn't seem > to affect the size of character based plotting symbols (because the > are using the fontsize graphical parameter). I've cc'd Paul on this > email so he can confirm whether this is a bug or by design. > > Regardless, you can make ggplot size the symbols correctly by running > the following code: > > GeomPoint$draw <- function(., data, scales, coordinates, ...) { > with(coordinates$transform(data), > ggname(.$my_name(), pointsGrob(x, y, size=unit(size, "mm"), pch=shape, > gp=gpar(col=colour, fill = fill, fontsize = size * .pt))) > ) > } > > Hadley > > -- > http://had.co.nz/ > Thanks for getting back to me so quickly. This mostly works, in that: - When I ran it just as you sent it, I get this error: Error in inherits(x, "factor") : object "fill" not found - but when I took out "fill = fill" from your suggestion above, I get the desired effect. - but this does not change the shape shown in the scale for the sized points. they are still big circles. but come to think of it, even setting shape = 20 or some other vector point-type, this doesn't effect the shape shown in the scale/legend thingy. so I guess that's a separate question, I will post it under separate cover. thanks! mike [[alternative HTML version deleted]] ______________________________________________ R-help@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.