Changeset 2521 for trunk/GSASIIplot.py


Ignore:
Timestamp:
Nov 13, 2016 8:27:56 PM (5 years ago)
Author:
toby
Message:

extensions to Peak List: vary via menu items; animate line dragging; highlight selected peak(s)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIplot.py

    r2508 r2521  
    14621462            xy[1] = xy[1]**2
    14631463        if G2frame.PatternTree.GetItemText(PickId) == 'Peak List':
    1464             if ind.all() != [0] and ObsLine[0].get_label() in str(pick):                                    #picked a data point
     1464            if ind.all() != [0] and ObsLine[0].get_label() in str(pick):    #picked a data point
    14651465                data = G2frame.PatternTree.GetItemPyData(G2frame.PickId)
    14661466                XY = G2mth.setPeakparms(Parms,Parms2,xy[0],xy[1])
     
    14701470                PlotPatterns(G2frame,plotType=plottype)
    14711471            else:                                                   #picked a peak list line
     1472                # prepare to animate move of line
    14721473                G2frame.itemPicked = pick
     1474                pick.set_linestyle(':') # set line as dotted
     1475                Page = G2frame.G2plotNB.nb.GetPage(plotNum)
     1476                Plot = Page.figure.gca()
     1477                Page.canvas.draw() # refresh without dotted line & save bitmap
     1478                savedplot = Page.canvas.copy_from_bbox(Page.figure.gca().bbox)
     1479                G2frame.cid = Page.canvas.mpl_connect('motion_notify_event', OnDragLine)
     1480                pick.set_linestyle('--') # back to dashed
    14731481        elif G2frame.PatternTree.GetItemText(PickId) == 'Limits':
    14741482            if ind.all() != [0]:                                    #picked a data point
     
    20032011                        Page.canvas.SetToolTipString(tip)
    20042012                        data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'))
    2005                         for item in data['peaks']:
     2013                        selectedPeaks = list(set(
     2014                            [row for row,col in G2frame.dataDisplay.GetSelectedCells()] +
     2015                            G2frame.dataDisplay.GetSelectedRows()))
     2016                        for i,item in enumerate(data['peaks']):
     2017                            if i in selectedPeaks:
     2018                                Ni = N+1
     2019                            else:
     2020                                Ni = N
    20062021                            if G2frame.plotStyle['qPlot']:
    2007                                 Lines.append(Plot.axvline(2.*np.pi/G2lat.Pos2dsp(Parms,item[0]),color=colors[N%6],picker=2.))
     2022                                Lines.append(Plot.axvline(2.*np.pi/G2lat.Pos2dsp(Parms,item[0]),color=colors[Ni%6],picker=2.))
    20082023                            elif G2frame.plotStyle['dPlot']:
    2009                                 Lines.append(Plot.axvline(G2lat.Pos2dsp(Parms,item[0]),color=colors[N%6],picker=2.))
     2024                                Lines.append(Plot.axvline(G2lat.Pos2dsp(Parms,item[0]),color=colors[Ni%6],picker=2.))
    20102025                            else:
    2011                                 Lines.append(Plot.axvline(item[0],color=colors[N%6],picker=2.))
     2026                                Lines.append(Plot.axvline(item[0],color=colors[Ni%6],picker=2.))
    20122027                    if G2frame.PatternTree.GetItemText(PickId) == 'Limits':
    20132028                        tip = 'On data point: Lower limit - L MB; Upper limit - R MB. On limit: MB down to move'
Note: See TracChangeset for help on using the changeset viewer.