38  typedef std::vector<std::unique_ptr<CanvasItem>>::iterator iterator;
 
   44  iterator begin() 
noexcept { 
return (_items.begin()); }
 
   46  iterator end() 
noexcept { 
return (_items.end()); }
 
   50  void add(std::vector<Plot> &plots);
 
   54  void erase(std::vector<std::unique_ptr<CanvasItem>>::iterator begin,
 
   55             std::vector<std::unique_ptr<CanvasItem>>::iterator end);
 
   57  void setSize(
const std::array<int, 2> size);
 
   59  void setColor(
const std::string_view color);
 
   61  void setDefaultCharacterHeight(
double height);
 
   63  std::array<int, 2> 
const &getSize() 
const;
 
   65  float getAspectRatio() 
const;
 
   67  std::string_view getColor() 
const;
 
   69  const double &getDefaultCharacterHeight() 
const;
 
   73  void paintOnPostscript(std::string_view filename);
 
   75  void paintOnPNG(std::string_view filename);
 
   77  void paintOnJPEG(std::string_view filename);
 
   80  std::unique_ptr<plstream> _plstream;
 
   84  std::vector<std::string> _colormap;
 
   86  std::vector<std::unique_ptr<CanvasItem>> _items;
 
   88  std::array<int, 2> _size;
 
   90  double _defaultcharacterheight;
 
   92  double _defaultticklength;
 
   94  int lookUpColor(std::string_view hex);
 
   98  void draw(
Plot *plot);