X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=PrintRScript.py;h=120e4ff7d7e411449fd8f208ecc643c2ac873fd6;hp=fae8dcb8869eec9b451aa4527d01cf29f64d8ace;hb=9420002b21cada767db876f972f6083fc542ccd2;hpb=a38c33bb022324119c865d990e7ef1f087c24780 diff --git a/PrintRScript.py b/PrintRScript.py index fae8dcb..120e4ff 100644 --- a/PrintRScript.py +++ b/PrintRScript.py @@ -169,10 +169,6 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, svdmethod = 'sv txt += """ chd2<-CHD(data2, x = nbt, mode.patate = mode.patate, svd.method = svd.method, libsvdc.path = libsvdc.path) """ - else: - txt += """ - chd2<-chd1 - """ txt += """ #lecture des uce @@ -203,18 +199,21 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, svdmethod = 'sv } n1 <- chd.result$n1 classeuce1 <- chd.result$cuce1 - classeuce2 <- chd.result$cuce2 - """ % (classif_mode, mincl, DicoPath['uce']) + classes<-n1[,ncol(n1)] + write.csv2(n1, file="%s") + rm(n1) + """ % (classif_mode, mincl, DicoPath['uce'], DicoPath['n1.csv']) txt += """ tree.tot1 <- make_tree_tot(chd1) # open_file_graph("%s", widt = 600, height=400) # plot(tree.tot1$tree.cl) # dev.off() - """%DicoPath['arbre1'] + """ % DicoPath['arbre1'] if classif_mode == 0: txt += """ + classeuce2 <- chd.result$cuce2 tree.tot2 <- make_tree_tot(chd2) # open_file_graph("%s", width = 600, height=400) # plot(tree.tot2$tree.cl) @@ -224,7 +223,7 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, svdmethod = 'sv txt += """ tree.cut1 <- make_dendro_cut_tuple(tree.tot1$dendro_tuple, chd.result$coord_ok, classeuce1, 1, nbt) save(tree.cut1, file="%s") - classes<-n1[,ncol(n1)] + open_file_graph("%s", width = 600, height=400) plot.dendropr(tree.cut1$tree.cl,classes, histo=TRUE) open_file_graph("%s", width = 600, height=400) @@ -244,8 +243,10 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, svdmethod = 'sv """ % (DicoPath['dendro2'], DicoPath['arbre2']) txt += """ - save.image(file="%s") - """ % DicoPath['RData'] + + #save.image(file="%s") + """ % (DicoPath['RData']) + fileout = open(DicoPath['Rchdtxt'], 'w') fileout.write(txt) fileout.close() @@ -322,8 +323,9 @@ def AlcesteTxtProf(DictChdTxtOut, RscriptsPath, clnb, taillecar): txt = "clnb<-%i\n" % clnb txt += """ source("%s") -load("%s") -""" % (RscriptsPath['chdfunct'], DictChdTxtOut['RData']) +#load("%s") +n1 <- read.csv2("%s") +""" % (RscriptsPath['chdfunct'], DictChdTxtOut['RData'], DictChdTxtOut['n1.csv']) txt += """ dataact<-read.csv2("%s", header = FALSE, sep = ';',quote = '\"', row.names = 1, na.strings = 'NA') datasup<-read.csv2("%s", header = FALSE, sep = ';',quote = '\"', row.names = 1, na.strings = 'NA') @@ -535,16 +537,16 @@ def dendroandbarplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False, """ % (ffr(dendro),ffr(rgraph), ffr(tmpgraph)) return txt -def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : +def barplot(table, parametres, intxt = False) : if not intxt : txttable = 'c(' + ','.join([','.join(line) for line in table]) + ')' #width = 100 + (15 * len(rownames)) + (100 * len(colnames)) #height = len(rownames) * 15 - rownb = len(rownames) + rownb = len(parametres['rownames']) #if height < 400 : # height = 400 - rownames = 'c("' + '","'.join(rownames) + '")' - colnames = 'c("' + '","'.join(colnames) + '")' + rownames = 'c("' + '","'.join(parametres['rownames']) + '")' + colnames = 'c("' + '","'.join(parametres['colnames']) + '")' if not intxt : #FIXME @@ -577,58 +579,68 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : """ % (txttable, rownb, rownames, colnames) else : txt = intxt - txt += """ - source("%s") - color = rainbow(nrow(di)) - width <- 100 + (10*length(rownames(di))) + (100 * length(colnames(di))) - height <- nrow(di) * 15 - if (height < 400) { height <- 400} - open_file_graph("%s",width = width, height = height) - par(mar=c(0,0,0,0)) - layout(matrix(c(1,2),1,2, byrow=TRUE),widths=c(3,lcm(7))) - par(mar=c(6,2,1,0)) - yp = ifelse(length(toinf), 0.2, 0) - ym = ifelse(length(tominf), 0.2, 0) - ymin <- ifelse(!length(which(di < 0)), 0, min(di) - ym) - coord <- barplot(as.matrix(di), beside = TRUE, col = color, space = c(0.1,0.6), ylim=c(ymin, max(di) + yp), las = 2) - if (length(toinf)) { - coordinf <- coord[toinf] - valinf <- di[toinf] - text(x=coordinf, y=valinf + 0.1, 'i') - } - if (length(tominf)) { - coordinf <- coord[toinf] - valinf <- di[toinf] - text(x=coordinf, y=valinf - 0.1, 'i') - } - c <- colMeans(coord) - c1 <- c[-1] - c2 <- c[-length(c)] - cc <- cbind(c1,c2) - lcoord <- apply(cc, 1, mean) - abline(v=lcoord) - if (min(di) < 0) { - amp <- abs(max(di) - min(di)) - } else { - amp <- max(di) - } - if (amp < 10) { - d <- 2 - } else { - d <- signif(amp%%/%%10,1) - } - mn <- round(min(di)) - mx <- round(max(di)) - for (i in mn:mx) { - if ((i/d) == (i%%/%%d)) { - abline(h=i,lty=3) + if not 'tree' in parametres : + txt += """ + source("%s") + color = rainbow(nrow(di)) + width <- %i + height <- %i + open_file_graph("%s",width = width, height = height, svg = %s) + par(mar=c(0,0,0,0)) + layout(matrix(c(1,2),1,2, byrow=TRUE),widths=c(3,lcm(7))) + par(mar=c(8,4,1,0)) + yp = ifelse(length(toinf), 0.2, 0) + ym = ifelse(length(tominf), 0.2, 0) + ymin <- ifelse(!length(which(di < 0)), 0, min(di) - ym) + coord <- barplot(as.matrix(di), beside = TRUE, col = color, space = c(0.1,0.6), ylim=c(ymin, max(di) + yp), las = 2) + if (length(toinf)) { + coordinf <- coord[toinf] + valinf <- di[toinf] + text(x=coordinf, y=valinf + 0.1, 'i') } - } - par(mar=c(0,0,0,0)) - plot(0, axes = FALSE, pch = '') - legend(x = 'center' , rownames(di), fill = color) - dev.off() - """ % (rgraph, ffr(tmpgraph)) + if (length(tominf)) { + coordinf <- coord[toinf] + valinf <- di[toinf] + text(x=coordinf, y=valinf - 0.1, 'i') + } + c <- colMeans(coord) + c1 <- c[-1] + c2 <- c[-length(c)] + cc <- cbind(c1,c2) + lcoord <- apply(cc, 1, mean) + abline(v=lcoord) + if (min(di) < 0) { + amp <- abs(max(di) - min(di)) + } else { + amp <- max(di) + } + if (amp < 10) { + d <- 2 + } else { + d <- signif(amp%%/%%10,1) + } + mn <- round(min(di)) + mx <- round(max(di)) + for (i in mn:mx) { + if ((i/d) == (i%%/%%d)) { + abline(h=i,lty=3) + } + } + par(mar=c(0,0,0,0)) + plot(0, axes = FALSE, pch = '') + legend(x = 'center' , rownames(di), fill = color) + dev.off() + """ % (ffr(parametres['rgraph']), parametres['width'], parametres['height'], ffr(parametres['tmpgraph']), parametres['svg']) + else : + txt += """ + load("%s") + library(ape) + source("%s") + width = %i + height = %i + open_file_graph("%s", width=width, height=height, svg = %s) + plot.dendro.lex(tree.cut1$tree.cl, di) + """ % (ffr(parametres['tree']), ffr(parametres['rgraph']), parametres['width'], parametres['height'], ffr(parametres['tmpgraph']), parametres['svg']) return txt #def RAfcUci(DictAfcUciOut, nd=2, RscriptsPath='', PARCEX='0.8'): @@ -921,6 +933,11 @@ class PrintSimiScript(PrintRScript) : """ txt += """ seuil <- %s + if (!is.null(seuil)) { + if (method!='cooc') { + seuil <- seuil/100 + } + } """ % seuil txt += """ @@ -1148,6 +1165,10 @@ class ProtoScript(PrintRScript) : def make_script(self) : self.sources([self.analyse.parent.RscriptsPath['Rgraph'], self.analyse.parent.RscriptsPath['prototypical.R']]) self.packages(['wordcloud']) + if self.parametres.get('cloud', False) : + cloud = 'TRUE' + else : + cloud = 'FALSE' txt = """ errorn <- function(x) { qnorm(0.975)*sd(x)/sqrt(lenght(n)) @@ -1157,9 +1178,9 @@ class ProtoScript(PrintRScript) : } 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)) + prototypical(mat, mfreq = %s, mrank = %s, cloud = FALSE, cexrange=c(1,2.4), cexalpha= c(0.4, 1), type = '%s') dev.off() - """ % (self.analyse.pathout['table.csv'], self.analyse.pathout['proto.png'], self.parametres['limfreq'], self.parametres['limrang']) + """ % (self.analyse.pathout['table.csv'], self.analyse.pathout['proto.png'], self.parametres['limfreq'], self.parametres['limrang'], self.parametres['typegraph']) self.add(txt) self.write() @@ -1176,7 +1197,7 @@ class TgenSpecScript(PrintRScript): self.packages(['textometry']) txt = """ tgen <- read.csv2("%s", row.names = 1, sep = '\\t') - """ % self.parametres['tgeneff'] + """ % ffr(self.parametres['tgeneff']) txt += """ tot <- tgen[nrow(tgen), ] result <- NULL