From $ROOTSYS/tutorials/gl/transparentpad.C

//Author: Timur Pocheptsov, 19/03/2014.
//This macro demonstrates semi-transparent pads.
//Requires OpenGL.

//Includes for ACLiC (cling does not need them).

#include "TCanvas.h"
#include "TStyle.h"
#include "TError.h"
#include "TColor.h"
#include "TH1F.h"

//Aux. functions for tutorials/gl.
#include "customcolorgl.h"

void transparentpad()
{
   //1. Try to 'allocate' free indices for our custom colors -
   //we can use hard-coded indices like 1001, 1002, 1003 ... but
   //I prefer to find free indices in a ROOT's color table
   //to avoid possible conflicts with other tutorials.
   gStyle->SetCanvasPreferGL(kTRUE);

   Int_t indices[3] = {};
   if (ROOT::GLTutorials::FindFreeCustomColorIndices(indices) != 3) {
      ::Error("transparentpad", "failed to create new custom colors");
      return;
   }

   //2. Create a TCanvas.
   TCanvas * const c1 = new TCanvas("transparent pad","transparent pad demo", 10, 10, 900, 500);
   //We can check gVirtualX (its type):
   if (!c1->UseGL()) {
      ::Warning("transparentpad", "You can see the transparency ONLY in a pdf or png output (\"File\"->\"Save As\" ->...)\n"
                                  "To have transparency in a canvas graphics, you need OpenGL rendering enabled");
   }

   //2. Create special transparent colors.
   new TColor(indices[0], 1., 0.2, 0.2, "transparent_pink", 0.25);
   new TColor(indices[1], 0.2, 1., 0.2, "transparent_green", 0.25);
   new TColor(indices[2], 0.2, 2., 1., "transparent_blue", 0.15);

   //3. Some arbitrary histograms.
   TH1F * const h1 = new TH1F("TH1F 1", "TH1F 1", 100, -1.5, 1.5);
   h1->FillRandom("gaus");

   TH1F * const h2 = new TH1F("TH1F 2", "TH1F 2", 100, -1.5, 0.);
   h2->FillRandom("gaus");

   TH1F * const h3 = new TH1F("TH1F 3", "TH1F 3", 100, 0.5, 2.);
   h3->FillRandom("landau");

   //4. Now overlapping transparent pads.
   TPad * const pad1 = new TPad("transparent pad 1", "transparent pad 1", 0.1, 0.1, 0.7, 0.7);
   pad1->SetFillColor(indices[0]);//here's the magic!
   pad1->cd();
   h1->Draw("lego2");
   c1->cd();
   pad1->Draw();

   TPad * const pad2 = new TPad("transparent pad 2", "transparent pad 2", 0.2, 0.2, 0.8, 0.8);
   pad2->SetFillColor(indices[1]);//here's the magic!
   pad2->cd();
   h2->Draw();
   c1->cd();
   pad2->Draw();

   TPad * const pad3 = new TPad("transparent pad 3", "transparent pad 3", 0.3, 0.3, 0.9, 0.9);
   pad3->SetFillColor(indices[2]);//here's the magic!
   pad3->cd();
   h3->Draw();
   c1->cd();
   pad3->Draw();
}

 transparentpad.C:1
 transparentpad.C:2
 transparentpad.C:3
 transparentpad.C:4
 transparentpad.C:5
 transparentpad.C:6
 transparentpad.C:7
 transparentpad.C:8
 transparentpad.C:9
 transparentpad.C:10
 transparentpad.C:11
 transparentpad.C:12
 transparentpad.C:13
 transparentpad.C:14
 transparentpad.C:15
 transparentpad.C:16
 transparentpad.C:17
 transparentpad.C:18
 transparentpad.C:19
 transparentpad.C:20
 transparentpad.C:21
 transparentpad.C:22
 transparentpad.C:23
 transparentpad.C:24
 transparentpad.C:25
 transparentpad.C:26
 transparentpad.C:27
 transparentpad.C:28
 transparentpad.C:29
 transparentpad.C:30
 transparentpad.C:31
 transparentpad.C:32
 transparentpad.C:33
 transparentpad.C:34
 transparentpad.C:35
 transparentpad.C:36
 transparentpad.C:37
 transparentpad.C:38
 transparentpad.C:39
 transparentpad.C:40
 transparentpad.C:41
 transparentpad.C:42
 transparentpad.C:43
 transparentpad.C:44
 transparentpad.C:45
 transparentpad.C:46
 transparentpad.C:47
 transparentpad.C:48
 transparentpad.C:49
 transparentpad.C:50
 transparentpad.C:51
 transparentpad.C:52
 transparentpad.C:53
 transparentpad.C:54
 transparentpad.C:55
 transparentpad.C:56
 transparentpad.C:57
 transparentpad.C:58
 transparentpad.C:59
 transparentpad.C:60
 transparentpad.C:61
 transparentpad.C:62
 transparentpad.C:63
 transparentpad.C:64
 transparentpad.C:65
 transparentpad.C:66
 transparentpad.C:67
 transparentpad.C:68
 transparentpad.C:69
 transparentpad.C:70
 transparentpad.C:71
 transparentpad.C:72
 transparentpad.C:73
 transparentpad.C:74
 transparentpad.C:75
 transparentpad.C:76