
    li%                     Z    d dl mZmZmZ d dlmZ ddlmZ  G d dej                        Z	y)    )AnyDictOptionalwarn   )chartc                        e Zd ZdZddeeeef      ddf fdZddee	j                     ddfdZddZdd	Zdd
ZddZddZddZddZddZddZ xZS )ChartScatterz>
    A class for writing the Excel XLSX Scatter charts.


    Noptionsreturnc                     t         |           |i }|j                  d      | _        | j                  sd| _        d| _        d| _        d| _        d| _        d| _        d| _	        d	d
dddddd| _
        y)z
        Constructor.

        Nsubtypemarker_onlymidCatr   bTrightctrrlt)centerr   leftabovebelowtopbottom)super__init__getr   cross_betweenhoriz_val_axisval_axis_positionsmooth_allowedrequires_categorylabel_position_defaultlabel_positions)selfr   	__class__s     V/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/xlsxwriter/chart_scatter.pyr   zChartScatter.__init__   s    
 	?G{{9-||(DL%!$"!% '.#	 
    r	   c                      |yt        d       y)z
        Create a combination chart with a secondary chart.

        Note: Override parent method to add a warning.

        Args:
            chart: The secondary chart to combine with the primary chart.

        Returns:
            Nothing.

        NzNCombined chart not currently supported with scatter chart as the primary chartr   )r(   r	   s     r*   combinezChartScatter.combine?   s     =#	
r+   c                 &    | j                  |       y N)_write_scatter_chart)r(   argss     r*   _write_chart_typezChartScatter._write_chart_type[   s     	!!$'r+   c                    |d   r| j                         }n| j                         }|sy d}| j                  }|dk(  rd}|dk(  rd}|dk(  rd}ddi| _        |dk(  rd	}|d
k(  rd	}ddi| _        | j	                          | j                  d       | j                  |       |D ]  }| j                  |        | j                  |       | j                  d       y )Nprimary_axes
lineMarkerr   straight_with_markersstraighttypenonesmooth_with_markerssmoothMarkersmoothzc:scatterChart)
_get_primary_axes_series_get_secondary_axes_seriesr   default_marker_modify_series_formatting_xml_start_tag_write_scatter_style
_write_ser_write_axis_ids_xml_end_tag)r(   r1   seriesstyler   datas         r*   r0   z!ChartScatter._write_scatter_chartf   s    224F446F,, m# E-- Ej  E#)6"2D++"Eh"E#)6"2D 	&&(,- 	!!%(  	"DOOD!	" 	T"*+r+   c                    | j                   }| xj                   dz  c_         | j                  d       | j                  |       | j                  |       | j	                  |       | j                  |       | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j                  |j                  d             | j                  |       | j                  |       d| j                  v r|d   | j                  d	       n| j                  |d          | j!                  d       y )
Nr   zc:sermarkerpointslabels	trendline
error_barsr<   T)series_indexrA   
_write_idx_write_order_write_series_name_write_sp_pr_write_markerr    _write_d_pt_write_d_lbls_write_trendline_write_error_bars_write_x_val_write_y_valr   _write_c_smoothrE   )r(   rF   indexs      r*   rC   zChartScatter._write_ser   sP    !!QG$ 	 	%  	' 	&! 	6::h/0 	H-. 	6::h/0 	fjj56 	vzz,78 	&! 	&! t||#x(8(@  &  !12'"r+   c                    | j                  d       | j                  | j                  j                  d      d       | j	                  ddi       | j	                  ddi       | j                  | j                  | j                  | j                  dd       | j                  }d| _	        | j                  | j                  | j                  | j                  d	d       || _	        | j                  | j                  | j                  | j                  dd       d| _	        | j                  | j                  | j                  | j                  d	d       | j                  | j                         | j                  d       y )
Nz
c:plotArealayoutplotr4   r   r   r   )x_axisy_axisaxis_idspositionr   )rA   _write_layoutplotarear    r2   _write_cat_val_axisr`   ra   rb   r"   _write_val_axisx2_axisy2_axis	axis2_idsrS   rE   )r(   tmps     r*   _write_plot_areazChartScatter._write_plot_area   sV   
 	L) 	4==,,X6? 	2323 	  ++++ MM		
 !!++++ MM		
 " 	  ,,,, NN		
  ,,,, NN		
 	$--(,'r+   c                 $   |j                  d      }|j                  d      }| j                  |   }| j                  d       | j                  |      }|dk(  r| j	                  |||       n| j                  |||       | j                  d       y )N
categoriescat_data_idzc:xValstr)r    formula_datarA   _get_data_type_write_str_ref_write_num_refrE   )r(   rF   formuladata_idrH   	data_types         r*   rY   zChartScatter._write_x_val  s    **\***]+  )H% ''-	y9 y9(#r+   c                     |j                  d      }|j                  d      }| j                  |   }| j                  d       | j                  ||d       | j	                  d       y )Nvaluesval_data_idzc:yValnum)r    rq   rA   rt   rE   )r(   rF   ru   rv   rH   s        r*   rZ   zChartScatter._write_y_val  s^    **X&**]+  )H% 	GT51(#r+   c                 2    d|fg}| j                  d|       y )Nvalzc:scatterStyle)_xml_empty_tag)r(   r}   
attributess      r*   rB   z!ChartScatter._write_scatter_style*  s    cl^
,j9r+   c                 n    | j                   }|dk(  r$| j                  D ]  }|d   d   rdddd|d<    y y )Nr   linedefinedg      @r   )widthr9   r   )r   rF   )r(   r   rF   s      r*   r@   z&ChartScatter._modify_series_formatting0  sO     ,, m#++ f~i0!% !#$&F6N $r+   c                     | j                  d       | j                  |       | j                  d       | j                  |       | j                  d       | j                  d       y )Nzc:dPtzc:marker)rA   rP   rS   rE   )r(   r\   points      r*   _write_d_pt_pointzChartScatter._write_d_pt_pointA  sZ     	G$ 	J' 	% *%'"r+   r/   )r   N)__name__
__module____qualname____doc__r   r   rp   r   r   r	   Chartr-   r2   r0   rC   rl   rY   rZ   rB   r@   r   __classcell__)r)   s   @r*   r   r      su     
c3h 8  
D  
D
Xekk2 
d 
8(/,b1#f<(|$($:"#r+   r   N)
typingr   r   r   warningsr    r	   r   r    r+   r*   <module>r      s%    ' &  A#5;; A#r+   