[R] Balloon plot scaling problem

Ruddy Kathy kathy.ruddy at hest.ethz.ch
Fri May 23 14:19:11 CEST 2014


Hi Guys,

I have been trying to create a 'balloon plot' using R, which is where the
points in a plot are scaled such that the size of the point (area)
represents the value. Eg. A small point may represent 2 and a big point may
represent 10.
The problem is that my data range between 0.3 and 0.52, which is a very
small difference between the smallest and largest values. I would like 0.3
to be represented by the smallest balloon (point) and 0.52 to be represented
by the largest balloon (point). The code allows you to enter 'limits' which
I set from 0.3 to 0.52 but regardless of this it seems to scale the balloons
assuming that the scale starts at 0, rather than at 0.3. As a result, the
difference in size between my different values is barely noticeable- all the
balloons are close to the largest size.
The matrix of data is too large for me to add here, but imagine a square
matrix with headers along the top and sizes like this:

         X                 a_PMd     b_SMAproper c_pre.SMA     d_M1a     e_S1     f_CMA     g_PMv     h_M1p
1       a_PMd         0.4938019   0.5076123 0.5135090 0.4906899 0.4021556 0.4212536 0.4038168 0.3471316
2 b_SMAproper     0.5076123   0.4814135 0.4728626 0.4372118 0.3008708 0.4024063 0.4249524 0.4133340
3   c_pre-SMA       0.5135090   0.4728626 0.4727388 0.3944285 0.4695559 0.3870128 0.4082124        NA
4       d_M1a         0.4906899   0.4372118 0.3944285 0.4675951 0.4450485 0.3899106 0.3376981 0.4298238
5        e_S1          0.4021556   0.3008708 0.4695559 0.4450485 0.4158451 0.3941677 0.3055601 0.3726385
6       f_CMA         0.4212536   0.4024063 0.3870128 0.3899106 0.3941677 0.3656597 0.3655603 0.4112778
7       g_PMv         0.4038168   0.4249524 0.4082124 0.3376981 0.3055601 0.3655603 0.3471682 0.3035210
8       h_M1p         0.3471316   0.4133340        NA     0.4298238 0.3726385 0.4112778 0.3035210 0.3267115

I then use Melt to put it into the format that the plot requires:

krdata2<-melt(krdata1,value.name="median")


balloon=ggplot(krdata2,aes(x=X,y=variable))+
geom_point(aes(size=median),shape=21,color="black",fill="lightblue")+
scale_size_area(max_size=40,limits=c(0.3, 0.52),guide="legend",
breaks=waiver(), expand=waiver())

print(balloon)



As you can see, I have set the limited to 0.3- 0.52, but still it assumes
that the scale starts at 0 and the smallest balloon would be around a value
of 0.1.


Anybody got any ideas for how to change this scaling??
I would be very grateful!!

Thank you in advance

Kathy



More information about the R-help mailing list