L i:HddlmZddlmZddlZddlmZddlmZddlZddl Z ddl m Z ddl mZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZej:rddlmZddlmZddlm Z ddlm!Z!ddlm"Z"e e#Z$dZ%GddeZ&GddeZ'GddeZ(GddeZ) d*dd d! d+d"Z*d,d#Z+ d- d.d$Z,d/d%Z- d0 d1d&Z. d2d'Z/d3d(Z0d4d)Z1y)5) annotations)CallableN)Any) NamedTuple) get_logger)_CONSTRAINTS_KEY)Study)StudyDirection) FrozenTrial) TrialState)_imports)_check_plot_args)_filter_nonfinite) _is_log_scale) _is_numerical)_is_reverse_scale)Contour)go) make_subplots)Scatter) COLOR_SCALEg?cJeZdZUded<ded<ded<ded<ded <d ed <y ) _AxisInfostrnameztuple[float, float]rangeboolis_logis_catzlist[str | int | float]indiceszlist[str | float | None]valuesN__name__ __module__ __qualname____annotations__c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/optuna/visualization/_contour.pyrr&s# I  L L $$ $$r(rc:eZdZUded<ded<ded<gZded<y) _SubContourInforxaxisyaxiszdict[tuple[int, int], float]z_valuesz list[bool] constraintsN)r#r$r%r&r/r'r(r)r+r+/s  ** K r(r+c6eZdZUded<ded<ded<ded<y ) _ContourInfoz list[str] sorted_paramszlist[list[_SubContourInfo]]sub_plot_infosr reverse_scaler target_nameNr"r'r(r)r1r16s//r(r1c"eZdZUded<ded<y) _PlotValues list[Any]xyNr"r'r(r)r7r7=s LLr(r7Objective Value)targetr5c\tjt||||}t|S)aPlot the parameter relationship as contour plot in a study. Note that, if a parameter contains missing values, a trial with missing values is not plotted. Args: study: A :class:`~optuna.study.Study` object whose trials are plotted for their target values. params: Parameter list to visualize. The default is all parameters. target: A function to specify the value to display. If it is :obj:`None` and ``study`` is being used for single-objective optimization, the objective values are plotted. .. note:: Specify this argument if ``study`` is being used for multi-objective optimization. target_name: Target's name to display on the color bar. Returns: A :class:`plotly.graph_objects.Figure` object. .. note:: The colormap is reversed when the ``target`` argument isn't :obj:`None` or ``direction`` of :class:`~optuna.study.Study` is ``minimize``. )r check_get_contour_info_get_contour_plot)studyparamsr<r5infos r) plot_contourrDBs*B NN UFFK @D T ""r(c  tjd}|j}|j}|j}|j }t |dkrtjg|St |dk(r|d}|d}|dd}t|||} tj| |} | j||jj| j||jj|jjr| jd |jjr| jd |jjrI|jjD cgc]} t!j"| } } | j| d |jjrI|jjD cgc]} t!j"| } } | j| d | St%t |t |d d } | j'|d } t)|D]^\}}t)|D]I\}}||k(r-| j+tj,|dz|dzngt|||||} | d}| d}|j/| | rd} | j+||dz|dz| j+||dz|dz|||j}|||j}| j|j|dz|dz| j|j|dz|dz|jr| jd|dz|dz|jr| jd|dz|dz|jrG|jD cgc]} t!j"| } } | j| d |dz|dz|jrG|jD cgc]} t!j"| } } | j| d |dz|dz|dk(r| j||dz|dz|t |dz k(s0| j||dz|dzLa| Scc} wcc} wcc} wcc} w)Nz Contour Plot)title)datalayoutr) title_textrcategory)typelog)rrMT)rowscols shared_xaxes shared_yaxes)rowcol) showscaleF)rrSrT)rMrSrT)rrMrSrT)rKrSrT)rLayoutr2r3r4r5lenFigure_get_contour_subplot update_xaxesr,r update_yaxesr-rrmathlog10r update_layout enumerate add_tracerupdate)rCrIr2r3r4r5x_paramy_param sub_plot_info sub_plotsfigurep log_rangerUx_iy_icontourscatterr,r-s r)r@r@hs YY^ ,F&&M((N&&M""K =Qyyb00 =Q""&q)!, ( {S  &9wm6I6I6O6OPwm6I6I6O6OP    % %   Z  0    % %   Z  0    % %0=0C0C0I0IJ1AJIJ   ie  <    % %0=0C0C0I0IJ1AJIJ   ie  KKE5ME   <<c +  v1$)Hc3Z ??n&=&==He$5) c3Z -8 6<=)!,=  >s G'c|jjt}|duxst|Dcgc]}|dk c}Scc}w)Ng) system_attrsrrall)rr/r9s r)rrks@$$(()9:K $  F#&EAqCx&E"FF&Es Act||r)|Dcgc]}|jj|}}nA|Dcgc]6}||jvr$t|jj|nd8}}t |Dcgc]}|| c}}t |Dcgc]}|| c}}t ||rt|}t|}tj|tj|z tz}tjdtj||z }tjdtj||z}d}d} ntt||r1t|}t|}||z tz}||z }||z}d}d} n7t|} t| dz } d| vr| dz} | tz}| }| |z}d}d} tt|Dcgc]}|| c}} t| dkrt|||f|| | |St||r#| j!d|| j#|t|||f|| | |Scc}wcc}wcc}wcc}wcc}w)N TFrGrJ)rrrrr r!r)rrBrrrrrfloatr\r] PADDING_RATIOpowrrWrrinsertr|) r param_namerr!v min_value max_valuepaddingrr unique_valuesspanr s r)rrpsoVZ(4:;q!((,,z*;;X^ RSZ188-CC Z( ) M  81!-Q89I81!-Q89IVZ()$ )$ ::i(4::i+@@MQHHRI!6!@A HHRI!6!@A  vz *)$ )$ y(M9' ' F =!A% = AID&H 7N SV=q}!=>?G 7|ai(   VZ(q)$y!  )$  m< 98>>s."I;I!I&I&I+$I+"I0 *I0 )N) rAr rBlist[str] | Noner<%Callable[[FrozenTrial], float] | Noner5rreturn 'go.Figure')rCr1rr)r;)rCr+r4rr5rrz&tuple['Contour', 'Scatter', 'Scatter'])r9r8r:r8rxrrr)NNr;) rAr rBrr<rr5rrr1) rAr rlist[FrozenTrial]rbrrcrr<rrr+)rr rr)rrrrrr)2 __future__rcollections.abcrr\typingrrrynumpyr}optuna.loggingroptuna.samplers._baser optuna.studyr r optuna.trialr r $optuna.visualization._plotly_importsr optuna.visualization._utilsrrrrr is_successfulrrrrrr#rrrr+r1r7rDr@rYrr?rrrr'r(r)rs"$ %2'$#9895598<7B<7 X  % %!j!:* $##59( ## ## ## 2 ##  ##  ##LKb)5 555, 5p& $48( 0 0 0 20 0  0f6 6 66 6 2 6  6rG @r(