text: #include <cmath>
  #include "matplotlib-cpp/matplotlibcpp.h"
  
  using namespace std;
  namespace plt = matplotlibcpp;
  
  int main() 
  {    
      // Prepare data.
      int n = 5000; // number of data points
      vector<double> x(n),y(n); 
      for(int i=0; i<n; ++i) {
          double t = 2*M_PI*i/n;
          x.at(i) = 16*sin(t)*sin(t)*sin(t);
          y.at(i) = 13*cos(t) - 5*cos(2*t) - 2*cos(3*t) - cos(4*t);
      }
  
      // plot() takes an arbitrary number of (x,y,format)-triples. 
      // x must be iterable (that is, anything providing begin(x) and end(x)),
      // y must either be callable (providing operator() const) or iterable. 
      plt::plot(x, y, "r-", x, [](double d) { return 12.5+abs(sin(d)); }, "k-");
  
  
      // show plots
      plt::show();
  } 