X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=PrintRScript.py;h=d81d070ca0531ca0eaa12b50462e1adec3d83051;hp=686322ea6f6e12e72f93f467270e9f7f09b9c3be;hb=ff602f724b8fc80f4fa067dbbc830343c0b4bed4;hpb=e47f8c20e356631980624eb52d8476b3b86917c5 diff --git a/PrintRScript.py b/PrintRScript.py index 686322e..d81d070 100644 --- a/PrintRScript.py +++ b/PrintRScript.py @@ -33,7 +33,7 @@ class PrintRScript : def sources(self, lsources) : for source in lsources : - self.add('source("%s")' % source) + self.add('source("%s", encoding = \'utf8\')' % source) def packages(self, lpks) : for pk in lpks : @@ -545,6 +545,7 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : # height = 400 rownames = 'c("' + '","'.join(rownames) + '")' colnames = 'c("' + '","'.join(colnames) + '")' + if not intxt : #FIXME txt = """ @@ -710,8 +711,12 @@ class PrintSimiScript(PrintRScript) : dm <-readMM(dm.path) cn <- read.table(cn.path, sep='\t', quote='"') colnames(dm) <- cn[,1] - sel.col <- read.csv2(selected.col, header = FALSE) - sel.col <- sel.col[,1] + 1 + if (file.exists(selected.col)) { + sel.col <- read.csv2(selected.col, header = FALSE) + sel.col <- sel.col[,1] + 1 + } else { + sel.col <- 1:ncol(dm) + } if (!word) { dm <- dm[, sel.col] } else { @@ -740,8 +745,12 @@ class PrintSimiScript(PrintRScript) : txt += """ dm <-read.csv2(dm.path) dm <- as.matrix(dm) - sel.col <- read.csv2(selected.col, header = FALSE) - sel.col <- sel.col[,1] + 1 + if (file.exists(selected.col)) { + sel.col <- read.csv2(selected.col, header = FALSE) + sel.col <- sel.col[,1] + 1 + } else { + sel.col <- 1:ncol(dm) + } if (!word) { dm <- dm[, sel.col] } else { @@ -844,6 +853,14 @@ class PrintSimiScript(PrintRScript) : graphnb +=1 self.filename = ffr(os.path.join(dirout,'graph_simi_'+str(graphnb)+'.png')) if self.parametres['type_graph'] == 2 : type = 'rgl' + if self.parametres['type_graph'] == 3 : + graphnb = 1 + type = 'rglweb' + dirout = os.path.dirname(self.pathout['mat01']) + while os.path.exists(os.path.join(dirout,'webrgl_'+str(graphnb))): + graphnb +=1 + self.filename = ffr(os.path.join(dirout,'webrgl_'+str(graphnb))) + os.mkdir(self.filename) if self.parametres['arbremax'] : arbremax = 'TRUE' @@ -1017,7 +1034,7 @@ class PrintSimiScript(PrintRScript) : """ else : txt+=""" - label.cex <- NULL + label.cex <- cex """ if self.parametres.get('sfromchi', False) : txt += """ @@ -1028,7 +1045,8 @@ class PrintSimiScript(PrintRScript) : vertex.size <- NULL """ else : - if self.parametres['type'] == 'clustersimitxt' : + print self.parametres + if (self.parametres['type'] == 'clustersimitxt' and self.parametres.get('tmpchi', False)) or (self.parametres['type'] == 'simimatrix' and 'tmpchi' in self.parametres): txt += """ lchi <- read.table("%s") lchi <- lchi[,1] @@ -1043,12 +1061,12 @@ class PrintSimiScript(PrintRScript) : else : txt += """ if (is.null(vcexminmax[1])) { - label.cex <- NULL + label.cex <- cex } else { label.cex <- graph.simi$label.cex } """ - if self.parametres['type'] == 'clustersimitxt' and self.parametres.get('sfromchi', False) : + if (self.parametres['type'] == 'clustersimitxt' or self.parametres['type'] == 'simimatrix') and self.parametres.get('sfromchi', False): txt += """ vertex.size <- norm.vec(lchi, minmaxeff[1], minmaxeff[2]) if (!length(vertex.size)) vertex.size <- 0 @@ -1092,7 +1110,14 @@ class WordCloudRScript(PrintRScript) : self.packages(['wordcloud']) bg_col = Rcolor(self.parametres['col_bg']) txt_col = Rcolor(self.parametres['col_text']) + if self.parametres['svg'] : + svg = 'TRUE' + else : + svg = 'FALSE' txt = """ + svg <- %s + """ % svg + txt += """ act <- read.csv2("%s", header = FALSE, row.names=1, sep='\t') selected.col <- read.table("%s") toprint <- as.matrix(act[selected.col[,1] + 1,]) @@ -1102,10 +1127,32 @@ class WordCloudRScript(PrintRScript) : toprint <- as.matrix(toprint[order(toprint[,1], decreasing=TRUE),]) toprint <- as.matrix(toprint[1:maxword,]) } - open_file_graph("%s", width = %i, height = %i) + open_file_graph("%s", width = %i, height = %i , svg = svg) par(bg=rgb%s) wordcloud(row.names(toprint), toprint[,1], scale=c(%f,%f), random.order=FALSE, colors=rgb%s) dev.off() """ % (ffr(self.analyse.pathout['actives_eff.csv']), ffr(self.analyse.pathout['selected.csv']), self.parametres['maxword'], ffr(self.parametres['graphout']), self.parametres['width'], self.parametres['height'], bg_col, self.parametres['maxcex'], self.parametres['mincex'], txt_col) self.add(txt) self.write() + +class ProtoScript(PrintRScript) : + def make_script(self) : + self.sources([self.analyse.parent.RscriptsPath['Rgraph'], self.analyse.parent.RscriptsPath['prototypical.R']]) + self.packages(['wordcloud']) + txt = """ + mat <- read.csv2("%s", header = FALSE, row.names=1, sep='\t', quote='"', dec='.') + open_file_graph("%s",height=800, width=1000) + prototypical(mat, mfreq = %s, mrank = %s, cloud = FALSE, cexrange=c(1,2.4), cexalpha= c(0.4, 1)) + dev.off() + """ % (self.analyse.pathout['table.csv'], self.analyse.pathout['proto.png'], self.parametres['limfreq'], self.parametres['limrang']) + self.add(txt) + self.write() + + +class ExportAfc(PrintRScript) : + def make_script(self) : + self.source([self.analyse.parent.RscriptsPath['Rgraph']]) + self.packages(['rgexf']) + txt = """ + """ +