Re: How to Define a new Color Palette?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed May 19 1999 - 11:22:16 MEST


Hi Frederic,
An example of a small macro redefining a grey scale color palette
and an example of use with a TF2 contour.

Rene Brun

void palette()
{
   //example of new colors (greys) and definition of a new palette
   
   const Int_t colNum = 10;
   Int_t palette[colNum];
   for (Int_t i=0;i<colNum;i++) {
      TColor *color = new TColor(51+i
         ,1-(i/((colNum)*1.0))
         ,1-(i/((colNum)*1.0))
         ,1-(i/((colNum)*1.0)),"");
      palette[i] = 51+i;
   }
   gStyle->SetPalette(colNum,palette);
   
   TF2 *f2 = new TF2("f2","exp(-(x^2) - (y^2))",-3,3,-3,3);
   f2->SetContour(colNum);
   f2->SetFillColor(0);
   f2->Draw("cont");
}


Frederic FAURE wrote:
> 
> Hello,
> i would like to use a colour palette of grey (from white to black).
> 
> Following an exemple, I try the following code.
> It works with :  Draw("col");
> but doesn't work with: Draw("cont")  (and i want to use this option).
> 
> Do you know how to correct this?
> Thanks,
> Fred
> 
> //-----------------------------------
> 
>  const int colNum=10; // nombre de couleurs
>  const int colPoint=3;   // numero de la couleur de depart
> 
>   TSeqCollection *colorList=gROOT->GetListOfColors();
>  while(colorList->LastIndex()>0)
>     colorList->RemoveLast();
> 
>  int mypalette[colNum]; // numero des couleurs
>  for ( int i=0; i< colNum; i++)
>    {
> 
> TColor(i+colPoint,1-(i/((colNum)*1.0)),1-(i/((colNum)*1.0)),1-(i/((colNum)*1.0)),"
> "); // gris
>      if((i+colPoint)<100)
>        {
>          colorList->RemoveLast(); //TColor *light
>          colorList->RemoveLast(); //TColor *dark
>        }
>      mypalette[i]=i+colPoint;
>    }
> 
>  gStyle->SetPalette(colNum,mypalette);
> 
>  TF2 *f2 = new TF2("f2","exp(-(x^2) - (y^2))",-3,3,-3,3);
>  f2->SetContour(colNum);
>  f2->SetFillColor(0);
> 
>  f2->Draw("cont");
> //--------------------------------------
> 
> --
> Frederic Faure
> LPMMC (Maison des Magisteres Jean Perrin, CNRS)
> BP 166 38042 Grenoble Cedex 9 France
> email: faure@labs.polycnrs-gre.fr
> tel: 04 76 88 74 98
> fax: 04 76 88 79 81



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:33 MET