L i`#ddlmZddlmZddlmZddlmZddlmZddlm Z ddlm Z ddl m Z dd l mZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZej4rddlmZddlmZddlmZddlmZe eZ GddeZ!GddeZ"GddeZ# d#dZ$ d$dZ% d%ddd d&d Z&d'd!Z'd(d"Z(y))) annotations)Callable)Any)cast) NamedTuple)CategoricalChoiceType)CategoricalDistribution) get_logger)_CONSTRAINTS_KEY)Study) FrozenTrial) TrialState)_imports)_check_plot_args)_filter_nonfinite) _is_log_scale)go) make_subplots)Scatter) COLOR_SCALEc^eZdZUded<ded<ded<ded<d ed <d ed <d ed <ded<y)_SliceSubplotInfostr param_name list[Any]x list[float]y list[int] trial_numbersboolis_log is_numericalz list[bool] constraints(tuple[CategoricalChoiceType, ...] | Nonex_labelsN__name__ __module__ __qualname____annotations__a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/optuna/visualization/_slice.pyrrs.OLN L66r-rc"eZdZUded<ded<y)_SlicePlotInfor target_namezlist[_SliceSubplotInfo]subplotsNr'r,r-r.r0r0)s%%r-r0c,eZdZUded<ded<ded<y) _PlotValuesrrrrrr Nr'r,r-r.r4r4.sLNr-r4c |dd}|}t|ggg|||g}|D]}||jvr|jj|j||jj|||j j|j |jjt} |jj| duxst| D cgc]} | dk c} |Scc} w)Nc6tt|jSN)rfloatvalue)ts r._targetz(_get_slice_subplot_info.._target>sqww' 'r-)rrrr r"r#r&r$g)r:r returnr8) rparamsrappendrr number system_attrsgetr r$all) trialsparamtarget log_scale numericalr&r; plot_infor:r$rs r._get_slice_subplot_inforI4s~ (!  Ib   188E?+ 6!9%&&qxx0nn(()9: $$[D%8%`CS^@_ac@_<`ab A`s! C<cJt|||t|jdtjf|}t |dk(r!t jdt|gS|Dchc]#}|jjD]}|%}}}i}|D].} | jjD]\} } | |vs | || <0i} |jD]%\} } t| ts| j| | <'| t!|} n.|D]}||vst#d|dt!t%|} t|| Dcgc]>}t'|||t)||t||t | j+|@c} Scc}}wcc}w) NF)deepcopystates)rErz.Your study does not have any completed trials.z Parameter z does not exist in your study.)rCrDrErFrGr&)r1r2)rr get_trialsrCOMPLETElen_loggerwarningr0r=keys distributionsitems isinstancer choicessorted ValueErrorsetrIrrA)studyr=rEr1rCr:p_name all_paramsrStrialr distributionr& sorted_params input_p_namerDs r._get_slice_plot_inforaZs UFK0  %1D1D0FGPVF 6{aHIk2.."(GQqxx}}GV&G&GJGM9(-(;(;(A(A(C 9 $J .,8 j) 99 H$1$7$7$98 L l$; <#/#7#7HZ 8~z* " \L:- :l^;Y!Z[[ \s6{+ '   $'6(u)=?VWW!e,      +H.  s /(FAF NzObjective Value)rEr1cXtjtt||||S)aNPlot the parameter relationship as slice 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 axis label. Returns: A :class:`plotly.graph_objects.Figure` object. )rcheck_get_slice_plotra)rZr=rEr1s r. plot_sliceres%: NN /vv{S TTr-cPtjd}t|jdk(rtjg|St|jdk(rtjt |jd|}|j |jdj|j|j|jdjs-|j dd|jdj |S|jdjr|j d |Stdt|jd }|j|d }t|jdD]\}}t |}|dj!d|i|rd}|D]}|j#|d||j |jd||dk(r|j|jd||js!|j dd|jd||js|j d d|t|jdkDr(|jdt|jz|S)Nz Slice Plot)titler)datalayout) title_textcategoryarray)type categoryorder categoryarraylog)rnT)rowscols shared_yaxes)start showscale)markerF)rowcol)rkrxry)rnrorprxry)rnrxryi,)width)rLayoutrOr2Figure_generate_slice_subplot update_xaxesr update_yaxesr1r#r&r"r update_layout enumerateupdate add_trace)inforifigurerv column_index subplot_infotracer:s r.rdrdsj YY\ *F 4==Qyyb00 T]] q  7 a8H IRXYt}}Q'7'B'BCt'7'78}}Q,,   wdmmTUFVF_F_  B M=]]1  $ $   U  +: M7AC ,>TRV$ *3DMM*K I &L,+L9E !HOOK#;O <!  =  | < =   <+B+B|  \q ##t/?/?QL#Y,,###")"."7"7$ $$$##A<#H' I( t}}  !  sS-?'? @ Mr-cPg}tggg}tggg}t|j|j|j|j D]\}}}}| |dk7s||dk7s|rR|jj ||jj ||jj |k|jj ||jj ||j tj|j|jddddd|jtddd d d d t|jdkDr@|j tj|j|jddddid |S)NNonemarkerszFeasible Trialg?Grey)r{colorTrialg?()rgrxpad)liner colorscalecolorbarF)rrmodenamerw showlegendrzInfeasible Trialrz#cccccc) r4ziprrr r$r>rrrrO)rrfeasible infeasiblerrnumcs r.r~r~s E2r2&HRR(J  (B(BLD\D\ ' 1c1 =AK1=AK !!!$ !!!$&&--c2 ##A& ##A& ' LL jjjj!"%7!//)$  & :<<1 JJ,,,,'Y!   Lr-)rCzlist[FrozenTrial]rDrrE%Callable[[FrozenTrial], float] | NonerFr!rGr!r&r%r<r) rZr r=list[str] | NonerErr1rr<r0r7) rZr r=rrErr1rr< 'go.Figure')rr0r<r)rrr<z list[Scatter])) __future__rcollections.abcrtypingrrroptuna.distributionsrr optuna.loggingr optuna.samplers._baser optuna.studyr optuna.trialr r$optuna.visualization._plotly_importsroptuna.visualization._utilsrrr is_successfulrrrrr(rPrr0r4rIrarerdr~r,r-r.rsS"$68%2$#989587B<7 X 7 7&Z& * # # # 2# #  # 7 ##L2 2 2 22 2  2n $U59( U U U 2 U  U  UB+\2r-