Bar plots with stacked columns marked with askterisks
1
0
Entering edit mode
dorothyc ▴ 140
@dorothyc-3150
Last seen 10.3 years ago
Hi, I'm trying to plot bar graphs with stacked columns marked with askterisks for certain columns, which follow certain criteria. I've gotten the stacked bar plots with Data set A (please refer to code below and plot attached). However, I haven't figured how to put asterisks on columns based on some extra information (such as "used/ unused") as in Data set B i.e. asterisks at the top of the Index1 and Index3 columns. ---- R code ---- title = 'frequency' filename = 'testdata2.txt' sample_output = 'sequences' # read in data my.data <- read.delim(filename, sep="\t") # data from second column onward my.dataM <- my.data[,2:ncol(my.data)] # rownames in first column rownames <- my.data[,1] # define colours for the categories col = c ("red ","orange ","yellow ","green ","violet ","cyan","blue","pink","peachpuff","tomato","seagreen","salmon") my.dataNcol <- ncol(my.data[,2:ncol(my.data)]) my.dataColour <- col[1:my.dataNcol] # colors() returns all the colours recognized by R # a bar plot with stacked bars if (is.null(sample_output)) { pdf( "BarPlot.pdf") } else { pdf(file=paste("BarPlot_", sample_output, ".pdf", sep="")) } barplot(as.matrix(my.dataM), main=title, legend=rownames, col=c(my.dataColour) ) dev.off() ------Dataset A: data used with code above------ "" "Index1" "Index2" "Index3" "matched" 0.819 0.174 0.007 "errors" 0.619 0.314 0.067 "unmatched" 0.479 0.385 0.136 ------Dataset B: data intended to use ----- --(last row "used/unused" for determining whether to mark column with asterisk or not)--- "" "Index1" "Index2" "Index3" "matched" 0.819 0.174 0.007 "errors" 0.619 0.314 0.067 "unmatched" 0.479 0.385 0.136 "used/unused" y n y ------- Thanks, Dorothy [[alternative HTML version deleted]]
• 1.3k views
ADD COMMENT
0
Entering edit mode
Fraser Sim ▴ 270
@fraser-sim-3567
Last seen 10.3 years ago
Hi, You could try the text command to place the text. barplot(as.matrix(my.dataM), main=title, legend=rownames, col=c(my.dataColour) -> xx Now, xx contains the x coordinates of the bars in the chart Your values in 'my.dataM' contains the y coordinates of the bars Eg. Text(xx[1], 0.819, "Hello") in your example would place the label "Hello" on the line of the first bar. You could add a little to the y-value to move it above or below as to your preference or use the adj parameter to shift it automatically. Text accepts vectors for the x, y, and label parameters so you can get creative to automatically add labels to your plots according to the data. Hope that helps, Fraser -----Original Message----- From: bioconductor-bounces@stat.math.ethz.ch [mailto:bioconductor-bounces at stat.math.ethz.ch] On Behalf Of dorothyc Sent: Thursday, August 06, 2009 8:15 PM To: r-ug-ottawa at r-project.org; bioconductor at stat.math.ethz.ch Subject: Re: [BioC] Bar plots with stacked columns marked with askterisks Hi, I'm trying to plot bar graphs with stacked columns marked with askterisks for certain columns, which follow certain criteria. I've gotten the stacked bar plots with Data set A (please refer to code below and plot attached). However, I haven't figured how to put asterisks on columns based on some extra information (such as "used/ unused") as in Data set B i.e. asterisks at the top of the Index1 and Index3 columns. ---- R code ---- title = 'frequency' filename = 'testdata2.txt' sample_output = 'sequences' # read in data my.data <- read.delim(filename, sep="\t") # data from second column onward my.dataM <- my.data[,2:ncol(my.data)] # rownames in first column rownames <- my.data[,1] # define colours for the categories col = c ("red ","orange ","yellow ","green ","violet ","cyan","blue","pink","peachpuff","tomato","seagreen","salmon") my.dataNcol <- ncol(my.data[,2:ncol(my.data)]) my.dataColour <- col[1:my.dataNcol] # colors() returns all the colours recognized by R # a bar plot with stacked bars if (is.null(sample_output)) { pdf( "BarPlot.pdf") } else { pdf(file=paste("BarPlot_", sample_output, ".pdf", sep="")) } barplot(as.matrix(my.dataM), main=title, legend=rownames, col=c(my.dataColour) ) dev.off() ------Dataset A: data used with code above------ "" "Index1" "Index2" "Index3" "matched" 0.819 0.174 0.007 "errors" 0.619 0.314 0.067 "unmatched" 0.479 0.385 0.136 ------Dataset B: data intended to use ----- --(last row "used/unused" for determining whether to mark column with asterisk or not)--- "" "Index1" "Index2" "Index3" "matched" 0.819 0.174 0.007 "errors" 0.619 0.314 0.067 "unmatched" 0.479 0.385 0.136 "used/unused" y n y ------- Thanks, Dorothy [[alternative HTML version deleted]] _______________________________________________ Bioconductor mailing list Bioconductor at stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/bioconductor Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD COMMENT

Login before adding your answer.

Traffic: 527 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6