Changeset 3762


Ignore:
Timestamp:
Dec 12, 2018 4:46:33 PM (3 years ago)
Author:
vondreele
Message:

updates to plot1D structure factors; q & d plots, F & F2 plots, hkls marked

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIplot.py

    r3761 r3762  
    10771077        to F, F**2, etc. as requested
    10781078    '''
    1079     from matplotlib.collections import LineCollection
    1080     print('1D stick plot - TBD')
    1081     global xylim
     1079    global xylim,X
    10821080    def OnKeyPress(event):
    1083 #        if event.key == 'u':
    1084 #            if Page.Offset[1] < 100.:
    1085 #                Page.Offset[1] += 1.
    1086 #        elif event.key == 'd':
    1087 #            if Page.Offset[1] > 0.:
    1088 #                Page.Offset[1] -= 1.
    1089 #        elif event.key == 'l':
    1090 #            Page.Offset[0] -= 1.
    1091 #        elif event.key == 'r':
    1092 #            Page.Offset[0] += 1.
    1093 #        elif event.key == 'o':
    1094 #            Page.Offset = [0,0]
    1095 #        elif event.key == 's':
    1096 #            if len(XY):
    1097 #                G2IO.XYsave(G2frame,XY,labelX,labelY,names)
    1098 #            if len(XY2):
    1099 #                G2IO.XYsave(G2frame,XY2,labelX,labelY,names2)
    1100 ##        else:
    1101 ##            return
     1081        if event.key == 'd':
     1082            Page.xaxis = 'd'
     1083        elif event.key == 'q':
     1084            Page.xaxis = 'q'
     1085        elif event.key == 's':
     1086            Page.yaxis = 's'
     1087        elif event.key == 'f':
     1088            Page.yaxis = 'f'
    11021089        Draw()
    11031090
    11041091    def OnMotion(event):
     1092        global X
    11051093        xpos = event.xdata
     1094        limx = Plot.get_xlim()
    11061095        if xpos:                                        #avoid out of frame mouse position
     1096            Xpos = xpos
     1097            if Page.xaxis == 'q':
     1098                dT = np.fabs(2.*np.pi/limx[0]-2.*np.pi/limx[1])/100.
     1099                Xpos = 2.*np.pi/xpos
     1100                found = hklRef[np.where(np.fabs(hklRef.T[4+Super]-Xpos) < dT/2.)]
     1101            else:
     1102                dT = np.fabs(limx[1]-limx[0])/100.
     1103                found = hklRef[np.where(np.fabs(hklRef.T[4+Super]-xpos) < dT/2.)]
     1104            s = ''
     1105            if len(found):
     1106                if Super:   #SS reflections
     1107                    fmt = "{:.0f},{:.0f},{:.0f},{:.0f}"
     1108                    n = 4
     1109                else:
     1110                    fmt = "{:.0f},{:.0f},{:.0f}"
     1111                    n = 3
     1112                for i,hkl in enumerate(found):
     1113                    if i >= 3:
     1114                        s += '\n...'
     1115                        break
     1116                    if s: s += '\n'
     1117                    s += fmt.format(*hkl[:n])
    11071118            ypos = event.ydata
    11081119            Page.canvas.SetCursor(wx.CROSS_CURSOR)
    11091120            try:
    1110                 G2frame.G2plotNB.status.SetStatusText('X =%9.3f %s =%9.3f'%(xpos,Title,ypos),1)                   
     1121                G2frame.G2plotNB.status.SetStatusText('d =%9.3f F^2 =%9.3f'%(Xpos,ypos),1)                   
    11111122            except TypeError:
    11121123                G2frame.G2plotNB.status.SetStatusText('Select '+Title+' pattern first',1)
     1124            Page.SetToolTipString(s)
    11131125               
    11141126    def Draw():
     
    11161128        Plot.clear()
    11171129        Plot.set_title(Title)
    1118         Plot.set_xlabel(r'd-spacing',fontsize=14)
    1119         Plot.set_ylabel(r'Fsq',fontsize=14)
     1130        Plot.set_xlabel(r'd, '+Angstr,fontsize=14)
     1131        Plot.set_ylabel(r'F'+super2,fontsize=14)
    11201132        colors=['b','r','g','c','m','k']
    11211133        Page.keyPress = OnKeyPress
    11221134       
    1123         X = hklRef.T[4+Super]
    1124         Y = hklRef.T[8+Super]
    1125         Z = hklRef.T[9+Super]
     1135        if Page.xaxis == 'q':
     1136            Plot.set_xlabel(r'q, '+Angstr+Pwrm1,fontsize=14)
     1137            X = 2.*np.pi/hklRef.T[4+Super]
     1138        else:           
     1139            X = hklRef.T[4+Super]
     1140        if Page.yaxis == 'f':
     1141            Plot.set_ylabel(r'F',fontsize=14)
     1142            Y = np.sqrt(hklRef.T[8+Super])
     1143            Z = np.sqrt(hklRef.T[9+Super])
     1144        else:           
     1145            Y = hklRef.T[8+Super]
     1146            Z = hklRef.T[9+Super]
     1147        Ymax = np.max(Y)
    11261148        Plot.plot([X,X],[np.zeros_like(X),Y],color=colors[0])
    11271149        Plot.plot([X,X],[np.zeros_like(X),Z],color=colors[1])
    1128         Plot.plot([X,X],[np.zeros_like(X),Y-Z],color=colors[2])
     1150        Plot.plot([X,X],[np.zeros_like(X)-Ymax/10.,Y-Z-Ymax/10.],color=colors[2])
    11291151       
    11301152        if not newPlot:
     
    11461168    else:
    11471169        newPlot = True
     1170        Page.xaxis = 'd'
     1171        Page.yaxis = 's'
    11481172        Page.canvas.mpl_connect('key_press_event', OnKeyPress)
    11491173        Page.canvas.mpl_connect('motion_notify_event', OnMotion)
Note: See TracChangeset for help on using the changeset viewer.