From b3b533db94c58b1dc666bb6722cbc9426141028b Mon Sep 17 00:00:00 2001 From: Pietro Vertechi Date: Wed, 23 Aug 2017 14:10:35 +0100 Subject: [PATCH] fix margin in case there is no label (gr) --- src/backends/gr.jl | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/backends/gr.jl b/src/backends/gr.jl index d1924446..4a3c06ee 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -543,32 +543,36 @@ end function _update_min_padding!(sp::Subplot{GRBackend}) + # Add margin given by the user leftpad = 10mm + sp[:left_margin] toppad = 2mm + sp[:top_margin] - rightpad = 2mm + sp[:right_margin] - bottompad = 6mm + sp[:bottom_margin] + rightpad = 4mm + sp[:right_margin] + bottompad = 2mm + sp[:bottom_margin] + # Add margin for title if sp[:title] != "" toppad += 5mm end - if sp[:xaxis][:guide] != "" - xticks = axis_drawing_info(sp)[1] - if !(xticks in (nothing, false)) - gr_set_font(sp[:xaxis][:tickfont], - halign = (:left, :hcenter, :right)[sign(sp[:xaxis][:rotation]) + 2], - valign = :top, - color = sp[:xaxis][:foreground_color_axis], - rotation = sp[:xaxis][:rotation]) - h = 0.0 - for (cv, dv) in zip(xticks...) - tbx, tby = gr_inqtext(0, 0, string(dv)) - tby_min, tby_max = extrema(tby) - h = max(h, tby_max - tby_min) - end - bottompad += 1mm + gr_plot_size[2] * h * px - else - bottompad += 4mm + # Add margin for x ticks + xticks = axis_drawing_info(sp)[1] + if !(xticks in (nothing, false)) + gr_set_font(sp[:xaxis][:tickfont], + halign = (:left, :hcenter, :right)[sign(sp[:xaxis][:rotation]) + 2], + valign = :top, + color = sp[:xaxis][:foreground_color_axis], + rotation = sp[:xaxis][:rotation]) + h = 0.0 + for (cv, dv) in zip(xticks...) + tbx, tby = gr_inqtext(0, 0, string(dv)) + tby_min, tby_max = extrema(tby) + h = max(h, tby_max - tby_min) end + bottompad += 1mm + gr_plot_size[2] * h * px end + # Add margin for x label + if sp[:xaxis][:guide] != "" + bottompad += 4mm + end + # Add margin for y label if sp[:yaxis][:guide] != "" leftpad += 4mm end