[ROOT] Saving pads as postscript

From: Mike Miller (miller@star1.physics.yale.edu)
Date: Tue Feb 18 2003 - 18:59:04 MET


Hi All, I would like to do the following.  I have a macro that plots 
several different pads which I get by doing TCanvas::Divide.  When I save 
the canvas as a .eps it looks great.  But, I would also like to save each 
pad individually so that I can view them separately (and insert them into 
a presentation without cropping them out and resizing).  I do that via a 
little function which calls gPad->Save(), but that pad gets saved with 
exactly the same location and dimension on it's own .eps file as it has on 
the main canvas.  I want to be able to make it large and centered on a 
regular page.  Can somebody help me?  Here's an example macro to start the 
discussion.  Thanks, Mike

#include <iostream>

void savePad(const char* pad_name, const char* outdir, const char* tag)
{
    //I want to be able to resize the pad here, but don't know how
    char name[100];
    sprintf(name,"%s%s_%s", outdir, pad_name, tag);
    const char* n = gPad->GetName();
    cout <<"Write file:\t"<<name<<"\tfor pad:\t"<<n<<endl;
    gPad->cd();
    gPad->SaveAs(name);
}

void RootPadExample()
{
    TCanvas* c1 = new TCanvas("c1","",100,100,300,300);
    c1->Divide(1,2);

    c1->cd(1);
    TF1* func = new TF1("func","sin(x)",0., TMath::Pi());
    func->Draw();
    savePad("sin","./","function.eps");

    c1->cd(2);
    TF1* func2 = new TF1("func2","cos(x)",0., TMath::Pi());
    func2->Draw();
    savePad("cos","./","function.eps");

    c1->SaveAs("TheCanvas.eps");
}


-- 
Michael L. Miller (Yale Physics) michael.miller@yale.edu

Seattle:	206.543.2908	EPE group, 2nd floor physics.
BNL: 		631.344.8342	Building 118 Yale Software
Yale:   	203.432.6615	Room 301 WNSL



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET