X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=layout.py;h=310b3ff212a07163a5294582c708f21b0bf09775;hp=8efccbf0f2241ac380965873a873d80c6e8a44ab;hb=b19770356272772c8c8ba75f351520eca186bd19;hpb=12b4b71c8c8feb6154abc04dfa9bb93a521ef789 diff --git a/layout.py b/layout.py index 8efccbf..310b3ff 100644 --- a/layout.py +++ b/layout.py @@ -45,7 +45,7 @@ class GraphPanelAfc(wx.Panel): self.coding = coding self.itempath = itempath self.parent = self.GetParent()#parent - self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "courier")) + self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Arial")) self.labels = [] self.listimg = [] self.buts = [] @@ -251,7 +251,7 @@ class GraphPanel(wx.ScrolledWindow): self.Dict = dico self.txt = txt self.parent = parent - self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.FONTWEIGHT_BOLD, 0, "courier")) + self.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Arial")) self.labels = [] self.listimg = [] self.dirout = os.path.dirname(self.Dict['ira']) @@ -341,6 +341,7 @@ class OpenCHDS(): panel.corpus = self.corpus else : panel.tableau = self.corpus + #self.parent.tableau = panel.tableau panel.dictpathout = self.DictPathOut panel.pathout = self.DictPathOut panel.parent = self.parent @@ -535,7 +536,6 @@ class OpenCHDS(): if res == wx.ID_OK : fileout = dial.fbb.GetValue() dial.Destroy() - print fileout self.corpus.get_stat_by_cluster(fileout) msg = u"Fini !" dlg = wx.MessageDialog(self.parent, msg, u"Stat par classe", wx.OK | wx.NO_DEFAULT | wx.ICON_INFORMATION) @@ -655,20 +655,21 @@ class StatLayout: self.read_result() self.TabStat = aui.AuiNotebook(ira.nb, -1, wx.DefaultPosition) self.TabStat.parametres = parametres + self.TabStat.corpus = corpus + self.TabStat.pathout = self.pathout # CHD = GraphPanel(panel.TabChdSim, DictPathOut, list_graph, txt = self.debtext) # panel.TabChdSim.AddPage(CHD,'CHD') #self.TabStatTot = wx.TextCtrl(self.TabStat, -1, style=wx.NO_BORDER | wx.TE_MULTILINE | wx.TE_RICH2) list_graph = [['zipf.png', 'zipf']] self.TabStatTot = GraphPanel(ira.nb, self.pathout, list_graph, self.result['glob']) - #self.TabStatTot.write(self.result['glob']) self.TabStat.AddPage(self.TabStatTot, 'global') for item in self.result: if item != 'glob': datam = [['forme', 'nb']] self.ListPan = ListPanel(ira, self, self.result[item]) - self.TabStat.AddPage(self.ListPan, item) - ira.nb.AddPage(self.TabStat, 'Stat') + self.TabStat.AddPage(self.ListPan, ' '.join(item.split('_'))) + ira.nb.AddPage(self.TabStat, '%s' % parametres['name']) ira.nb.SetSelection(ira.nb.GetPageCount() - 1) ira.ShowAPane("Tab_content") @@ -908,7 +909,7 @@ class WordCloudLayout(DefaultTextLayout): self.Tab.AddPage(self.TabStatTot, 'Nuage') self.Tab.corpus = self.corpus self.Tab.parametres = self.parametres - self.ira.nb.AddPage(self.Tab, 'WordCloud %s' % self.parametres.get('corpus_name','corpus_name')) + self.ira.nb.AddPage(self.Tab, '%s' % self.parametres['name']) self.ira.nb.SetSelection(self.ira.nb.GetPageCount() - 1) self.ira.ShowAPane("Tab_content") @@ -943,7 +944,13 @@ class SimiLayout(DefaultTextLayout) : with codecs.open(self.pathout['actives.csv'], 'r', self.parametres['encoding']) as f : self.actives = f.read() self.actives = self.actives.splitlines()#[act for act in self.actives.splitlines()] - dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)]) + if os.path.exists(self.pathout['actives_nb.csv']) : + with open(self.pathout['actives_nb.csv'], 'r') as f : + act_nb = f.read() + act_nb = act_nb.splitlines() + dictcol = dict([[i, [self.actives[i], int(act_nb[i])]] for i, val in enumerate(self.actives)]) + else : + dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)]) #res = SelectColumn(self.ira, dictcol, self.actives, self.pathout['selected.csv'], selected = selected, dlg = True) #if res.ok : prep = PrepSimi(self.ira, self, self.parametres,self.pathout['selected.csv'], self.actives, indices_simi, wordlist = dictcol, selected = selected) @@ -990,7 +997,7 @@ class SimiLayout(DefaultTextLayout) : V(graph)$x <- graph.simi$layout[,1] V(graph)$y <- graph.simi$layout[,2] V(graph)$weight <- graph.simi$label.cex - V(graph)$colors <- cols + V(graph)$colors <- vertex.label.color E(graph)$weigth <- graph.simi$we.width write.graph(graph, fileout, format = 'graphml') """ % (self.pathout['RData.RData'], fileout) @@ -1029,7 +1036,7 @@ class SimiMatLayout(DefaultMatLayout) : self.tabsimi.SetArtProvider(aui.ChromeTabArt()) self.graphpan = GraphPanelSimi(self.tabsimi, self.pathout, list_graph) self.graphpan.Bind(wx.EVT_BUTTON, self.redosimi, self.graphpan.butafc) - #self.graphpan.Bind(wx.EVT_BUTTON, self.export, self.graphpan.butexport) + self.graphpan.Bind(wx.EVT_BUTTON, self.export, self.graphpan.butexport) self.tabsimi.AddPage(self.graphpan, 'Graph') self.tabsimi.parametres = self.parametres self.parent.nb.AddPage(self.tabsimi, 'Analyse de graph') @@ -1044,7 +1051,11 @@ class SimiMatLayout(DefaultMatLayout) : # with codecs.open(self.pathout['actives.csv'], 'r', self.parametres['encoding']) as f : # self.actives = f.read() # self.actives = self.actives.splitlines()#[act for act in self.actives.splitlines()] - actives = [[val, self.tableau.actives[val][0]] for val in self.tableau.actives] + try : + actives = [[val, self.tableau.actives[val][0]] for val in self.tableau.actives] + except : + actives = [[val, self.tableau.actives[val]] for val in self.tableau.actives] + #self.tableau.make_listactives() actives = dict([[i, val] for i, val in enumerate(actives)]) #dictcol = dict([[i, [act, self.corpus.getlemeff(act)]] for i, act in enumerate(self.actives)]) @@ -1162,53 +1173,31 @@ class SimiMatLayout(DefaultMatLayout) : sleep(0.2) check_Rresult(self.parent, pid) - #return paramsimi - -# if self.openfromprof : -# if 'cexfromchi' not in self.paramsimi: -# self.paramsimi['cexfromchi'] = False -# self.paramsimi['sfromchi'] = False -# self.dial = PrefSimi(self.parent, -1, self.paramsimi, self.types) -# self.dial.CenterOnParent() -# val = self.dial.ShowModal() -# if val == wx.ID_OK : -# self.paramsimi = self.make_param() -# self.dial.Destroy() -# if self.paramsimi.get('bystar',False) : -# variables = treat_var_mod(self.paramsimi['stars']) -# dial = OptLexi(self.parent) -# dial.listet = self.paramsimi['stars'] -# var = [v for v in variables] -# dial.variables = var -# for et in var : -# dial.list_box_1.Append(et) -# dial.CenterOnParent() -# val = dial.ShowModal() -# if val == wx.ID_OK : -# if dial.choice.GetSelection() == 1 : -# listet = [dial.listet[i] for i in dial.list_box_1.GetSelections()] -# else : -# listet = variables[var[dial.list_box_1.GetSelections()[0]]] -# self.tableau.etline = self.Source.corpus.make_etline(listet) -# -# dlg = wx.ProgressDialog("Traitements", -# "Veuillez patienter...", -# maximum=2, -# parent=self.parent, -# style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT) -# dlg.Center() -# self.PrintScript() -# self.DoR(dlg) -# dlg.Destroy() -# self.make_ira() -# if self.paramsimi['type'] == 1: -# self.graphpan.sizer_3.Add(wx.StaticBitmap(self.graphpan.panel_1, -1, wx.Bitmap(self.filename, wx.BITMAP_TYPE_ANY)), 0, wx.ALIGN_CENTER_HORIZONTAL, 0) -# self.graphpan.sizer_3.Add(wx.StaticText(self.graphpan.panel_1,-1,self.txtgraph), 0, wx.ALIGN_CENTER_HORIZONTAL, 0) -# self.graphpan.sizer_3.Fit(self.graphpan.panel_1) -# self.graphpan.Layout() -# self.graphpan.panel_1.Scroll(0,self.graphpan.panel_1.GetScrollRange(wx.VERTICAL)) -# else : -# self.dial.Destroy() + def export(self, evt) : + nb = 1 + while os.path.exists(os.path.join(self.pathout.dirout,'graph_'+str(nb)+'.graphml')): + nb +=1 + fileout = ffr(os.path.join(self.pathout.dirout,'graph_'+str(nb)+'.graphml')) + txt = """ + library(igraph) + load("%s") + fileout <- "%s" + graph <- graph.simi$graph + V(graph)$x <- graph.simi$layout[,1] + V(graph)$y <- graph.simi$layout[,2] + V(graph)$weight <- graph.simi$label.cex + V(graph)$colors <- vertex.label.color + E(graph)$weigth <- graph.simi$we.width + write.graph(graph, fileout, format = 'graphml') + """ % (self.pathout['RData.RData'], fileout) + filetmp = tempfile.mktemp() + with open(filetmp, 'w') as f : + f.write(txt) + exec_rcode(self.ira.RPath, filetmp) + mss = wx.MessageDialog(self.ira, fileout, u'Fichier exporté', wx.OK) + mss.CenterOnParent() + mss.ShowModal() + mss.Destroy() class GraphPanelSimi(wx.Panel):