Dr. Alireza Zolfaghari
2015-Jan-23 21:12 UTC
[R] plot circles where z values are circles radius
Hi there,
I am trying to plot z values using Circle symbol. Each x and y has a value
which will be plotted using a circle where circle's radius is corrlated
with the value of z.
I wrote the code , but unable to change the size of circle no matter what I
chose for Scale. Any help please?
x=c(84390255386 ,84390255386, 78028317380 ,53594648044,422)
y=c(949849442 ,941645043, 840135292, 74, 821632939)
z=c(0.005641896, 0.005641896 ,0.005641896, 0.007978846,0.007978846)
convertToRadius<-function(x){return(sqrt(x/pi))}
scale=0.3
xlims =c(min(x),max(x))
ylims =c(min(y),max(y))
z=convertToRadius(z)*scale
symbols(x,y, circles=z, fg='red')
thanks
Alireza
[[alternative HTML version deleted]]
Hi,
see the help and especially the argument inches:
Argument inches controls the sizes of the symbols. If TRUE (the default), the
symbols are scaled so that the largest dimension of any symbol is one inch. If a
positive number is given the symbols are scaled to make largest dimension this
size in inches (so TRUE and 1 are equivalent). If inches is FALSE, the units are
taken to be those of the appropriate axes. (For circles, squares and stars the
units of the x axis are used. For boxplots, the lengths of the whiskers are
regarded as dimensions alongside width and height when scaling by inches, and
are otherwise interpreted in the units of the y axis.)
Try
scale=500000000000
xlims =c(min(x),max(x))
ylims =c(min(y),max(y))
z=convertToRadius(z)*scale
symbols(x,y, circles=z, fg='red', inches=FALSE)
HTH
kd
________________________________________
Felad?: R-help [r-help-bounces at r-project.org] ; meghatalmazó: Dr.
Alireza Zolfaghari [ali.zolfaghari at gmail.com]
K?ldve: 2015. janu?r 23. 22:12
To: R-help; r-help-request at r-project.org
T?rgy: [R] plot circles where z values are circles radius
Hi there,
I am trying to plot z values using Circle symbol. Each x and y has a value
which will be plotted using a circle where circle's radius is corrlated
with the value of z.
I wrote the code , but unable to change the size of circle no matter what I
chose for Scale. Any help please?
x=c(84390255386 ,84390255386, 78028317380 ,53594648044,422)
y=c(949849442 ,941645043, 840135292, 74, 821632939)
z=c(0.005641896, 0.005641896 ,0.005641896, 0.007978846,0.007978846)
convertToRadius<-function(x){return(sqrt(x/pi))}
scale=0.3
xlims =c(min(x),max(x))
ylims =c(min(y),max(y))
z=convertToRadius(z)*scale
symbols(x,y, circles=z, fg='red')
thanks
Alireza
[[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.
I think what you should look at are these web sites I found with a Google search: http://flowingdata.com/2010/11/23/how-to-make-bubble-charts/ http://www.r-bloggers.com/bubble-plots-ggplot2/ http://cran.r-project.org/web/packages/HSAUR/vignettes/Ch_logistic_regression_glm.pdf http://cran.r-project.org/web/packages/mapplots/mapplots.pdf Cheers! Tom On Fri, Jan 23, 2015 at 2:12 PM, Dr. Alireza Zolfaghari < ali.zolfaghari at gmail.com> wrote:> Hi there, > I am trying to plot z values using Circle symbol. Each x and y has a value > which will be plotted using a circle where circle's radius is corrlated > with the value of z. > > I wrote the code , but unable to change the size of circle no matter what I > chose for Scale. Any help please? > > x=c(84390255386 ,84390255386, 78028317380 ,53594648044,422) > y=c(949849442 ,941645043, 840135292, 74, 821632939) > z=c(0.005641896, 0.005641896 ,0.005641896, 0.007978846,0.007978846) > > convertToRadius<-function(x){return(sqrt(x/pi))} > > scale=0.3 > > xlims =c(min(x),max(x)) > ylims =c(min(y),max(y)) > z=convertToRadius(z)*scale > > symbols(x,y, circles=z, fg='red') > > thanks > Alireza > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >[[alternative HTML version deleted]]
Hi Alireza,
Part of the problem is the scale of your numbers. You probably want
something like this.
plot(x,y,cex=z/min(z)*2)
What happens here is that the default plotting character, which
happens to be a circle, is plotted in a size relative to the ratio of
each z value to the minimum z value. This is because the default value
of cex is 1. I have multiplied the result by 2 to make what is
happening more obvious. If you want to generate circles with specific
diameters, you will have to scale these to the area of the plot in
user units - see par("usr").
Jim
On Sat, Jan 24, 2015 at 8:29 AM, Thomas Adams <tea3rd at gmail.com>
wrote:> I think what you should look at are these web sites I found with a Google
> search:
>
> http://flowingdata.com/2010/11/23/how-to-make-bubble-charts/
> http://www.r-bloggers.com/bubble-plots-ggplot2/
>
http://cran.r-project.org/web/packages/HSAUR/vignettes/Ch_logistic_regression_glm.pdf
> http://cran.r-project.org/web/packages/mapplots/mapplots.pdf
>
>
> Cheers!
> Tom
>
> On Fri, Jan 23, 2015 at 2:12 PM, Dr. Alireza Zolfaghari <
> ali.zolfaghari at gmail.com> wrote:
>
>> Hi there,
>> I am trying to plot z values using Circle symbol. Each x and y has a
value
>> which will be plotted using a circle where circle's radius is
corrlated
>> with the value of z.
>>
>> I wrote the code , but unable to change the size of circle no matter
what I
>> chose for Scale. Any help please?
>>
>> x=c(84390255386 ,84390255386, 78028317380 ,53594648044,422)
>> y=c(949849442 ,941645043, 840135292, 74, 821632939)
>> z=c(0.005641896, 0.005641896 ,0.005641896, 0.007978846,0.007978846)
>>
>> convertToRadius<-function(x){return(sqrt(x/pi))}
>>
>> scale=0.3
>>
>> xlims =c(min(x),max(x))
>> ylims =c(min(y),max(y))
>> z=convertToRadius(z)*scale
>>
>> symbols(x,y, circles=z, fg='red')
>>
>> thanks
>> Alireza
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.