
    >wg%                     F    d dl mZ ddlmZ  G d dej                        Zy)   )chart    warnc                   b     e Zd ZdZd fd	ZddZd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Z xZS )ChartScatterz>
    A class for writing the Excel XLSX Scatter charts.


    c                     t         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)superr   __init__getr
   cross_betweenhoriz_val_axisval_axis_positionsmooth_allowedrequires_categorylabel_position_defaultlabel_positions)selfoptions	__class__s     O/var/www/horilla/myenv/lib/python3.12/site-packages/xlsxwriter/chart_scatter.pyr   zChartScatter.__init__   s    
 	lD*,?G{{9-||(DL%!$"!% '.#	 
    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_typeW   s     	!!$'r'   c                    |d   r| j                         }n| j                         }t        |      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_serieslenr
   default_marker_modify_series_formatting_xml_start_tag_write_scatter_style
_write_ser_write_axis_ids_xml_end_tag)r#   r-   seriesstyler
   datas         r&   r,   z!ChartScatter._write_scatter_chartb   s    224F446F6{,, 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_barsr8   T)series_indexr>   
_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_smoothrB   )r#   rC   indexs      r&   r@   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plotr0   r   r   r   )x_axisy_axisaxis_idspositionr   )r>   _write_layoutplotarear   r.   _write_cat_val_axisr]   r^   r_   r   _write_val_axisx2_axisy2_axis	axis2_idsrP   rB   )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_datar>   _get_data_type_write_str_ref_write_num_refrB   )r#   rC   formuladata_idrE   	data_types         r&   rV   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   rn   r>   rq   rB   )r#   rC   rr   rs   rE   s        r&   rW   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#   rz   
attributess      r&   r?   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   )widthr5   r   )r
   rC   )r#   r
   rC   s      r&   r=   z&ChartScatter._modify_series_formatting,  sO     ,, m#++ f~i0!% !#$&F6N $r'   c                     | j                  d       | j                  |       | j                  d       | j                  |       | j                  d       | j                  d       y )Nzc:dPtzc:marker)r>   rM   rP   rB   )r#   rY   points      r&   _write_d_pt_pointzChartScatter._write_d_pt_point=  sZ     	G$ 	J' 	% *%'"r'   r+   )__name__
__module____qualname____doc__r   r)   r.   r,   r@   ri   rV   rW   r?   r=   r   __classcell__)r%   s   @r&   r   r      sC     
D
6(/,b1#f<(|$($:"#r'   r   N) r   warningsr   Chartr    r'   r&   <module>r      s     @#5;; @#r'   