On 09.06.2011 22:40, Karthik Kota wrote:
Thanks a lot! This is very helpful.

If I have to extend this to one more condition say assign "blue" if both the 
corresponding labels have "_Tongue_dorsum", is there a straight forward function. Doing 
something like below is overriding the colors assigned by the first statement.

col<- ifelse(grepl("_Anterior_nares", xlabels)&  grepl("_Anterior_nares", ylabels), 
"red", "black")
col<- ifelse(grepl("_Tongue_dorsum", xlabels)&  grepl("_Tongue_dorsum", ylabels), "blue", 
"black")


In that case go for it with your original way by, e.g., replacing

col[grepl("_Anterior_nares", xlabels) & grepl("_Anterior_nares", ylabels)] <- mycols[4]

Uwe


Again, your time is really appreciated.
Karthik


On Jun 9, 2011, at 1:56 PM, Uwe Ligges wrote:



On 09.06.2011 16:51, Karthik Kota wrote:
Hi

I am relatively new to R and am trying to figure out to plot 3d scatter plot 
using defined colors based on x-axis and y-axis values.  Right now in the code 
below, I assign colors based on certain values in the names of the x-axis.  Now 
if I want to extend the condition to assign a color based on the names of both 
x-axis and y-axis values, what should I be doing? Any help or ideas would be 
greatly appreciated.

For e.g. in my 3 column matrix below, if I want to assign "red" to all the values whose 
first column and second column contain "Anterior_nares" and  assign black to any other 
combination.


Both question and answer are not really scatterplot3d related: You probably want

col<- ifelse(grepl("_Anterior_nares", xlabels)&  grepl("_Anterior_nares", ylabels), 
"red", "black")

Best,
Uwe Ligges



Thanks!
Karthik

library(scatterplot3d)

chd1=read.table(file="test.out", header=F, sep="\t")
col=as.vector(chd1[,1])
xlabels=as.vector(chd1[,1])
ylabels=as.vector(chd1[,2])

mycols<-c("red","blue","green","chocolate","orange", "brown")
col[grep("_Stool", xlabels) ]<-mycols[1]
#col[grep("_Stool", xlabels)&&   grep("_Stool", ylabels) ]<-mycols[1]
col[grep("_Tongue_dorsum", xlabels) ]<-mycols[2]
col[grep("_Posterior_fornix", xlabels) ]<-mycols[3]
col[grep("_Anterior_nares", xlabels) ]<-mycols[4]
col[grep("_Buccal_mucosa", xlabels) ]<-mycols[5]
col[grep("_Supragingival_plaque", xlabels) ]<-mycols[6]


png(file="3dplot_test.png", w=700,h=700)

scatterplot3d(chd1[, 1], chd1[, 2], chd1[, 3], main="test", xlab="sample", ylab="sample", 
zlab="kmers", color=col,type="p")
dev.off ()


my test.out matrix looks something like this:

A011132_Anterior_nares  A011263_Anterior_nares  50130
A011132_Anterior_nares  A011397_Stool   34748
A011132_Anterior_nares  A012291_Tongue  40859
A011132_Anterior_nares  A012663_Buccal_mucosa   76213
A011132_Anterior_nares  A013155_Anterior_nares  36841
A011132_Anterior_nares  A013269_Anterior_nares  45619
A011132_Anterior_nares  A013637_Anterior_nares  56995
        [[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.



______________________________________________
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.

Reply via email to