[R] scatterplot3d - help assign colors based on multiple conditions

Uwe Ligges ligges at statistik.tu-dortmund.de
Fri Jun 10 10:10:00 CEST 2011



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



More information about the R-help mailing list