Changeset 2577


Ignore:
Timestamp:
Dec 13, 2016 9:18:04 AM (5 years ago)
Author:
vondreele
Message:

new powder plot option to select patterns to plot in multi/contour plots

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r2569 r2577  
    23892389        self.Legend = False
    23902390        self.SinglePlot = True
     2391        self.selections= None
    23912392        self.SubBack = False
    23922393        self.seqReverse = False
     
    26622663       
    26632664    class SumDialog(wx.Dialog):
    2664         'Allows user to supply scale factor(s) when summing data'
     2665        '''Allows user to supply scale factor(s) when summing data -
     2666        TODO: CAN WE PREVIEW RESULT HERE?'''
    26652667        def __init__(self,parent,title,text,dataType,data):
    26662668            wx.Dialog.__init__(self,parent,-1,title,size=(400,250),
  • trunk/GSASIIctrls.py

    r2575 r2577  
    696696                return
    697697        if self.max != None:
    698             if val >= self.max and exclLim[1]:
     698            if val >= self.max and self.exclLim[1]:
    699699                tc.invalid = True
    700700            elif val > self.max:
    701701                tc.invalid = True
    702702        if self.min != None:
    703             if val <= self.min and ecxlLim[0]:
     703            if val <= self.min and self.exclLim[0]:
    704704                tc.invalid = True
    705705            elif val < self.min:
     
    13151315        self.Selections = len(self.ChoiceList) * [False,] # selection status for each choice (list of bools)
    13161316        self.filterlist = range(len(self.ChoiceList)) # list of the choice numbers that have been filtered (list of int indices)
     1317        self.Stride = 1
    13171318        if options['style'] & wx.OK:
    13181319            useOK = True
     
    13601361            togBut.Bind(wx.EVT_BUTTON,self._ToggleAll)
    13611362            tSizer.Add(togBut)
     1363            tSizer.Add(wx.StaticText(self,label=' Set Stride:'),0,WACV)
     1364            numbs = [str(i+1) for i in range(10)]
     1365            self.stride = wx.ComboBox(self,value='1',choices=numbs,style=wx.CB_READONLY|wx.CB_DROPDOWN)
     1366            self.stride.Bind(wx.EVT_COMBOBOX,self.OnStride)
     1367            tSizer.Add(self.stride,0,WACV)
    13621368            self.rangeBut = wx.ToggleButton(self,wx.ID_ANY,'Set Range')
    13631369            self.rangeBut.Bind(wx.EVT_TOGGLEBUTTON,self.SetRange)
    1364             tSizer.Add(self.rangeBut)           
     1370            tSizer.Add(self.rangeBut)
    13651371            self.rangeCapt = wx.StaticText(self,wx.ID_ANY,'')
    13661372            tSizer.Add(self.rangeCapt)
     
    13821388        self.SetSizer(Sizer)
    13831389        self.CenterOnParent()
     1390       
     1391    def OnStride(self,event):
     1392        self.Stride = int(self.stride.GetValue())
    13841393
    13851394    def SetRange(self,event):
     
    14231432    def _SetAll(self,event):
    14241433        'Set all viewed choices on'
    1425         self.clb.SetChecked(range(len(self.filterlist)))
     1434        self.clb.SetChecked(range(0,len(self.filterlist),self.Stride))
     1435        self.stride.SetValue('1')
     1436        self.Stride = 1
    14261437       
    14271438    def _ToggleAll(self,event):
     
    14541465                pass
    14551466            else:
    1456                 for i in range(min(self.rangeFirst,id), max(self.rangeFirst,id)+1):
     1467                for i in range(min(self.rangeFirst,id), max(self.rangeFirst,id)+1,self.Stride):
    14571468                    self.clb.Check(i,self.clb.IsChecked(self.rangeFirst))
    14581469                self.rangeBut.SetValue(False)
  • trunk/GSASIIplot.py

    r2576 r2577  
    13061306            G2frame.SinglePlot = not G2frame.SinglePlot               
    13071307            newPlot = True
    1308         elif event.key == 's' and not G2frame.SinglePlot:
    1309             print 'make selection here - TBD'
     1308        elif event.key == 'f' and not G2frame.SinglePlot:
     1309            choices = G2pdG.GetHistsLikeSelected(G2frame)
     1310            dlg = G2G.G2MultiChoiceDialog(G2frame.dataFrame,'Select dataset to plot',
     1311                'Multidata plot selection',choices)
     1312            if dlg.ShowModal() == wx.ID_OK:
     1313                G2frame.selections = []
     1314                select = dlg.GetSelections()
     1315                if select:
     1316                    for id in select:
     1317                        G2frame.selections.append(choices[id])
     1318                else:
     1319                    G2frame.selections = None
     1320            dlg.Destroy()
     1321            newPlot = True
    13101322        elif event.key in ['+','=']:
    13111323            G2frame.plusPlot = not G2frame.plusPlot
     
    18311843                    Page.Choice = (' key press','n: log(I) off',
    18321844                        'd: offset down','l: offset left','r: offset right','u: offset up','o: reset offset',
    1833                         'c: contour on','q: toggle q plot','t: toggle d-spacing plot','s: select data',
     1845                        'c: contour on','q: toggle q plot','t: toggle d-spacing plot','f: select data',
    18341846                        'm: toggle multidata plot','w: toggle divide by sig','+: toggle selection')
    18351847            elif 'SASD' in plottype:
     
    18511863                    Page.Choice = (' key press','l: offset left','r: offset right','d: offset down',
    18521864                        'u: offset up','o: reset offset','b: toggle subtract background','n: log(I) on','c: contour on',
    1853                         'q: toggle q plot','t: toggle d-spacing plot','m: toggle multidata plot','s: select data',
     1865                        'q: toggle q plot','t: toggle d-spacing plot','m: toggle multidata plot','f: select data',
    18541866                        'w: toggle divide by sig','+: no selection')
    18551867            elif 'SASD' in plottype:
     
    18781890        SampleList = [Sample,]
    18791891        Title = Pattern[-1]
    1880     else:        
     1892    else:     #G2frame.selection   
    18811893        Title = os.path.split(G2frame.GSASprojectfile)[1]
    18821894        PlotList = []
    18831895        ParmList = []
    18841896        SampleList = []
    1885         item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root)
    1886         while item:
    1887             if plottype in G2frame.PatternTree.GetItemText(item):
    1888                 Pattern = G2frame.PatternTree.GetItemPyData(item)
    1889                 if len(Pattern) < 3:                    # put name on end if needed
    1890                     Pattern.append(G2frame.PatternTree.GetItemText(item))
    1891                 if 'Offset' not in Pattern[0]:     #plot offset data
    1892                     print 'no Offset?'
    1893                     Ymax = max(Pattern[1][1])
    1894                     Pattern[0].update({'Offset':[0.0,0.0],'delOffset':0.02*Ymax,'refOffset':-0.1*Ymax,'refDelt':0.1*Ymax,})
    1895                 PlotList.append(Pattern)
    1896                 ParmList.append(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,
    1897                     item,'Instrument Parameters'))[0])
    1898                 SampleList.append(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,
    1899                     item, 'Sample Parameters')))
    1900             item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)               
     1897        if G2frame.selections is None:
     1898            choices = G2pdG.GetHistsLikeSelected(G2frame)
     1899        else:
     1900            choices = G2frame.selections
     1901        for item in choices:
     1902            id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root, item)
     1903            Pattern = G2frame.PatternTree.GetItemPyData(id)
     1904            if len(Pattern) < 3:                    # put name on end if needed
     1905                Pattern.append(G2frame.PatternTree.GetItemText(id))
     1906            if 'Offset' not in Pattern[0]:     #plot offset data
     1907                print 'no Offset?'
     1908                Ymax = max(Pattern[1][1])
     1909                Pattern[0].update({'Offset':[0.0,0.0],'delOffset':0.02*Ymax,'refOffset':-0.1*Ymax,'refDelt':0.1*Ymax,})
     1910            PlotList.append(Pattern)
     1911            ParmList.append(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,
     1912                id,'Instrument Parameters'))[0])
     1913            SampleList.append(G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,
     1914                id, 'Sample Parameters')))
    19011915    lenX = 0
    19021916    Ymax = None
Note: See TracChangeset for help on using the changeset viewer.