Mercurial > octave-dspies
comparison scripts/plot/util/private/__go_draw_axes__.m @ 18826:9c2ff2361864 stable
fix xticklabel with minor grid (bug #38139, bug #40256)
* scripts/plot/util/private/__go_draw_axes__.m (do_tics_1):
Set manual ticks first and add manual labels later.
Use variable mirror as string to avoid code duplication.
Set mtics at the end to avoid code duplication.
author | Stefan Mahr <dac922@gmx.de> |
---|---|
date | Wed, 09 Apr 2014 10:23:11 +0200 |
parents | e5ab507687ee |
children | 6a8cd989c69a |
comparison
equal
deleted
inserted
replaced
18820:85b4ba1fe6de | 18826:9c2ff2361864 |
---|---|
2113 | 2113 |
2114 function do_tics_1 (ticmode, tics, mtics, labelmode, labels, color, ax, | 2114 function do_tics_1 (ticmode, tics, mtics, labelmode, labels, color, ax, |
2115 plot_stream, mirror, mono, axispos, tickdir, ticklength, | 2115 plot_stream, mirror, mono, axispos, tickdir, ticklength, |
2116 fontname, fontspec, interpreter, scale, sgn, gnuplot_term) | 2116 fontname, fontspec, interpreter, scale, sgn, gnuplot_term) |
2117 persistent warned_latex = false; | 2117 persistent warned_latex = false; |
2118 if (mirror) | |
2119 mirror = "mirror"; | |
2120 else | |
2121 mirror = "nomirror"; | |
2122 endif | |
2118 if (strcmpi (interpreter, "tex")) | 2123 if (strcmpi (interpreter, "tex")) |
2119 for n = 1 : numel (labels) | 2124 for n = 1 : numel (labels) |
2120 labels{n} = __tex2enhanced__ (labels{n}, fontname, false, false); | 2125 labels{n} = __tex2enhanced__ (labels{n}, fontname, false, false); |
2121 endfor | 2126 endfor |
2122 elseif (strcmpi (interpreter, "latex")) | 2127 elseif (strcmpi (interpreter, "latex")) |
2141 endif | 2146 endif |
2142 colorspec = get_text_colorspec (color, mono); | 2147 colorspec = get_text_colorspec (color, mono); |
2143 if (strcmpi (ticmode, "manual") || strcmpi (labelmode, "manual")) | 2148 if (strcmpi (ticmode, "manual") || strcmpi (labelmode, "manual")) |
2144 if (isempty (tics)) | 2149 if (isempty (tics)) |
2145 fprintf (plot_stream, "unset %stics;\nunset m%stics;\n", ax, ax); | 2150 fprintf (plot_stream, "unset %stics;\nunset m%stics;\n", ax, ax); |
2146 elseif (strcmpi (labelmode, "manual")) | 2151 return |
2152 endif | |
2153 if (strcmpi (ticmode, "manual")) | |
2154 fprintf (plot_stream, "set format %s \"%s\";\n", ax, fmt); | |
2155 fprintf (plot_stream, "set %stics %s %s %s %s (", ax, tickdir, | |
2156 ticklength, axispos, mirror); | |
2157 fprintf (plot_stream, " %.15g,", tics(1:end-1)); | |
2158 fprintf (plot_stream, " %.15g) %s;\n", tics(end), fontspec); | |
2159 endif | |
2160 if (strcmpi (labelmode, "manual")) | |
2147 if (ischar (labels)) | 2161 if (ischar (labels)) |
2148 labels = cellstr (labels); | 2162 labels = cellstr (labels); |
2149 endif | 2163 endif |
2150 if (isnumeric (labels)) | 2164 if (isnumeric (labels)) |
2151 labels = num2str (real (labels(:))); | 2165 labels = num2str (real (labels(:))); |
2155 endif | 2169 endif |
2156 if (iscellstr (labels)) | 2170 if (iscellstr (labels)) |
2157 k = 1; | 2171 k = 1; |
2158 ntics = numel (tics); | 2172 ntics = numel (tics); |
2159 nlabels = numel (labels); | 2173 nlabels = numel (labels); |
2160 fprintf (plot_stream, "set format %s \"%%g\";\n", ax); | 2174 fprintf (plot_stream, "set %stics add %s %s %s %s (", ax, |
2161 if (mirror) | 2175 tickdir, ticklength, axispos, mirror); |
2162 fprintf (plot_stream, "set %stics %s %s %s mirror (", ax, | |
2163 tickdir, ticklength, axispos); | |
2164 else | |
2165 fprintf (plot_stream, "set %stics %s %s %s nomirror (", ax, | |
2166 tickdir, ticklength, axispos); | |
2167 endif | |
2168 | |
2169 labels = strrep (labels, "%", "%%"); | 2176 labels = strrep (labels, "%", "%%"); |
2170 for i = 1:ntics | 2177 for i = 1:ntics |
2171 fprintf (plot_stream, " \"%s\" %.15g", labels{k++}, tics(i)); | 2178 fprintf (plot_stream, " \"%s\" %.15g", labels{k++}, tics(i)); |
2172 if (i < ntics) | 2179 if (i < ntics) |
2173 fputs (plot_stream, ", "); | 2180 fputs (plot_stream, ", "); |
2175 if (k > nlabels) | 2182 if (k > nlabels) |
2176 k = 1; | 2183 k = 1; |
2177 endif | 2184 endif |
2178 endfor | 2185 endfor |
2179 fprintf (plot_stream, ") %s %s;\n", colorspec, fontspec); | 2186 fprintf (plot_stream, ") %s %s;\n", colorspec, fontspec); |
2180 if (strcmp (mtics, "on")) | |
2181 fprintf (plot_stream, "set m%stics %d;\n", ax, num_mtics); | |
2182 else | |
2183 fprintf (plot_stream, "unset m%stics;\n", ax); | |
2184 endif | |
2185 else | 2187 else |
2186 error ("__go_draw_axes__: unsupported type of ticklabel"); | 2188 error ("__go_draw_axes__: unsupported type of ticklabel"); |
2187 endif | 2189 endif |
2188 else | |
2189 fprintf (plot_stream, "set format %s \"%s\";\n", ax, fmt); | |
2190 if (mirror) | |
2191 fprintf (plot_stream, "set %stics %s %s %s mirror (", ax, tickdir, | |
2192 ticklength, axispos); | |
2193 else | |
2194 fprintf (plot_stream, "set %stics %s %s %s nomirror (", ax, tickdir, | |
2195 ticklength, axispos); | |
2196 endif | |
2197 fprintf (plot_stream, " %.15g,", tics(1:end-1)); | |
2198 fprintf (plot_stream, " %.15g) %s;\n", tics(end), fontspec); | |
2199 if (strcmp (mtics, "on")) | |
2200 fprintf (plot_stream, "set m%stics %d;\n", ax, num_mtics); | |
2201 else | |
2202 fprintf (plot_stream, "unset m%stics;\n", ax); | |
2203 endif | |
2204 endif | 2190 endif |
2205 else | 2191 else |
2206 fprintf (plot_stream, "set format %s \"%s\";\n", ax, fmt); | 2192 fprintf (plot_stream, "set format %s \"%s\";\n", ax, fmt); |
2207 if (mirror) | 2193 fprintf (plot_stream, "set %stics %s %s %s %s %s %s;\n", ax, |
2208 fprintf (plot_stream, "set %stics %s %s %s mirror %s %s;\n", ax, | 2194 tickdir, ticklength, axispos, mirror, colorspec, fontspec); |
2209 axispos, tickdir, ticklength, colorspec, fontspec); | 2195 endif |
2210 else | 2196 if (strcmp (mtics, "on")) |
2211 fprintf (plot_stream, "set %stics %s %s %s nomirror %s %s;\n", ax, | 2197 fprintf (plot_stream, "set m%stics %d;\n", ax, num_mtics); |
2212 tickdir, ticklength, axispos, colorspec, fontspec); | 2198 else |
2213 endif | 2199 fprintf (plot_stream, "unset m%stics;\n", ax); |
2214 if (strcmp (mtics, "on")) | |
2215 fprintf (plot_stream, "set m%stics %d;\n", ax, num_mtics); | |
2216 else | |
2217 fprintf (plot_stream, "unset m%stics;\n", ax); | |
2218 endif | |
2219 endif | 2200 endif |
2220 endfunction | 2201 endfunction |
2221 | 2202 |
2222 function ticklabel = ticklabel_to_cell (ticklabel) | 2203 function ticklabel = ticklabel_to_cell (ticklabel) |
2223 if (isnumeric (ticklabel)) | 2204 if (isnumeric (ticklabel)) |