pyplot: If on MSVC the top graph limit is slightly less (due to double
precision deviations) than the vector contents, the graph will not be plotted in this area. Therefore extend the limits a bit (0.5%). Gnuplot: Use snprintf instead of sprintf. Reduce limits extension to 0.005.
This commit is contained in:
parent
89d442b852
commit
64926499da
|
|
@ -298,7 +298,10 @@ void ft_gnuplot(double *xlims, double *ylims,
|
|||
contours = has_contour_data(vecs);
|
||||
}
|
||||
|
||||
extrange = 0.05 * (ylims[1] - ylims[0]);
|
||||
if (ylims)
|
||||
extrange = 0.005 * (ylims[1] - ylims[0]);
|
||||
else
|
||||
extrange = 0.;
|
||||
|
||||
if (!cp_getvar("gnuplot_terminal", CP_STRING,
|
||||
terminal, sizeof(terminal))) {
|
||||
|
|
@ -626,8 +629,7 @@ void ft_gnuplot(double *xlims, double *ylims,
|
|||
|
||||
#if defined(__MINGW32__) || defined(_MSC_VER)
|
||||
/* for external fcn system() */
|
||||
// (void) sprintf(buf, "start /B wgnuplot %s -" , filename_plt);
|
||||
(void) sprintf(buf, "start /B wgnuplot -persist %s " , filename_plt);
|
||||
(void) snprintf(buf, sizeof(buf), "start /B wgnuplot -persist %s " , filename_plt);
|
||||
_flushall();
|
||||
#else
|
||||
/* for external fcn system() from LINUX environment */
|
||||
|
|
|
|||
|
|
@ -278,8 +278,11 @@ void ft_pyplot(double *xlims, double *ylims,
|
|||
fprintf(file, " _ax.grid(True, which='both')\n");
|
||||
if (xlims)
|
||||
fprintf(file, " _ax.set_xlim(%e, %e)\n", xlims[0], xlims[1]);
|
||||
if (ylims && !ylog)
|
||||
fprintf(file, " _ax.set_ylim(%e, %e)\n", ylims[0], ylims[1]);
|
||||
/* expand the limits a little (0.5%) to avoid double precision deviation on Windows */
|
||||
if (ylims && !ylog) {
|
||||
double extrange = (ylims[1] - ylims[0]) * 0.005;
|
||||
fprintf(file, " _ax.set_ylim(%e, %e)\n", ylims[0] - extrange, ylims[1] + extrange);
|
||||
}
|
||||
fprintf(file, " _ax.legend()\n");
|
||||
if (xlabel) {
|
||||
text = cp_unquote(xlabel);
|
||||
|
|
|
|||
Loading…
Reference in New Issue