Check duplicate issues.
Description
Documentation for TCanvas::Divide says:
Automatic pad generation by division.
- The current canvas is divided in nx by ny equal divisions (pads).
- xmargin is the space along x between pads in percent of canvas.
- ymargin is the space along y between pads in percent of canvas.
- color is the color of the new pads. If 0, color is the canvas color.
But setting margins to 0 results in:
- Not setting up colors of subpards
- Adding top-right padding to the main canvas.
The documentation also says that:
Note3: in case xmargin <=0 and ymargin <= 0, there is no space between pads. The current pad margins are recomputed to optimize the layout.
Not sure what the second sentence means, what pad margins are recomputed?
Reproducer
Here a couple of examples of proper and improper behaviors:
- This works as expected - OK
{
TCanvas * can = new TCanvas("can", "can", 800, 800);
can->Divide(2, 2, 0.01, 0.01, 2);
}
- This gives white pads whereas they should be red - NOT OK
{
TCanvas * can = new TCanvas("can", "can", 800, 800);
can->Divide(2, 2, 0.0, 0.0, 2);
}
- After putting colours manually, we see odd top-right margin - NOT OK
{
TCanvas * can = new TCanvas("can", "can", 800, 800);
can->Divide(2, 2, 0.0, 0.0, 2);
can->cd(1);
gPad->SetFillColor(30);
gPad->Modified();
gPad->Update();
can->cd(2);
gPad->SetFillColor(38);
gPad->Modified();
gPad->Update();
can->cd(3);
gPad->SetFillColor(41);
gPad->Modified();
gPad->Update();
can->cd(4);
gPad->SetFillColor(42);
gPad->Modified();
gPad->Update();
can->cd(0);
gPad->SetFillColor(2);
gPad->Modified();
gPad->Update();
}
ROOT version
ROOT v6.36.04
Built for linuxx8664gcc on Sep 05 2025, 08:28:36
From tags/6-36-04@6-36-04
With
Binary directory: /usr/bin
Installation method
Gentoo, build from sources
Operating system
Gentoo
Additional context
No response
Check duplicate issues.
Description
Documentation for TCanvas::Divide says:
But setting margins to 0 results in:
The documentation also says that:
Not sure what the second sentence means, what pad margins are recomputed?
Reproducer
Here a couple of examples of proper and improper behaviors:
{ TCanvas * can = new TCanvas("can", "can", 800, 800); can->Divide(2, 2, 0.01, 0.01, 2); }{ TCanvas * can = new TCanvas("can", "can", 800, 800); can->Divide(2, 2, 0.0, 0.0, 2); }{ TCanvas * can = new TCanvas("can", "can", 800, 800); can->Divide(2, 2, 0.0, 0.0, 2); can->cd(1); gPad->SetFillColor(30); gPad->Modified(); gPad->Update(); can->cd(2); gPad->SetFillColor(38); gPad->Modified(); gPad->Update(); can->cd(3); gPad->SetFillColor(41); gPad->Modified(); gPad->Update(); can->cd(4); gPad->SetFillColor(42); gPad->Modified(); gPad->Update(); can->cd(0); gPad->SetFillColor(2); gPad->Modified(); gPad->Update(); }ROOT version
Installation method
Gentoo, build from sources
Operating system
Gentoo
Additional context
No response