I have been ussing this code displayed while a go to do balloons plots.
My problem is that the labels of the data i'm working on now are to big and they overlap in the X axis.
Is there any way i can plot the text vertically or with some inclination?
Thanks
Ramon
Warnes, Gregory R wrote:
Ahh yes, sorry about that.
Here's the corrected snippet:
# Create an Example Data Frame Containing Car x Color data carnames <- c("bmw","renault","mercedes","seat") carcolors <- c("red","white","silver","green") datavals <- round(rnorm(16, mean=10, sd=4),1) data <- data.frame(Car=rep(carnames,4), Color=rep(carcolors, c(4,4,4,4) ), Value=datavals ) # show the data data
# plot the Car x Color combinations, using 'cex' to specify the dot size
plot(x=as.numeric(data$Car), # as.numeric give numeric values
y=as.numeric(data$Color), cex=data$Value/max(data$Value)*12, # standardize size to (0,12)
pch=19, # filled circle
col="skyblue", # dot color
xlab="Car", # x axis label
ylab="Color", # y axis label
xaxt="n", # no x axis lables
yaxt="n", # no y axis lables
bty="n", # no box around the plot
xlim=c(0,nlevels(data$Car )+0.5), # extra space on either end of plot
ylim=c(0.5,nlevels(data$Color)+1.5) # so dots don't cross into margins
)
# add text labels text(x=1:nlevels(data$Car), y=nlevels(data$Car)+1, labels=levels(data$Car)) text(x=0, y=1:nlevels(data$Color), labels=levels(data$Color) )
# add borders between cells abline(v=(0:nlevels(data$Car)+0.5)) abline(h=(0:nlevels(data$Color)+0.5))
# annotate with actual values
text(x=as.numeric(data$Car), # as.numeric give numeric values
y=as.numeric(data$Color), labels=format(data$Value), # label value
col="black", # textt color
)
# put a nice title title(main="Car by Color Popularity\n(Dot size proportional to popularity)")
-Greg
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Friday, January 03, 2003 1:53 PM To: Warnes, Gregory R Cc: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]' Subject: RE: Take care with codes()! (was [R] type of representation)
From the help page of codes():
Normally `codes' is not the appropriate function to use with an unordered factor. Use `unclass' or `as.numeric' to extract the codes used in the internal representation of the factor, as these do not assume that the codes are sorted.
and this is one of the `normally' cases. Your code will only work
correctly if the levels are in alphabetical order (in the locale in use).
On Fri, 3 Jan 2003, Warnes, Gregory R wrote:
How about this snippet:
# Create an Example Data Frame Containing Car x Color data carnames <- c("bmw","renault","mercedes","seat") carcolors <- c("red","white","silver","green") datavals <- round(rnorm(16, mean=10, sd=4),1) data <- data.frame(Car=rep(carnames,4), Color=rep(carcolors, c(4,4,4,4) ), Value=datavals ) # show the data data
# plot the Car x Color combinations, using 'cex' to specify
the dot size
plot(x=codes(data$Car), # codes give numeric values
y=codes(data$Color),
cex=data$Value/max(data$Value)*12, # standardize size
to (0,12)
pch=19, # filled circle
col="skyblue", # dot color
xlab="Car", # x axis label
ylab="Color", # y axis label
xaxt="n", # no x axis lables
yaxt="n", # no y axis lables
bty="n", # no box around the plot
xlim=c(0,nlevels(data$Car )+0.5), # extra space on
either end of plot
ylim=c(0.5,nlevels(data$Color)+1.5) # so dots don't
cross into margins
)
# add text labels
text(x=1:nlevels(data$Car), y=nlevels(data$Car)+1,
labels=levels(data$Car))
text(x=0, y=1:nlevels(data$Color), labels=levels(data$Color) )
# add borders between cells abline(v=(0:nlevels(data$Car)+0.5)) abline(h=(0:nlevels(data$Color)+0.5))
# annotate with actual values text(x=codes(data$Car), # codes give numeric values y=codes(data$Color), labels=format(data$Value), # label value col="black", # textt color )
# put a nice title
title(main="Car by Color Popularity\n(Dot size proportional
to popularity)")
-Greg
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Friday, January 03, 2003 4:46 AM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: [R] type of representation
Hi
I have some data that i want to plot but i don't find how to do it. I have car types (bmw,renault,mercedes,seat ...), colors and a number for each car type-color relation.I want to come up with a matrix representation of cars vs colors where in each intersection i could set a dot proportional in size to my third variable.
Can anybody give me a clue of hoe to come up with such
representation.
Thanks
Ramon
______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help
LEGAL NOTICE\ Unless expressly stated otherwise, this
message is ... [[dropped]]
______________________________________________ [EMAIL PROTECTED] mailing list http://www.stat.math.ethz.ch/mailman/listinfo/r-help
-- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
LEGAL NOTICE Unless expressly stated otherwise, this message is confidential and may be privileged. It is intended for the addressee(s) only. Access to this E-mail by anyone else is unauthorized. If you are not an addressee, any disclosure or copying of the contents of this E-mail or any action taken (or not taken) in reliance on it is unauthorized and may be unlawful. If you are not an addressee, please inform the sender immediately.
-- Ramon Alonso-Allende Erhardt Tel: 91 585 46 76 Protein Design Group fax: 91 585 45 06 CNB/CSIC Campus U. Autonoma. Cantoblanco Madrid 28049 http://www.pdg.cnb.uam.es/allende/index.html
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
