
    e                     	   d Z ddlmZ ddlZddlZddlmZm	Z	  ej                  d      Z e	j                         Zej                  dd        ej                         Zej#                  e       ej%                          ej'                  d       ej)                         Zej-                         Zej1                  d       ej3                          ej)                         Zej)                         Z ed	        ej:                  d
d      Zg ad Z dZ! ejD                  d ej:                  d       ejF                  dddd            Z$ejJ                  jM                  de!fd      Z' e(e!      D  cg c]  } e'dd| f   dd c} ddgddgz   Z)e$jU                  e)       ejW                  e$       e$jX                  j[                  e         edd      Z.d Z/d Z0 ejD                  d ej:                  d      d      Z1ejJ                  jM                  de!fd      Z' e(e!      D  cg c]+  } e'dd| f   d ejd                  | e!      | dz  d| dz  z   d- c} Z)e1jU                  e)        e(e!      D  cg c]  } |  e/ e0        f c} D  cg c]4  \  } }e'dd| f   d ejd                  | e!      |d   |d   d| dz  z   z  d6 c}} Z)e1jU                  e)       ejW                  e1       e1jX                  j[                  e         ejD                  d d ej:                  d!      d"#      Z3g Z4 e(d      D ]G  Z5 e(d      D ]:  Z6e4jo                  d"e5z  d"e6z  fd"ddd$ ejd                  e5dz  e6z   d%      d&       < I e3jU                  e4       ejW                  e3       e3jX                  j[                  e         ejD                  d ej:                  d       ejF                  dddd'      dd(d) ej:                  d*d       ejF                  d!      +      Z8d,Z!ejJ                  jM                  de!fd-      Z'e8jU                  e'd   e'd    ejr                  e!      .       ejW                  e8       e8jX                  j[                  e        e:d/k(  r ejv                          yyc c} w c c} w c c} w c c}} w )0z;
Example demonstrating a variety of scatter plot features.
    )
namedtupleN)QtGui	QtWidgetszScatter Plot Item Examplei   zpyqtgraph example: ScatterPlotTz,Generating data, this takes a few seconds...b   )widthc                     t         D ]  }|j                           t        d|       |D ]  }|j                  t                |a y )Nzclicked points)lastClickedresetPenprintsetPen
clickedPen)plotpointsps      @/usr/lib/python3/dist-packages/pyqtgraph/examples/ScatterPlot.pyclickedr       sE     	

	
F# 	K    i,  
      x   )sizepenbrushgh㈵>)r   scale   )posdata
TextSymbolzlabel symbol scalec                 t   t        j                         }t        j                         }|j                  d       |j	                  dd||        |j                         }t        d|j                         z  d|j                         z        }t        j                         }|j                  ||       |j                  |       |j                  |j                          |j                         dz  z
  |j                          |j                         dz  z
         t        | |j!                  |      d|z        S )Nr   r   g      ?g       @g?)r   QPainterPathQFontsetPointSizeaddTextboundingRectminr   height
QTransformr   rotate	translatexyr   map)labelanglesymbolfbrr   trs          r   createLabelr4   @   s    !FANN2
NN1aE"				BRXXZbiik!12E				BHHUEIIeLL"$$&288:b=(2446'BIIKN*BCeRVVF^S5[99r   c                  J   dj                  t        t        j                  j	                  dd            D  cg c]=  } t        t        j                  j	                  t        d      t        d                  ? c}       t        j                  j	                  dd      fS c c} w )N r      Azr   ih  )joinrangenprandomrandintchrord)is    r   <lambda>rB   N   s    rwwSXY[YbYbYjYjklmnYoSpqaBII$5$5c#hs3x$H Iqrtvt}t}  uF  uF  GH  JM  uN  O qs   AB w)r   r   pxModer7   g      $@)r   r   r   r0   r   Fggư>)rD   	hoverablehoverPen	hoverSize)colorr   d   )r   r   r   r      s   r)r   r   r   rF   hoverSymbolrH   rG   
hoverBrushi'  g&.>)r+   r,   r   __main__)<__doc__collectionsr   numpyr<   	pyqtgraphpgpyqtgraph.Qtr   r   mkQAppappQMainWindowmwresizeGraphicsLayoutWidgetviewsetCentralWidgetshowsetWindowTitleaddPlotw1
addViewBoxw2setAspectLockednextRoww3w4r   mkPenr   r
   r   nScatterPlotItemmkBrushs1r=   normalr   r;   spots	addPointsaddItem
sigClickedconnectr   r4   
random_strs2intColors3spots3rA   jappends4arange__name__exec)rA   r.   s   00r   <module>r      s   #   )bii+,Y 		#c r    D  	   2 3 
\\^	__   4  	\\^	\\^ 4 5 RXXc#
  RRXRXXd^:2::c3PSUX;YZiiQqE./4Qx8!QqS1	%8QqEST<U;VV U  

2   g  &:;
: O
RRXRXXc]4@iiQqE.kpqrkstfgQqS1kbkk!Q.?1R4YZ[\]`[`Y`	at U  ns  tu  nv  Dw  ij  FG  IT  V`  Vb  Ic  Ed  Dw  	xuvwy~QqS1kbkk!Q.?5QR8]bcd]eghijkningn]o	p  	x U  

2   g  RRXXc]	 
	r DA2Y DtAvtAv.s]^E_itikitituvwyuyz{u{  ~A  jB  C  	DDD V  

2   g  R	
"**S#sB
'RXXc#rzz#	 
iiQF$/ 	!f	!f 
1   

2   g zBGGI c 	9> 	u Dw  	xs   6R5/0R:=R?9S