X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=PrintRScript.py;h=db2eeac22288e3e7a1c4e0a12cf0c9372293d2fa;hp=4ce28579fd843db78c5f5b12f674548d426fbad8;hb=1fb687c23b19ae4cc88146acf393041356c1df3a;hpb=2569fdce19932457c65854f858191e45018622ea diff --git a/PrintRScript.py b/PrintRScript.py index 4ce2857..db2eeac 100644 --- a/PrintRScript.py +++ b/PrintRScript.py @@ -173,12 +173,12 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False """ % DicoPath['listeuce2'] txt += """ -# rm(data1) + rm(data1) """ if classif_mode == 0: txt += """ -# rm(data2) + rm(data2) """ txt += """ chd.result <- Rchdtxt("%s",mincl=%i,classif_mode=%i, nbt = nbt) @@ -207,7 +207,7 @@ def RchdTxt(DicoPath, RscriptPath, mincl, classif_mode, nbt = 9, libsvdc = False save(tree.cut1, file="%s") classes<-n1[,ncol(n1)] open_file_graph("%s", width = 600, height=400) - plot.dendropr(tree.cut1$tree.cl,classes) + plot.dendropr(tree.cut1$tree.cl,classes, histo=TRUE) open_file_graph("%s", width = 600, height=400) plot(tree.cut1$dendro_tot_cl) dev.off() @@ -366,33 +366,41 @@ write.csv2(gbcluster,file="%s") """ % (DictChdTxtOut['afc_facteur'], DictChdTxtOut['afc_col'], DictChdTxtOut['afc_row']) txt += """ - xlab <- paste('facteur 1 - ', round(afc$facteur[1,2],2), sep = '') - ylab <- paste('facteur 2 - ', round(afc$facteur[2,2],2), sep = '') - xlab <- paste(xlab, ' %', sep = '') - ylab <- paste(ylab, ' %', sep = '') + #xlab <- paste('facteur 1 - ', round(afc$facteur[1,2],2), sep = '') + #ylab <- paste('facteur 2 - ', round(afc$facteur[2,2],2), sep = '') + #xlab <- paste(xlab, ' %', sep = '') + #ylab <- paste(ylab, ' %', sep = '') """ txt += """ PARCEX<-%s + xmin <- min(afc$rowcoord[,1], na.rm = TRUE) + (0.1 * min(afc$rowcoord[,1], na.rm = TRUE)) + xmax <- max(afc$rowcoord[,1], na.rm = TRUE) + (0.1 * max(afc$rowcoord[,1], na.rm = TRUE)) + ymin <- min(afc$rowcoord[,2], na.rm = TRUE) + (0.1 * min(afc$rowcoord[,2], na.rm = TRUE)) + ymax <- max(afc$rowcoord[,2], na.rm = TRUE) + (0.1 * max(afc$rowcoord[,2], na.rm = TRUE)) + print(xmin) + print(xmax) + print(ymin) + print(ymax) """ % taillecar txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab) + PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab, xmin=xmin, xmax=xmax, ymin = ymin, ymax=ymax) """ % (DictChdTxtOut['AFC2DL_OUT']) txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab) + PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab, xmin=xmin, xmax=xmax, ymin = ymin, ymax=ymax) """ % (DictChdTxtOut['AFC2DSL_OUT']) txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debet, fin=fin, xlab = xlab, ylab = ylab) + PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='coord', deb=debet, fin=fin, xlab = xlab, ylab = ylab, xmin=xmin, xmax=xmax, ymin = ymin, ymax=ymax) """ % (DictChdTxtOut['AFC2DEL_OUT']) txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='coord', xlab = xlab, ylab = ylab) + PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='coord', xlab = xlab, ylab = ylab, xmin=xmin, xmax=xmax, ymin = ymin, ymax=ymax) """ % (DictChdTxtOut['AFC2DCL_OUT']) - txt += """ - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab) - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab) - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debet, fin=fin, xlab = xlab, ylab = ylab) - PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='crl', xlab = xlab, ylab = ylab) - """ % (DictChdTxtOut['AFC2DCoul'], DictChdTxtOut['AFC2DCoulSup'], DictChdTxtOut['AFC2DCoulEt'], DictChdTxtOut['AFC2DCoulCl']) +# txt += """ + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=1, fin=(debsup-1), xlab = xlab, ylab = ylab) + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debsup, fin=(debet-1), xlab = xlab, ylab = ylab) + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", what='crl', deb=debet, fin=fin, xlab = xlab, ylab = ylab) + # PlotAfc2dCoul(afc, as.data.frame(chistabletot), "%s", col=TRUE, what='crl', xlab = xlab, ylab = ylab) + # """ % (DictChdTxtOut['AFC2DCoul'], DictChdTxtOut['AFC2DCoulSup'], DictChdTxtOut['AFC2DCoulEt'], DictChdTxtOut['AFC2DCoulCl']) txt += """ #rm(dataact) @@ -427,6 +435,9 @@ def write_afc_graph(self): if self.param['tchi'] : tchi = 'TRUE' else : tchi = 'FALSE' + if self.param['svg'] : svg = 'TRUE' + else : svg = 'FALSE' + with open(self.RscriptsPath['afc_graph'], 'r') as f: txt = f.read() @@ -456,7 +467,8 @@ def write_afc_graph(self): tchi,\ self.param['tchi_min'],\ self.param['tchi_max'],\ - ffr(os.path.dirname(self.fileout))) + ffr(os.path.dirname(self.fileout)),\ + svg) return scripts def print_simi3d(self): @@ -531,9 +543,29 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : if not intxt : #FIXME txt = """ - inf <- NA di <- matrix(data=%s, nrow=%i, byrow = TRUE) - di[is.na(di)] <- max(di, na.rm=TRUE) + 2 + toinf <- which(di == Inf) + tominf <- which(di == -Inf) + if (length(toinf)) { + di[toinf] <- NA + valmax <- max(di, na.rm = TRUE) + if (valmax <= 0) { + valmax <- 2 + } else { + valmax <- valmax + 2 + } + di[toinf] <- valmax + } + if (length(tominf)) { + di[tominf] <- NA + valmin <- min(di, na.rm = TRUE) + if (valmin >=0) { + valmin <- -2 + } else { + valmin <- valmin - 2 + } + di[tominf] <- valmin + } rownames(di)<- %s colnames(di) <- %s """ % (txttable, rownb, rownames, colnames) @@ -549,7 +581,20 @@ def barplot(table, rownames, colnames, rgraph, tmpgraph, intxt = False) : par(mar=c(0,0,0,0)) layout(matrix(c(1,2),1,2, byrow=TRUE),widths=c(3,lcm(7))) par(mar=c(2,2,1,0)) - coord <- barplot(as.matrix(di), beside = TRUE, col = color, space = c(0.1,0.6)) + 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)) + 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)] @@ -640,29 +685,37 @@ class PrintSimiScript(PrintRScript) : self.txtgraph = '' self.packages(['igraph', 'proxy', 'Matrix']) self.sources([self.analyse.parent.RscriptsPath['simi'], self.analyse.parent.RscriptsPath['Rgraph']]) - txt = """ - dm.path <- "%s" - cn.path <- "%s" - selected.col <- "%s" - """ % (self.pathout['mat01.csv'], self.pathout['actives.csv'], self.pathout['selected.csv']) - txt += """ - dm <-readMM(dm.path) - cn <- read.table(cn.path, sep=';', quote='"') - colnames(dm) <- cn[,1] - sel.col <- read.csv2(selected.col) - dm <- dm[, sel.col[,1] + 1] - """ - - if self.parametres['coeff'] == 0 : - method = 'cooc' + txt = '' + if not self.parametres['keep_coord'] : txt += """ - method <- 'cooc' - mat <- make.a(dm) + dm.path <- "%s" + cn.path <- "%s" + selected.col <- "%s" + """ % (self.pathout['mat01.csv'], self.pathout['actives.csv'], self.pathout['selected.csv']) + txt += """ + dm <-readMM(dm.path) + cn <- read.table(cn.path, sep=';', quote='"') + colnames(dm) <- cn[,1] + sel.col <- read.csv2(selected.col) + dm <- dm[, sel.col[,1] + 1] """ else : txt += """ - dm <- as.matrix(dm) - """ + load("%s") + """ % self.pathout['RData.RData'] + + if self.parametres['coeff'] == 0 : + method = 'cooc' + if not self.parametres['keep_coord'] : + txt += """ + method <- 'cooc' + mat <- make.a(dm) + """ + else : + if not self.parametres['keep_coord'] : + txt += """ + dm <- as.matrix(dm) + """ if self.parametres['coeff'] == 1 : method = 'prcooc' txt += """ @@ -671,27 +724,31 @@ class PrintSimiScript(PrintRScript) : """ elif self.analyse.indices[self.parametres['coeff']] == 'binomial' : method = 'binomial' - txt += """ - method <- 'binomial' - mat <- binom.sim(dm) - """ + if not self.parametres['keep_coord'] : + txt += """ + method <- 'binomial' + mat <- binom.sim(dm) + """ elif self.parametres['coeff'] != 0 : method = self.analyse.indices[self.parametres['coeff']] + if not self.parametres['keep_coord'] : + txt += """ + method <-"%s" + mat <- simil(dm, method = method, diag = TRUE, upper = TRUE, by_rows = FALSE) + """ % self.analyse.indices[self.parametres['coeff']] + if not self.parametres['keep_coord'] : txt += """ - method <-"%s" - mat <- simil(dm, method = method, diag = TRUE, upper = TRUE, by_rows = FALSE) - """ % self.analyse.indices[self.parametres['coeff']] - txt += """ - mat <- as.matrix(stats::as.dist(mat,diag=TRUE,upper=TRUE)) - mat[is.na(mat)] <- 0 - mat[is.infinite(mat)] <- 0 - """ + mat <- as.matrix(stats::as.dist(mat,diag=TRUE,upper=TRUE)) + mat[is.na(mat)] <- 0 + mat[is.infinite(mat)] <- 0 + """ if self.parametres['layout'] == 0 : layout = 'random' if self.parametres['layout'] == 1 : layout = 'circle' if self.parametres['layout'] == 2 : layout = 'frutch' if self.parametres['layout'] == 3 : layout = 'kawa' if self.parametres['layout'] == 4 : layout = 'graphopt' + self.filename='' if self.parametres['type_graph'] == 0 : type = 'tkplot' if self.parametres['type_graph'] == 1 : @@ -789,14 +846,13 @@ class PrintSimiScript(PrintRScript) : txt += """ et <- list() """ - print self.parametres - for i,et in enumerate(self.parametres['stars']) : + for i, line in enumerate(self.parametres['listet']) : txt+= """ et[[%i]] <- c(%s) - """ % (i+1, ','.join(et[1:])) + """ % (i+1, ','.join([`val + 1` for val in line])) txt+= """ unetoile <- c('%s') - """ % ("','".join([val[0] for val in self.tableau.etline])) + """ % ("','".join([val for val in self.parametres['selectedstars']])) txt += """ fsum <- NULL rs <- rowSums(dm) @@ -821,7 +877,7 @@ class PrintSimiScript(PrintRScript) : cols <- vertex.label.color chivertex.size <- norm.vec(toblack, vcexminmax[1], vcexminmax[2]) - """ % (self.parent.RscriptsPath['chdfunct']) + """ % (self.analyse.parent.RscriptsPath['chdfunct']) else : txt += """ vertex.label.color <- 'black'