...
[iramuteq] / PrintRScript.py
index 7aa30d6..45022f3 100644 (file)
@@ -51,6 +51,8 @@ class PrintRScript :
 class chdtxt(PrintRScript) :
     pass
 
+def Rcolor(color) :
+    return str(color).replace(')', ', max=255)')
 
 class Alceste2(PrintRScript) :
     def doscript(self) :
@@ -908,3 +910,26 @@ class PrintSimiScript(PrintRScript) :
         self.add(txt)
         self.write()
 
+class WordCloudRScript(PrintRScript) :
+    def make_script(self) :
+        self.sources([self.analyse.parent.RscriptsPath['Rgraph']])
+        self.packages(['wordcloud'])
+        bg_col = Rcolor(self.parametres['col_bg'])
+        txt_col = Rcolor(self.parametres['col_text'])
+        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,])
+        rownames(toprint) <- rownames(act)[selected.col[,1] + 1]
+        maxword <- %i
+        if (nrow(toprint) > maxword) {
+            toprint <- as.matrix(toprint[order(toprint[,1], decreasing=TRUE),])
+            toprint <- as.matrix(toprint[1:maxword,])
+        }
+        open_file_graph("%s", width = %i, height = %i)
+        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()