diff --git a/pub/CHANGELOG b/pub/CHANGELOG index d6cf06854ccfff52bbe5b2593a0a9727eeeb3896..bc6ee9e62591ae88f3de2340ba0a4077781e1510 100644 --- a/pub/CHANGELOG +++ b/pub/CHANGELOG @@ -1,7 +1,8 @@ -- Use plot.Y.force in 2d plotting -- Use wx, wy, wh in setting ticks and tacks for easier editing of PS file -- Correct ticks and tacks for small log range +- use plot.Y.force in 2d plotting +- use wx, wy, wh in setting ticks and tacks for easier editing of PS file +- correct ticks and tacks for small log range - correct handling of Z in oixy +- pertinent error message when calling 'a' before 'p' Release 2.4.0b of 21apr17: diff --git a/pub/lib/plot.cpp b/pub/lib/plot.cpp index ec8e59cb1ab08650c4cd8a9175dcd0ca44136d7d..dc7d5e766a0765a7e46d6e86525594eb4ce63909 100644 --- a/pub/lib/plot.cpp +++ b/pub/lib/plot.cpp @@ -466,7 +466,8 @@ namespace { // draw new frame: plot->start_frame1D("Frida version " VERSION, xCo.str_ps(), yCo.str_ps()); - } + } else + plot->reopen_frame1D(); // plot: while (const COlo* f = fiter.next()) { diff --git a/pub/plot/dualplot.cpp b/pub/plot/dualplot.cpp index 5b1e0c2d6e1e5cfc98f3d375cf75b5e99acd231c..b4ec369a678a66a6167e3991ac0f396eccb35dc4 100644 --- a/pub/plot/dualplot.cpp +++ b/pub/plot/dualplot.cpp @@ -119,8 +119,16 @@ void CPlot::start_frame1D(const string& caller, const string& xlabel, const stri { gnuPlotter->start_frame(X, Y); ps_Plotter->start_frame1D(caller, X, Y, xlabel, ylabel); + open1D = true; } +//! Start adding to plot. + +void CPlot::reopen_frame1D() +{ + if (!open1D) + throw S("plot frame is not open for adding"); +} //! Clear 2D plot canvas, and print coordinate ranges diff --git a/pub/plot/dualplot.hpp b/pub/plot/dualplot.hpp index 9f470fdc1ec1d0001ce3aa5a810cf57f87f63787..ea79c7afb80e7b8c8710861db01fe494c9f24d66 100644 --- a/pub/plot/dualplot.hpp +++ b/pub/plot/dualplot.hpp @@ -40,6 +40,7 @@ public: void gp_write(const std::string& in); void start_frame1D( const std::string& caller, const std::string& xlabel, const std::string& ylabel); + void reopen_frame1D(); void start_frame2D(const std::string& caller); void close_frame2D( const std::string& xlabel, const std::string& zlabel, const std::string& ylabel); @@ -61,4 +62,5 @@ public: private: std::shared_ptr<class CGnuPlotter> gnuPlotter; std::shared_ptr<class CPS_Plotter> ps_Plotter; + bool open1D = false; };