@@ -11,7 +11,7 @@ const version_id = 'dev',
1111
1212/** @summary version date
1313 * @desc Release date in format day/month/year like '14/04/2022' */
14- version_date = '21 /02/2024',
14+ version_date = '22 /02/2024',
1515
1616/** @summary version id and date
1717 * @desc Produced by concatenation of {@link version_id} and {@link version_date}
@@ -63759,7 +63759,7 @@ class TFramePainter extends ObjectPainter {
6375963759 umax = pad[`fU${name}max`],
6376063760 eps = 1e-7;
6376163761
63762- if (name === 'x') {
63762+ if (name === 'x') {
6376363763 if ((Math.abs(pad.fX1) > eps) || (Math.abs(pad.fX2 - 1) > eps)) {
6376463764 const dx = pad.fX2 - pad.fX1;
6376563765 umin = pad.fX1 + dx*pad.fLeftMargin;
@@ -63782,12 +63782,12 @@ class TFramePainter extends ObjectPainter {
6378263782
6378363783 let aname = name;
6378463784 if (this.swap_xy) aname = (name === 'x') ? 'y' : 'x';
63785- const smin = `scale_${aname}min`,
63786- smax = `scale_${aname}max`;
63785+ const smin = this[ `scale_${aname}min`] ,
63786+ smax = this[ `scale_${aname}max`] ;
6378763787
63788- eps = (this[ smax] - this[ smin] ) * 1e-7;
63788+ eps = (smax - smin) * 1e-7;
6378963789
63790- if ((Math.abs(umin - this[ smin] ) > eps) || (Math.abs(umax - this[ smax] ) > eps)) {
63790+ if ((Math.abs(umin - smin) > eps) || (Math.abs(umax - smax) > eps)) {
6379163791 this[`zoom_${aname}min`] = umin;
6379263792 this[`zoom_${aname}max`] = umax;
6379363793 }
@@ -63856,6 +63856,9 @@ class TFramePainter extends ObjectPainter {
6385663856 if (opts.ndim > 1) this.applyAxisZoom('y');
6385763857 if (opts.ndim > 2) this.applyAxisZoom('z');
6385863858
63859+ // TODO: extraction of PAD ranges must be done much earlier in hist painter
63860+ // normally histogram MUST set this ranges
63861+ // to be fixed after 7.6.0 release
6385963862 if (opts.check_pad_range === 'pad_range') {
6386063863 const canp = this.getCanvPainter();
6386163864 // ignore range set in the online canvas
@@ -63912,7 +63915,7 @@ class TFramePainter extends ObjectPainter {
6391263915 noexp_changed: this.y_noexp_changed,
6391363916 symlog: this.swap_xy ? opts.symlog_x : opts.symlog_y,
6391463917 logcheckmin: (opts.ndim < 2) || this.swap_xy,
63915- log_min_nz: opts.ymin_nz && (opts.ymin_nz < this.ymax) ? 0.9 *opts.ymin_nz : 0,
63918+ log_min_nz: opts.ymin_nz && (opts.ymin_nz <= this.ymax) ? 0.5 *opts.ymin_nz : 0,
6391663919 logminfactor: logminfactorY });
6391763920
6391863921 this.y_handle.assignFrameMembers(this, 'y');
@@ -63987,7 +63990,7 @@ class TFramePainter extends ObjectPainter {
6398763990 log: this.swap_xy ? pad.fLogx : pad.fLogy,
6398863991 noexp_changed: this.y2_noexp_changed,
6398963992 logcheckmin: (opts.ndim < 2) || this.swap_xy,
63990- log_min_nz: opts.ymin_nz && (opts.ymin_nz < 0.01* this.y2max) ? 0.3 * opts.ymin_nz : 0,
63993+ log_min_nz: opts.ymin_nz && (opts.ymin_nz < this.y2max) ? 0.5 * opts.ymin_nz : 0,
6399163994 logminfactor: logminfactorY });
6399263995
6399363996 this.y2_handle.assignFrameMembers(this, 'y2');
@@ -70509,11 +70512,13 @@ class TPavePainter extends ObjectPainter {
7050970512 // individual positioning
7051070513 const align = entry.fTextAlign || this.textatt.align,
7051170514 halign = Math.floor(align/10),
70515+ valign = align % 10,
70516+ tsize = this.textatt.getAltSize(entry.fTextSize, pad_height),
7051270517 x = entry.fX ? entry.fX*width : (halign === 1 ? margin_x : (halign === 2 ? width / 2 : width - margin_x)),
70513- y = entry.fY ? (1 - entry.fY)*height : texty,
70518+ y = entry.fY ? (1 - entry.fY)*height : ( texty + (valign === 2 ? tsize / 2 : (valign === 3 ? tsize : 0))) ,
7051470519 sub_g = text_g.append('svg:g');
7051570520
70516- this.startTextDrawing(this.textatt.font, this.textatt.getAltSize(entry.fTextSize, pad_height) , sub_g);
70521+ this.startTextDrawing(this.textatt.font, tsize , sub_g);
7051770522
7051870523 this.drawText({ align, x, y, text: entry.fTitle, color,
7051970524 latex: (entry._typename === clTText) ? 0 : 1, draw_g: sub_g, fast });
@@ -71825,7 +71830,7 @@ class THistDrawOptions {
7182571830 if (d.check('PMC') && !this._pmc)
7182671831 this._pmc = 2;
7182771832
71828- if (d.check('L')) { this.Line = true; this.Hist = false; this.Error = false; }
71833+ if (d.check('L')) { this.Line = true; this.Hist = false; }
7182971834 if (d.check('F')) { this.Fill = true; this.need_fillcol = true; }
7183071835
7183171836 if (d.check('A')) this.Axis = -1;
@@ -79219,7 +79224,7 @@ let TH1Painter$2 = class TH1Painter extends THistPainter {
7921979224 this.hmin = hmin;
7922079225 this.hmax = hmax;
7922179226
79222- this.ymin_nz = hmin_nz; // value can be used to show optimal log scale
79227+ // this.ymin_nz = hmin_nz; // value can be used to show optimal log scale
7922379228
7922479229 if ((this.nbinsx === 0) || ((Math.abs(hmin) < 1e-300) && (Math.abs(hmax) < 1e-300)))
7922579230 this.draw_content = false;
@@ -79236,10 +79241,16 @@ let TH1Painter$2 = class TH1Painter extends THistPainter {
7923679241 this.ymin = 0; this.ymax = hmin * 2;
7923779242 }
7923879243 } else {
79239- const dy = (hmax - hmin) * gStyle.fHistTopMargin;
79240- this.ymin = hmin - dy;
79241- if ((this.ymin < 0) && (hmin >= 0)) this.ymin = 0;
79242- this.ymax = hmax + dy;
79244+ const pad = this.getPadPainter()?.getRootPad(),
79245+ pad_logy = (this.options.BarStyle >= 20) ? pad.fLogx : (pad?.fLogv ?? pad?.fLogy);
79246+ if (pad_logy) {
79247+ this.ymin = (hmin_nz || hmin) * 0.5;
79248+ this.ymax = hmax*2*(0.9/0.95);
79249+ } else {
79250+ this.ymin = hmin - (hmax - hmin) * gStyle.fHistTopMargin;
79251+ if ((this.ymin < 0) && (hmin >= 0)) this.ymin = 0;
79252+ this.ymax = hmax + (hmax - this.ymin) * gStyle.fHistTopMargin;
79253+ }
7924379254 }
7924479255 }
7924579256
@@ -79590,13 +79601,13 @@ let TH1Painter$2 = class TH1Painter extends THistPainter {
7959079601 xaxis = histo.fXaxis,
7959179602 exclude_zero = !this.options.Zero,
7959279603 show_errors = this.options.Error,
79593- show_line = this.options.Line,
7959479604 show_curve = this.options.Curve,
7959579605 show_text = this.options.Text,
7959679606 text_profile = show_text && (this.options.TextKind === 'E') && this.isTProfile() && histo.fBinEntries,
7959779607 grpnts = [];
7959879608 let res = '', lastbin = false,
7959979609 show_markers = this.options.Mark,
79610+ show_line = this.options.Line,
7960079611 startx, startmidx, currx, curry, x, grx, y, gry, curry_min, curry_max, prevy, prevx, i, bestimin, bestimax,
7960179612 path_fill = null, path_err = null, path_marker = null, path_line = '',
7960279613 hints_err = null, hints_marker = null, hsz = 5,
@@ -79610,7 +79621,8 @@ let TH1Painter$2 = class TH1Painter extends THistPainter {
7961079621 if (this.options.ErrorKind === 2) {
7961179622 if (this.fillatt.empty()) show_markers = true;
7961279623 else path_fill = '';
79613- } else if (this.options.Error) {
79624+ } else if (show_errors) {
79625+ show_line = false;
7961479626 path_err = '';
7961579627 hints_err = want_tooltip ? '' : null;
7961679628 do_err = true;
@@ -116422,7 +116434,7 @@ class RFramePainter extends RObjectPainter {
116422116434 log: this.swap_xy ? this.logx : this.logy,
116423116435 symlog: this.swap_xy ? opts.symlog_x : opts.symlog_y,
116424116436 logcheckmin: (opts.ndim < 2) || this.swap_xy,
116425- log_min_nz: opts.ymin_nz && (opts.ymin_nz < 0.01* this.ymax) ? 0.3 * opts.ymin_nz : 0,
116437+ log_min_nz: opts.ymin_nz && (opts.ymin_nz < this.ymax) ? 0.5 * opts.ymin_nz : 0,
116426116438 logminfactor: 3e-4 });
116427116439
116428116440 this.y_handle.assignFrameMembers(this, 'y');
0 commit comments