Changeset 1098


Ignore:
Timestamp:
Oct 10, 2013 11:23:12 AM (8 years ago)
Author:
vondreele
Message:

improve torsion & Ramachandran restraint plots - use picker to identify atoms

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIplot.py

    r1087 r1098  
    18551855    X = np.linspace(0.,360.,num=45)
    18561856   
     1857    def OnPick(event):
     1858        ind = event.ind[0]
     1859        msg = 'atoms:'+names[ind]
     1860        Page.canvas.SetToolTipString(msg)
     1861   
    18571862    def OnMotion(event):
    18581863        if event.xdata and event.ydata:                 #avoid out of frame errors
     
    18611866            msg = 'torsion,energy: %5.3f %5.3f'%(xpos,ypos)
    18621867            Page.canvas.SetToolTipString(msg)
    1863             G2frame.G2plotNB.status.SetFields(['',msg])
    1864             if len(Angles):
    1865                 fX = np.where(np.fabs(Angles-xpos)<1.0)[0]
    1866                 if len(fX):
    1867                     msg = 'atoms:'+names[fX[0]-1]
    1868                     Page.canvas.SetToolTipString(msg)                   
    18691868
    18701869    try:
     
    18791878        plotNum = G2frame.G2plotNB.plotList.index('Torsion')
    18801879        Page = G2frame.G2plotNB.nb.GetPage(plotNum)
     1880        Page.canvas.mpl_connect('pick_event', OnPick)
    18811881        Page.canvas.mpl_connect('motion_notify_event', OnMotion)
    18821882   
    18831883    Page.SetFocus()
    1884     G2frame.G2plotNB.status.SetFields(['',''])
     1884    G2frame.G2plotNB.status.SetFields(['','Use mouse LB to identify torsion atoms'])
    18851885    Plot.plot(X,torsion,'b+')
    18861886    if len(Coeff):
     
    18901890    if len(Angles):
    18911891        Eval = np.array([-G2mth.calcTorsionEnergy(x,Coeff)[1] for x in Angles])
    1892         Plot.plot(Angles,Eval,'ro')
     1892        Plot.plot(Angles,Eval,'ro',picker=5)
    18931893    Plot.set_xlim((0.,360.))
    18941894    Plot.set_title('Torsion angles for '+TorName+' in '+phaseName)
     
    19271927        PlotRama(G2frame,phaseName,Rama)
    19281928
     1929    def OnPick(event):
     1930        ind = event.ind[0]
     1931        msg = 'atoms:'+names[ind]
     1932        Page.canvas.SetToolTipString(msg)
     1933
    19291934    def OnMotion(event):
    19301935        if event.xdata and event.ydata:                 #avoid out of frame errors
     
    19331938            msg = 'phi/psi: %5.3f %5.3f'%(xpos,ypos)
    19341939            Page.canvas.SetToolTipString(msg)
    1935             G2frame.G2plotNB.status.SetFields(['',msg])
    1936             if len(Phi):
    1937                 fPhi = np.where(np.fabs(Phi-xpos)<1.0)[0]
    1938                 fPsi = np.where(np.fabs(Psi-ypos)<1.0)[0]
    1939                 if len(fPhi) and len(fPsi) and fPhi[0] == fPsi[0]:
    1940                     msg = 'atoms:'+names[fPhi[0]-1]
    1941                     Page.canvas.SetToolTipString(msg)
    19421940           
    19431941    try:
     
    19521950        plotNum = G2frame.G2plotNB.plotList.index('Ramachandran')
    19531951        Page = G2frame.G2plotNB.nb.GetPage(plotNum)
     1952        Page.canvas.mpl_connect('pick_event', OnPick)
    19541953        Page.canvas.mpl_connect('motion_notify_event', OnMotion)
    19551954        Page.canvas.mpl_connect('key_press_event', OnPlotKeyPress)
     
    19581957    Page.keyPress = OnPlotKeyPress
    19591958    Page.SetFocus()
    1960     G2frame.G2plotNB.status.SetFields(['',''])   
     1959    G2frame.G2plotNB.status.SetFields(['','Use mouse LB to identify phi/psi atoms'])
    19611960    acolor = mpl.cm.get_cmap(G2frame.RamaColor)
    19621961    if RamaName == 'All' or '-1' in RamaName:
     
    19711970            Phi = np.where(Phi>180.,Phi-360.,Phi)
    19721971            Psi = np.where(Psi>180.,Psi-360.,Psi)
    1973             Plot.plot(Phi,Psi,'ro',picker=3)
     1972            Plot.plot(Phi,Psi,'ro',picker=5)
    19741973        Plot.set_xlim((-180.,180.))
    19751974        Plot.set_ylim((-180.,180.))
     
    19831982        if len(PhiPsi):
    19841983            Phi,Psi = PhiPsi.T
    1985             Plot.plot(Phi,Psi,'ro',picker=3)
     1984            Plot.plot(Phi,Psi,'ro',picker=5)
    19861985        Plot.set_xlim((0.,360.))
    19871986        Plot.set_ylim((0.,360.))
Note: See TracChangeset for help on using the changeset viewer.