B
    Kd1                 @   s   d dl mZmZ d dlmZ d dlmZmZmZ d dl	Z	d dl
mZ d dlZdZdZdZd	Zd	Zd
ZddgZdd Zdd Zdd ZdddZdS )    )WedgeCircle)LinearSegmentedColormap)Image	ImageDraw	ImageFontN)pyploti,  iR  #   z#/usr/share/fonts/truetype/arial.ttf)r   r   r   z#6398cfz#54565ac       	      C   s\   t |}dd|d  t |  }d|d  t | }t||f|||d}| | d S )NZ      )fcec)npdeg2radcossinr   
add_artist)	axangleradiuswidthcolor	angle_radxyend r   "/var/www/html/tia/tiagen/speedo.pyadd_round_end   s
    
r   c             C   s&   x t tgD ]}t|| ||| q
W d S )N)	MIN_VALUE	MAX_VALUEdraw_number)r   heightdrawfontvaluer   r   r   draw_numbers   s    r&   c             C   s   d|t  tt   d  }t|}t|}| jd||d}|dd  }	t|d }
d}|d |
t|  |	d	 d  | }|d |
t|  |	d d  d
 }| j	||f||dd d S )Ni   )r   r   )r$      gGz?ic  r   r      ZBlack)r$   fill)
r   r    r   r   strZtextbboxintr   r   text)r#   r   r"   r%   r$   r   r   r-   	text_bboxZ	text_sizeZtext_radiusoffsetZtext_xZtext_yr   r   r   r!      s    
&&r!   	gauge.pngc             C   s~  | t k s| tkr$tdt  dt |ds6tdtjdd\}}|d |dd	 |d
d |	g  |
g  |jd d |jd d |jd d |jd d tjdttd}d| t  d tt    }d}dddddg}d}x~tt|d D ]j}	||	 }
||	d  | }d}tdd||
|||d}|| t||
|d || t|||d || qW xtt|d D ]}	||	 }
tt|||	d  | d }xNt|
|dD ]>}|d| d }tdd|d  |d  |d!d!d}|| qW |
t|kr(t||
|d |d! |t|krt|||d |d! qW d"}|d| d }|d# }tdd$tt|  d$tt| f|d!d!d%}|| tdd$tt|  d$tt| f|d&d&d%}|| |jdd't| d(d)dd*d!d+d,	 | d-kr d.}njd/|   kr8d-k rBn nd0}nHd1|   krZd/k rdn nd2}n&d3|   kr|d1k rn nd4}nd5}|jdd6|d7d)dd8d+d9 d:}|jd;d<|d=d!d+d>d? d@}|jdAd<|d=d8d+d>d? t }|j |dBdCdDdEdFdG |!dF t"#|}|j$\}}t"j%dH||fdIdJ}t&'|}t()t*t+}t,|||| t"-||}|.| t"#|}t/| d S )KNzValue must be between z and z.pngzFilename must end with '.png')
      )figsizeequalii  i~x   topFrightbottomleftgradient)N         r
   7      ir(   gray)r
   r   )r   r   r   r   g      ?z#6398cf   g      @gU@)r   r   white-   centerboldZArial)fontsizehorizontalalignmentverticalalignmentweightr   fontnamei   Exceptionali  z	Very Goodi  GoodiD  FairPoori   black)rI   rJ   rK   r   rM   zL    Exceptional
    
    Very Good
    
    Good
    
    Fair
    
    Poor   i   g      ?)rI   r   rM   linespacingzE    800+

    740-799
    
    670-739
    
    580-669
    
    <580iJ  png   Ttightr   )formatdpitransparentbbox_inches
pad_inchesRGBA)r   r   r   r   )r   )0r   r    
ValueErrorendswithpltsubplotsaxisset_xlimset_ylim
set_xticks
set_yticksspinesset_visibler   	from_listGAUGE_COLORSrangelenr   r   r   maxr,   r   r   r   radiansr   r-   r+   ioBytesIOsavefigseekr   opensizenewr   ZDrawr   truetypeFONT	FONT_SIZEr&   alpha_compositesaveclose)r%   filenamefigr   cmapZvalue_angler   Zsegment_anglesgapiZstart_angleZ	end_angler   Z
gray_wedger   wedgeZbubble_radiusZbubble_colorZouter_circle_radiusZbubble_outerbubble
score_textZ
rules_textbufZgauge_imager"   Znumbers_imager#   r$   Zgauge_image_with_numbersimgr   r   r   create_gauge,   s    




8
8
 






r   )r0   )matplotlib.patchesr   r   matplotlib.colorsr   PILr   r   r   rq   
matplotlibr   rb   numpyr   r   r    rz   Zarialry   ZCOLORrl   r   r&   r!   r   r   r   r   r   <module>   s    