exporting patch: # HG changeset patch # User Daniel J Sebald # Date 1506677164 18000 # Fri Sep 29 04:26:04 2017 -0500 # Node ID b63bcfbca185de4d1f4c73178dcd25210849033a # Parent e3fade9160f3e88f0b6f116fdc08c80c2f63ada8 Handle x-axis and y-axis independently for proper axis lines and tick marks (bug #52141) + __gnuplot_draw_axes__.m: Move do_border_2d() sooner and un-conditioned on no (empty) y-ticks, thereby addressing missing axis lines. Condense duplicate x-tick processing code into a separate group of if-else tests even in the empty y-tick scenario, thereby addressing extra mirrored x-ticks. diff --git a/scripts/plot/util/private/__gnuplot_draw_axes__.m b/scripts/plot/util/private/__gnuplot_draw_axes__.m --- a/scripts/plot/util/private/__gnuplot_draw_axes__.m +++ b/scripts/plot/util/private/__gnuplot_draw_axes__.m @@ -1486,43 +1486,29 @@ function __gnuplot_draw_axes__ (h, plot_ else if (nd == 3) do_border_tick_3d (axis_obj, plot_stream); - elseif (! isempty (axis_obj.ytick)) - if (strcmp (axis_obj.yaxislocation, "right")) + else + axis_idx = do_border_2d (axis_obj, plot_stream, axis_idx); + if (strcmp (axis_obj.xaxislocation, "top")) + maybe_do_x2tick_mirror (plot_stream, axis_obj) + elseif (strcmp (axis_obj.xaxislocation, "bottom")) + maybe_do_xtick_mirror (plot_stream, axis_obj) + # xaxislocation == "origin" or "zero" + elseif (strcmp (axis_obj.yaxislocation, "right")) + fprintf (plot_stream, "unset x2tics; set xtics %s nomirror\n", + axis_obj.tickdir); + elseif (strcmp (axis_obj.yaxislocation, "left")) + maybe_do_xtick_mirror (plot_stream, axis_obj) + else # yaxislocation == "origin" or "zero" + maybe_do_xtick_mirror (plot_stream, axis_obj) + endif + if (isempty (axis_obj.ytick)) + elseif (strcmp (axis_obj.yaxislocation, "right")) fprintf (plot_stream, "unset ytics; set y2tics %s nomirror\n", axis_obj.tickdir); - if (strcmp (axis_obj.xaxislocation, "top")) - maybe_do_x2tick_mirror (plot_stream, axis_obj) - elseif (strcmp (axis_obj.xaxislocation, "bottom")) - maybe_do_xtick_mirror (plot_stream, axis_obj) - else # xaxislocation == "origin" or "zero" - fprintf (plot_stream, "unset x2tics; set xtics %s nomirror\n", - axis_obj.tickdir); - endif - elseif (strcmp (axis_obj.yaxislocation, "left")) + else # yaxislocation == "left" or "origin" or "zero" fprintf (plot_stream, "unset y2tics; set ytics %s nomirror\n", axis_obj.tickdir); - if (strcmp (axis_obj.xaxislocation, "top")) - maybe_do_x2tick_mirror (plot_stream, axis_obj) - elseif (strcmp (axis_obj.xaxislocation, "bottom")) - maybe_do_xtick_mirror (plot_stream, axis_obj) - else # xaxislocation == "origin" or "zero" - maybe_do_xtick_mirror (plot_stream, axis_obj) - endif - else # yaxislocation == "origin" or "zero" - fprintf (plot_stream, "unset y2tics; set ytics %s nomirror\n", - axis_obj.tickdir); - if (strcmp (axis_obj.xaxislocation, "top")) - maybe_do_x2tick_mirror (plot_stream, axis_obj) - elseif (strcmp (axis_obj.xaxislocation, "bottom")) - maybe_do_xtick_mirror (plot_stream, axis_obj) - else # xaxislocation == "origin" or "zero" - maybe_do_xtick_mirror (plot_stream, axis_obj) - fprintf (plot_stream, "unset y2tics; set ytics %s nomirror\n", - axis_obj.tickdir); - fputs (plot_stream, "unset border;\n"); - endif endif - axis_idx = do_border_2d (axis_obj, plot_stream, axis_idx); endif endif endif