;i dZddlmZddlZddlZddlmZm Z ej dZ e j Z e ddejZe ee e deZeZedeeZeZed ejd d Zgad Z dZ!ej"dejdej#ddddZ$ej%&d e!fdZ'de(e!DddgddgzZ)e$*e)e+e$e$j,-e eddZ.dZ/dZ0ej"dejddZ1ej%&d e!fdZ'de(e!DZ)e1*e)dd e(e!DDZ)e1*e)e+e1e1j,-e ej"d!dejd"d#$Z2gZ3e(dD]JZ4e(dD])rscalec6g|]}tdd|fddS)Nposdata)r.0is r r$3s,888!QQQqS1 % %888rrr TextSymbolzlabel symbol scalectj}tj}|d|dd|||}t d|z d|z }tj }| ||| || | |dz z | |dz z t|||d|z S)Nrrg?g@g?)r QPainterPathQFont setPointSizeaddText boundingRectminrheight QTransformrrotate translatexyr%map)labelanglesymbolfbrrtrs r createLabelr:@s   ! !F ANN2 NN1aE"""     B RXXZZbiikk!1 2 2E    BHHUEIIeLL"$$&&288::b=(24466'BIIKKN*BCCC eRVVF^^S5[ 9 99rc ddttjddDtjddfS)Nc g|]I}ttjt dt dJS)Az)chrnprandomrandintordr!s rr$z..Ns>qqqaBI$5$5c#hhs3xx$H$H I Iqqqrrrih)joinrangerArBrCrrrINsvrwwqqSXY[YbYjYjklmnYoYoSpSpqqqrrtvt}uFuFGHJMuNuNOrw)rrpxModec ~g|]:}tdd|fdtj|t|dzd|dz zd;S)NrrrE$@rr rr6rrpgintColornr!s rr$r$RsPtttfgQQQqS1bk!Q.?.?1R4YZ[\]`[`Y` a atttrc g|]I\}}tdd|fdtj|t|d|dd|dz zzdJS)NrrrErMrNrO)r"r#r4s rr$r$Tsu x x xuvwy~QQQqS1bk!Q.?.?5QR8]bcd]eghijkningn]o p p x x xrc<g|]}|ttfSrH)r: random_strr!s rr$r$TsdDwDwDwijFGITV`VbVbIcEdDwDwDwrFggư>)rK hoverablehoverPen hoverSize)colorrd)rrrrsr)rrrrW hoverSymbolrYrX hoverBrushi'g& .>)r1r2r __main__)<__doc__ collectionsrnumpyrA pyqtgraphrP pyqtgraph.QtrrmkQAppapp QMainWindowmwresizeGraphicsLayoutWidgetviewsetCentralWidgetshowsetWindowTitleaddPlotw1 addViewBoxw2setAspectLockednextRoww3w4r mkPenrr rrRScatterPlotItemmkBrushs1rBnormalrrGspots addPointsaddItem sigClickedconnectr%r:rUs2s3spots3r#jappendrQs4arange__name__execrHrrrs#"""""))))))))bi+,,Y #cr  D 2333 \\^^ __4  \\^^ \\^^4555RXc # # #   RRXRXd^^:2:c3PSUX;Y;YZZZiQqE..88uuQxx888QqEST