PLearn 0.1
Public Member Functions | Protected Attributes
PLearn::Gnuplot Class Reference

#include <Gnuplot.h>

Collaboration diagram for PLearn::Gnuplot:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Gnuplot (int max_nb_plot=20)
 Gnuplot (const Vec &v1, const string &opt1)
 Gnuplot (const Vec &v1, const string &opt1, const Vec &v2, const string &opt2)
 Gnuplot (const Vec &v1, const string &opt1, const Vec &v2, const string &opt2, const Vec &v3, const string &opt3)
 ~Gnuplot ()
PStreamoperator<< (const string &str)
void flush ()
void setxrange (real xmin, real xmax)
void setyrange (real ymin, real ymax)
void setrange (real xmin, real xmax, real ymin, real ymax)
void seteps (const string &filename)
 set to eps mode, will save to specified .eps file
void plot (const Vec &v1, const string &opt1="")
void plot (const Vec &v1, const string &opt1, const Vec &v2, const string &opt2)
void plot (const Vec &v1, const Vec &v2)
void plot (const Vec &v1, const string &opt1, const Vec &v2, const string &opt2, const Vec &v3, const string &opt3)
void plot (const Vec &v1, const Vec &v2, const Vec &v3)
void plot (const Vec &v1, const string &opt1, const Vec &v2, const string &opt2, const Vec &v3, const string &opt3, const Vec &v4, const string &opt4)
void plot (const Vec &v1, const Vec &v2, const Vec &v3, const Vec &v4)
void plot (const Mat &m1, const string &opt1="")
void plot (const Mat &m1, const string &opt1, const Mat &m2, const string &opt2)
void plot (const Mat &m1, const string &opt1, const Mat &m2, const string &opt2, const Mat &m3, const string &opt3)
void plot (const Mat &m1, const string &opt1, const Mat &m2, const string &opt2, const Mat &m3, const string &opt3, const Mat &m4, const string &opt4)
void plot (const Mat &m1, const string &opt1, const Mat &m2, const string &opt2, const Mat &m3, const string &opt3, const Mat &m4, const string &opt4, const Mat &m5, const string &opt5)
void plot (const Mat &m1, const string &opt1, const Mat &m2, const string &opt2, const Mat &m3, const string &opt3, const Mat &m4, const string &opt4, const Mat &m5, const string &opt5, const Mat &m6, const string &opt6)
void plotClasses (const Mat &m)
void multiplot (vector< Mat * > &ms, vector< string > &opts)
void plot3d (const Mat &m1, const string &opt1="")
void plotcdf (Vec feature, const string &title="cdf")
void plotcdf (const Array< Vec > &vecarray, const Array< string > &titlearray)
void plotdensity (Vec feature, const string &title, int halfwindowsize, string range="")
void plotdensity (const Array< Vec > &vecarray, const Array< string > &titlearray, int halfwindowsize)
void histoplot (Vec feature, real minval, real maxval, int nbins, bool do_normalize=false, char *title="histogram")
void histoplot (Vec feature, Vec classnums, real minval, real maxval, int nbins, bool do_normalize=false)
void featureplot (Mat inputs, Vec classnums, char *withwhat="points")
void featureplot (Mat dataset, char *withwhat="points")
void export_ps (string psfname, string psoptions="eps color")

Protected Attributes

TmpFilenames tmpfilenames
FILE * gp_cstream
PStream tognuplot

Detailed Description

Definition at line 60 of file Gnuplot.h.


Constructor & Destructor Documentation

PLearn::Gnuplot::Gnuplot ( int  max_nb_plot = 20)

Definition at line 63 of file Gnuplot.cc.

References PLearn::endl(), gp_cstream, PLearn::PStream::outmode, PLearn::PStream::raw_ascii, and tognuplot.

  : tmpfilenames(nb_max_plot,"/tmp/","gp"),
    gp_cstream(popen("gnuplot","w"))  //, tognuplot(fileno(gp_cstream))
{
  tognuplot = new FdPStreamBuf(-1, fileno(gp_cstream));
  tognuplot.outmode=PStream::raw_ascii;
  tognuplot << "set data style lines" << endl;
}

Here is the call graph for this function:

PLearn::Gnuplot::Gnuplot ( const Vec v1,
const string &  opt1 
)

Definition at line 72 of file Gnuplot.cc.

References PLearn::endl(), gp_cstream, PLearn::PStream::outmode, plot(), PLearn::PStream::raw_ascii, and tognuplot.

  : tmpfilenames(5,"/tmp/","gp"),
    gp_cstream(popen("gnuplot","w")) //, tognuplot(fileno(gp_cstream))
{
  tognuplot = new FdPStreamBuf(-1, fileno(gp_cstream));
  tognuplot.outmode=PStream::raw_ascii;
  tognuplot << "set data style lines" << endl;
  plot(v1,opt1);
}

Here is the call graph for this function:

PLearn::Gnuplot::Gnuplot ( const Vec v1,
const string &  opt1,
const Vec v2,
const string &  opt2 
)

Definition at line 82 of file Gnuplot.cc.

References PLearn::endl(), gp_cstream, PLearn::PStream::outmode, plot(), PLearn::PStream::raw_ascii, and tognuplot.

  : tmpfilenames(5,"/tmp/","gp"),
    gp_cstream(popen("gnuplot","w")) //,    tognuplot(fileno(gp_cstream))
{
  tognuplot = new FdPStreamBuf(-1, fileno(gp_cstream));
  tognuplot.outmode=PStream::raw_ascii;
  tognuplot << "set data style lines" << endl;
  plot(v1,opt1,v2,opt2);
}

Here is the call graph for this function:

PLearn::Gnuplot::Gnuplot ( const Vec v1,
const string &  opt1,
const Vec v2,
const string &  opt2,
const Vec v3,
const string &  opt3 
)

Definition at line 92 of file Gnuplot.cc.

References PLearn::endl(), gp_cstream, PLearn::PStream::outmode, plot(), PLearn::PStream::raw_ascii, and tognuplot.

  : tmpfilenames(5,"/tmp/","gp"),
    gp_cstream(popen("gnuplot","w")) //,    tognuplot(fileno(gp_cstream))
{
  tognuplot = new FdPStreamBuf(-1, fileno(gp_cstream));
  tognuplot.outmode=PStream::raw_ascii;
  tognuplot << "set data style lines" << endl;
  plot(v1,opt1,v2,opt2,v3,opt3);
}

Here is the call graph for this function:

PLearn::Gnuplot::~Gnuplot ( )

Definition at line 103 of file Gnuplot.cc.

References PLearn::endl(), gp_cstream, and tognuplot.

{ 
  tognuplot << "\nquit" << endl; 
  pclose(gp_cstream);
}

Here is the call graph for this function:


Member Function Documentation

void PLearn::Gnuplot::export_ps ( string  psfname,
string  psoptions = "eps color" 
)

Definition at line 463 of file Gnuplot.cc.

References PLearn::endl(), and tognuplot.

{
  tognuplot << "set terminal postscript " << psoptions << "\n"
            << "set output '" << psfname << "'\n"
            << "replot\n"
            << "set output\n"
            << "set terminal x11" << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::featureplot ( Mat  inputs,
Vec  classnums,
char *  withwhat = "points" 
)

Plots each input feature (column of inputs), with the different values it takes in the dataset and with a different color for each class

Definition at line 361 of file Gnuplot.cc.

References c, PLearn::endl(), i, j, PLearn::TMat< T >::length(), PLearn::max(), tmpfilenames, tognuplot, and PLearn::TMat< T >::width().

{
  ofstream out(tmpfilenames[0].c_str());
  
  int nclasses = (int)max(classnums) + 1;

  for(int c=0; c<nclasses; c++)
    {
      for(int i=0; i<inputs.length(); i++)
        if((int)classnums[i] == c)
          for(int j=0; j<inputs.width(); j++)
            out << j << ' ' << inputs(i,j) << endl;
      out << endl;
    }

  tognuplot << "plot '" << tmpfilenames[0] << "' every PLearn:::0::0 title 'Class 0' with " << withwhat;
  for(int c=1; c<nclasses; c++)
    tognuplot << ", '" << tmpfilenames[0] << "' every PLearn:::" << c << "::" << c
              << "  title 'Class " << c << "' with " << withwhat;
  tognuplot << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::featureplot ( Mat  dataset,
char *  withwhat = "points" 
) [inline]

Definition at line 121 of file Gnuplot.h.

References PLearn::TMat< T >::lastColumn(), PLearn::TMat< T >::subMatColumns(), PLearn::TMat< T >::toVecCopy(), and PLearn::TMat< T >::width().

    { 
      featureplot(dataset.subMatColumns(0,dataset.width()-1),
                  dataset.lastColumn().toVecCopy(), withwhat);
    }

Here is the call graph for this function:

void PLearn::Gnuplot::flush ( )

Definition at line 115 of file Gnuplot.cc.

References PLearn::PStream::flush(), and tognuplot.

{ tognuplot.flush(); }

Here is the call graph for this function:

void PLearn::Gnuplot::histoplot ( Vec  feature,
Vec  classnums,
real  minval,
real  maxval,
int  nbins,
bool  do_normalize = false 
)

Definition at line 326 of file Gnuplot.cc.

References c, PLearn::endl(), i, PLearn::TVec< T >::length(), PLearn::max(), PLearn::normalize(), tmpfilenames, and tognuplot.

{
  ofstream out(tmpfilenames[0].c_str());
  int nclasses = (int)max(classnums) + 1;
  real binwidth = (maxval-minval)/nbins;
  real deltaval = maxval-minval+ 1e-6;

  Mat histo(nclasses, nbins);
  for(int i=0; i<feature.length(); i++)
    {
      real val = feature[i];
      int binpos = int((val-minval)/deltaval*nbins);
      if(binpos>=0 && binpos<nbins)
        histo(int(classnums[i]),binpos)++;
    }

  if(do_normalize)
    normalize(histo,real(1.0));

  for(int c=0; c<nclasses; c++)
    {
      for(int i=0; i<nbins; i++)
        out << minval+(0.5+i)*binwidth << " " << histo(c,i) << " " << binwidth
            << endl;
      out << endl;
    }

  tognuplot << "plot '" << tmpfilenames[0] << "' every PLearn:::0::0 title 'Class 0' with boxes";
  for(int c=1; c<nclasses; c++)
    tognuplot << ", '" << tmpfilenames[0] << "' every PLearn:::" << c << "::" << c
              << "  title 'Class " << c << "' with boxes";
  tognuplot << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::histoplot ( Vec  feature,
real  minval,
real  maxval,
int  nbins,
bool  do_normalize = false,
char *  title = "histogram" 
)

Definition at line 310 of file Gnuplot.cc.

References PLearn::endl(), PLearn::histogram(), i, PLearn::normalize(), tmpfilenames, and tognuplot.

{
  ofstream out(tmpfilenames[0].c_str());
  Vec histo = histogram(feature, minval, maxval, nbins);
  if(do_normalize)
    normalize(histo,real(1.0));
  real binwidth = (maxval-minval)/nbins;
  
  for(int i=0; i<nbins; i++)
    out << minval + (0.5+i)*binwidth + 0.5 << " " << histo[i] << " " << binwidth << endl;
    //out << minval+(0.5+i)*nbins << " " << histo[i] << " " << binwidth << endl;

  tognuplot << "plot '" << tmpfilenames[0] << "' title '" << title << "' with boxes" << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::multiplot ( vector< Mat * > &  ms,
vector< string > &  opts 
)

Definition at line 290 of file Gnuplot.cc.

References PLearn::endl(), i, PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  tognuplot << "plot ";
  for (unsigned int i = 0; i < ms.size(); ++i) {
    saveGnuplot(tmpfilenames[i].c_str(), *(ms[i]));
    if (i) tognuplot << ", ";
    tognuplot << "'" << tmpfilenames[i] << "' " << opts[i];
  }
  tognuplot << endl;
}

Here is the call graph for this function:

PStream & PLearn::Gnuplot::operator<< ( const string &  str)

Definition at line 109 of file Gnuplot.cc.

References tognuplot.

{ 
  tognuplot << str; 
  return tognuplot;
}
void PLearn::Gnuplot::plot ( const Vec v1,
const string &  opt1,
const Vec v2,
const string &  opt2 
)

Definition at line 143 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), v1);
  chmod(tmpfilenames[0].c_str(),0777);
  saveGnuplot(tmpfilenames[1].c_str(), v2);
  chmod(tmpfilenames[1].c_str(),0777);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 << ", '" << tmpfilenames[1] << "' " << opt2 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Mat m1,
const string &  opt1,
const Mat m2,
const string &  opt2,
const Mat m3,
const string &  opt3 
)

Definition at line 188 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), m1);
  saveGnuplot(tmpfilenames[1].c_str(), m2);
  saveGnuplot(tmpfilenames[2].c_str(), m3);
  string command = "plot '" + tmpfilenames[0] + "' " + opt1 + ", " +
    "'" + tmpfilenames[1] + "' " + opt2 + ", " +
    "'" + tmpfilenames[2] + "' " + opt3;
  // cerr << command << endl;
  tognuplot << command << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Mat m1,
const string &  opt1,
const Mat m2,
const string &  opt2,
const Mat m3,
const string &  opt3,
const Mat m4,
const string &  opt4 
)

Definition at line 208 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), m1);
  saveGnuplot(tmpfilenames[1].c_str(), m2);
  saveGnuplot(tmpfilenames[2].c_str(), m3);
  saveGnuplot(tmpfilenames[3].c_str(), m4);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 << ", ";
  tognuplot << "'" << tmpfilenames[1] << "' " << opt2 << ", ";
  tognuplot << "'" << tmpfilenames[2] << "' " << opt3 << ", ";
  tognuplot << "'" << tmpfilenames[3] << "' " << opt4 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Vec v1,
const Vec v2 
) [inline]

Definition at line 85 of file Gnuplot.h.

References plot().

Referenced by plot().

{ plot(v1,"",v2,""); }

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::Gnuplot::plot ( const Mat m1,
const string &  opt1,
const Mat m2,
const string &  opt2,
const Mat m3,
const string &  opt3,
const Mat m4,
const string &  opt4,
const Mat m5,
const string &  opt5 
)

Definition at line 220 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), m1);
  saveGnuplot(tmpfilenames[1].c_str(), m2);
  saveGnuplot(tmpfilenames[2].c_str(), m3);
  saveGnuplot(tmpfilenames[3].c_str(), m4);
  saveGnuplot(tmpfilenames[4].c_str(), m5);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 << ", ";
  tognuplot << "'" << tmpfilenames[1] << "' " << opt2 << ", ";
  tognuplot << "'" << tmpfilenames[2] << "' " << opt3 << ", ";
  tognuplot << "'" << tmpfilenames[3] << "' " << opt4 << ", ";
  tognuplot << "'" << tmpfilenames[4] << "' " << opt5 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Mat m1,
const string &  opt1,
const Mat m2,
const string &  opt2,
const Mat m3,
const string &  opt3,
const Mat m4,
const string &  opt4,
const Mat m5,
const string &  opt5,
const Mat m6,
const string &  opt6 
)

Definition at line 235 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), m1);
  saveGnuplot(tmpfilenames[1].c_str(), m2);
  saveGnuplot(tmpfilenames[2].c_str(), m3);
  saveGnuplot(tmpfilenames[3].c_str(), m4);
  saveGnuplot(tmpfilenames[4].c_str(), m5);
  saveGnuplot(tmpfilenames[5].c_str(), m6);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 << ", ";
  tognuplot << "'" << tmpfilenames[1] << "' " << opt2 << ", ";
  tognuplot << "'" << tmpfilenames[2] << "' " << opt3 << ", ";
  tognuplot << "'" << tmpfilenames[3] << "' " << opt4 << ", ";
  tognuplot << "'" << tmpfilenames[4] << "' " << opt5 << ", ";
  tognuplot << "'" << tmpfilenames[5] << "' " << opt6 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Vec v1,
const string &  opt1,
const Vec v2,
const string &  opt2,
const Vec v3,
const string &  opt3 
)

Definition at line 152 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), v1);
  chmod(tmpfilenames[0].c_str(),0777);
  saveGnuplot(tmpfilenames[1].c_str(), v2);
  chmod(tmpfilenames[1].c_str(),0777);
  saveGnuplot(tmpfilenames[2].c_str(), v3);
  chmod(tmpfilenames[2].c_str(),0777);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 
            << ", '" << tmpfilenames[1] << "' " << opt2 
            << ", '" << tmpfilenames[2] << "' " << opt3 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Vec v1,
const Vec v2,
const Vec v3 
) [inline]

Definition at line 87 of file Gnuplot.h.

References plot().

Referenced by plot().

{ plot(v1,"",v2,"",v3,""); }

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::Gnuplot::plot ( const Vec v1,
const Vec v2,
const Vec v3,
const Vec v4 
) [inline]

Definition at line 89 of file Gnuplot.h.

References plot().

Referenced by plot().

{ plot(v1,"",v2,"",v3,"",v4,""); }

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::Gnuplot::plot ( const Mat m1,
const string &  opt1 = "" 
)

Definition at line 181 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), m1);
  tognuplot << "plot '"<< tmpfilenames[0] << "' " << opt1 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Vec v1,
const string &  opt1 = "" 
)

Definition at line 136 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

Referenced by PLearn::displayHistogram(), Gnuplot(), and PLearn::interactiveDisplayCDF().

{
  saveGnuplot(tmpfilenames[0].c_str(), v1);
  chmod(tmpfilenames[0].c_str(),0777);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 << endl;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::Gnuplot::plot ( const Vec v1,
const string &  opt1,
const Vec v2,
const string &  opt2,
const Vec v3,
const string &  opt3,
const Vec v4,
const string &  opt4 
)

Definition at line 165 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), v1);
  chmod(tmpfilenames[0].c_str(),0777);
  saveGnuplot(tmpfilenames[1].c_str(), v2);
  chmod(tmpfilenames[1].c_str(),0777);
  saveGnuplot(tmpfilenames[2].c_str(), v3);
  chmod(tmpfilenames[2].c_str(),0777);
  saveGnuplot(tmpfilenames[3].c_str(), v4);
  chmod(tmpfilenames[3].c_str(),0777);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 
            << ", '" << tmpfilenames[1] << "' " << opt2 
            << ", '" << tmpfilenames[2] << "' " << opt3
            << ", '" << tmpfilenames[3] << "' " << opt4 << endl; 
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot ( const Mat m1,
const string &  opt1,
const Mat m2,
const string &  opt2 
)

Definition at line 200 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
  saveGnuplot(tmpfilenames[0].c_str(), m1);
  saveGnuplot(tmpfilenames[1].c_str(), m2);
  tognuplot << "plot '" << tmpfilenames[0] << "' " << opt1 << ", ";
  tognuplot << "'" << tmpfilenames[1] << "' " << opt2 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plot3d ( const Mat m1,
const string &  opt1 = "" 
)

Definition at line 301 of file Gnuplot.cc.

References PLearn::endl(), PLearn::saveGnuplot(), tmpfilenames, and tognuplot.

{
    //tognuplot << "set contour" << endl;
    tognuplot << "set dgrid3d" << endl;
    //tognuplot << "set isosamples 10, 10" << endl;
    saveGnuplot(tmpfilenames[0].c_str(), m1);
    tognuplot << "splot '" << tmpfilenames[0] << "' " << opt1 << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plotcdf ( Vec  feature,
const string &  title = "cdf" 
)

Definition at line 383 of file Gnuplot.cc.

References PLearn::TVec< T >::copy(), PLearn::endl(), i, PLearn::TVec< T >::length(), PLearn::sortElements(), tmpfilenames, and tognuplot.

{
  Vec v = feature.copy();
  sortElements(v);
  ofstream out(tmpfilenames[0].c_str());
  // out << "0 0\n";
  for(int i=0; i<v.length(); i++)
    out << v[i] << ' ' << real(i+1)/v.length() << '\n';
  out.close();
  tognuplot << "plot '" << tmpfilenames[0] << "' using 1:2 title '" << title << "' with impulses" << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plotcdf ( const Array< Vec > &  vecarray,
const Array< string > &  titlearray 
)

Definition at line 395 of file Gnuplot.cc.

References c, PLearn::TVec< T >::copy(), PLearn::endl(), i, PLearn::TVec< T >::length(), PLearn::TVec< T >::size(), PLearn::sortElements(), tmpfilenames, and tognuplot.

{
  tognuplot << "plot ";
  for(int c=0; c<vecarray.size(); c++)
  {
    Vec v = vecarray[c].copy();
    sortElements(v);
    ofstream out(tmpfilenames[c].c_str());
    for(int i=0; i<v.length(); i++)
      out << v[i] << ' ' << real(i+1)/v.length() << '\n';
    out.close();
    tognuplot << "'" << tmpfilenames[c] << "' using 1:2 title '" << titlearray[c] << "'";
    if(c==vecarray.size()-1)
      tognuplot << endl;
    else
      tognuplot << ", ";
  }
}

Here is the call graph for this function:

void PLearn::Gnuplot::plotClasses ( const Mat m)

Definition at line 253 of file Gnuplot.cc.

References c, PLearn::TMat< T >::copy(), PLearn::endl(), PLearn::fast_exact_is_equal(), i, PLearn::TMat< T >::length(), PLERROR, PLearn::sortRows(), tmpfilenames, tognuplot, PLearn::tostring(), and x.

{
  Mat s = m.copy();
  sortRows(s, 2);
  string fname = tmpfilenames[0];
  int l = s.length();
  string command = "plot ";
  ofstream out(fname.c_str());
  if(!out)
    PLERROR("Could not open file %s for writing ", fname.c_str());

  real oldc = FLT_MAX;
  int index = 0;
  for(int i=0; i<l; i++)
    {
      real x = s(i,0);
      real y = s(i,1);
      real c = s(i,2);
      if(!fast_exact_is_equal(c, oldc))
        {
          if(i>0)
            {
              out << "\n\n";
              command += ", ";
            }
          command += "'" + fname + "' index " + tostring(index) + " title '" + tostring(c) + "' with points";
          ++index;
        }
      out << x << " " << y << " " << c << "\n";      
      oldc = c;
    }
  out.close();

  //  cerr <<  command << endl;
  tognuplot << command << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plotdensity ( Vec  feature,
const string &  title,
int  halfwindowsize,
string  range = "" 
)

Definition at line 414 of file Gnuplot.cc.

References PLearn::TVec< T >::copy(), PLearn::endl(), PLearn::fast_exact_is_equal(), i, PLearn::TVec< T >::length(), PLearn::max(), PLearn::min(), PLERROR, PLearn::sortElements(), tmpfilenames, tognuplot, and x.

{
  Vec v = feature.copy();
  sortElements(v);
  ofstream out(tmpfilenames[0].c_str());
  for (int i=1; i<v.length()-1; i++)
  {
    real x = v[i];
    int lowi = std::max(i-halfwindowsize,1);
    int highi = std::min(i+halfwindowsize,v.length()-2);
    real lowx = 0.5*(v[lowi-1]+v[lowi]);
    real highx = 0.5*(v[highi+1]+v[highi]);
    if (fast_exact_is_equal(highx, lowx))
      PLERROR("In Gnuplot::plotdensity(...), density at this point is inf, use larger windowsize");
    real density = (highi-lowi+1)/(highx-lowx);
    out << x << ' ' << density << "\n";
  }
  out.close();
  tognuplot << "plot " << range << " '" << tmpfilenames[0] << "' title '" << title << "' with lines" << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::plotdensity ( const Array< Vec > &  vecarray,
const Array< string > &  titlearray,
int  halfwindowsize 
)

Definition at line 435 of file Gnuplot.cc.

References c, PLearn::TVec< T >::copy(), PLearn::endl(), i, PLearn::TVec< T >::length(), PLearn::max(), PLearn::min(), PLearn::TVec< T >::size(), PLearn::sortElements(), tmpfilenames, tognuplot, and x.

{
  tognuplot << "plot ";
  for(int c=0; c<vecarray.size(); c++)
  {
    Vec v = vecarray[c].copy();
    sortElements(v);
    ofstream out(tmpfilenames[c].c_str());
    for (int i=1; i<v.length()-1; i++)
    {
      real x = v[i];
      int lowi = std::max(i-halfwindowsize,1);
      int highi = std::min(i+halfwindowsize,v.length()-2);
      real lowx = 0.5*(v[lowi-1]+v[lowi]);
      real highx = 0.5*(v[highi+1]+v[highi]);
      real density = (highi-lowi+1)/(highx-lowx);
      out << x << ' ' << density << "\n";
    }
    out.close();
    tognuplot << "'" << tmpfilenames[c] << "' using 1:2 title '" << titlearray[c] << "'";
    if(c==vecarray.size()-1)
      tognuplot << endl;
    else
      tognuplot << ", ";
  }
}

Here is the call graph for this function:

void PLearn::Gnuplot::seteps ( const string &  filename)

set to eps mode, will save to specified .eps file

Definition at line 130 of file Gnuplot.cc.

References PLearn::endl(), and tognuplot.

{
  tognuplot << "set term post color" << endl;
  tognuplot << "set output \"" << filename << "\"" << endl;
}

Here is the call graph for this function:

void PLearn::Gnuplot::setrange ( real  xmin,
real  xmax,
real  ymin,
real  ymax 
)

Definition at line 124 of file Gnuplot.cc.

References setxrange(), and setyrange().

{
  setxrange(xmin,xmax);
  setyrange(ymin,ymax);
}

Here is the call graph for this function:

void PLearn::Gnuplot::setxrange ( real  xmin,
real  xmax 
)

Definition at line 118 of file Gnuplot.cc.

References PLearn::endl(), and tognuplot.

Referenced by setrange().

{  tognuplot << "set xrange [" << xmin << ":" << xmax << "]" << endl; }

Here is the call graph for this function:

Here is the caller graph for this function:

void PLearn::Gnuplot::setyrange ( real  ymin,
real  ymax 
)

Definition at line 121 of file Gnuplot.cc.

References PLearn::endl(), and tognuplot.

Referenced by setrange().

{  tognuplot << "set yrange [" << ymin << ":" << ymax << "]" << endl; }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

FILE* PLearn::Gnuplot::gp_cstream [protected]

Definition at line 64 of file Gnuplot.h.

Referenced by Gnuplot(), and ~Gnuplot().

Definition at line 63 of file Gnuplot.h.

Referenced by featureplot(), histoplot(), multiplot(), plot(), plot3d(), plotcdf(), plotClasses(), and plotdensity().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines