L i,ddlmZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddl m Z dd l mZdd lmZej"rdd lmZdd lmZdd lmZed dddd ddZ ddZ d ddZy)) annotations)Callable)experimental_func)Study) FrozenTrial)_get_rank_info)_get_tick_info) _RankPlotInfo)_RankSubplotInfo)_imports)Axes)PathCollection)pltz3.2.0NzObjective Value)target target_namec\tjt||||}t|S)aPlot parameter relations as scatter plots with colors indicating ranks of target value. Note that trials missing the specified parameters will not be plotted. .. seealso:: Please refer to :func:`optuna.visualization.plot_rank` for an example. 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:`matplotlib.axes.Axes` object. )r checkr_get_rank_plot)studyparamsrrinfos k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/optuna/visualization/matplotlib/_rank.py plot_rankrs*B NN % =D $ c |j}|j}tjj dd|j d}t |}|dk(r*tj\}}|j||S|dk(s|dk(r;tj\}}|j|t||dd} notj||\}}|j|t|D]7} t|D]'} || | f}t||| | | |dz k(| dk(} )9t|j}  jtjd|j!| || j" } | j$j'| j(| j*j-d |S) NggplotzRank ()r) set_x_label set_y_labelRdYlBu_r)axticksgray)rsub_plot_infosrstyleuserlensubplots set_title_add_rank_subplotsuptitleranger zsset_cmapget_cmapcolorbar coloridxsr#set_yticklabelstextoutline set_edgecolor)rrr&titlen_params_r#figaxspcx_iy_i tick_infocbars rrr;s[[F((NIIMM(T%%&a (E6{H1} 2 U 1}A <<>S e sN1$5a$8 9<<(3S U? CX c]&"3', #1 5 #q   tww'IKK Z() <<s)*=*=< >DGGINN+ LLv& Jrc |r%|j|jj|r%|j|jj|jj s@|j |jjd|jjd|jj s@|j|jjd|jjd|jjr|jd|jjr|jd|j|jj r#|jDcgc] }t|c}n |j|jj r#|jDcgc] }t|c}n |j|j dz dScc}wcc}w)Nrrloggrey)xyc edgecolors) set_xlabelxaxisname set_ylabelyaxisis_catset_xlimr.set_ylimis_log set_xscale set_yscalescatterxsstryscolors)r#rr r!rFrGs rr,r,hsQ djjoo& djjoo& ::   DJJ$$Q')9)9!)<= ::   DJJ$$Q')9)9!)<= zz e zz e ::'+zz'8'8477 #a3q6 #dgg'+zz'8'8477 #a3q6 #dgg ++    # #s 8G1<G6 )N) rrrzlist[str] | Nonerz%Callable[[FrozenTrial], float] | NonerrWreturn'Axes')rr rZr[)TT) r#r[rr r boolr!r\rZz'PathCollection') __future__rcollections.abcroptuna._experimentalr optuna.studyr optuna.trialroptuna.visualization._rankrr r r 3optuna.visualization.matplotlib._matplotlib_importsr is_successfulr rrrrr,rrrfs"$2$5547H8HRG7 $" 59( " " "  2 "  "  " " J* * *\W[&59OSr