Of course not necessarily, which is why you can change dimensions. But like you said, square is recommended and margins should be updated thusly when a title is added.
800x600 if axis has title, then plot is still square. 600x600 with no title on y axis, square plot
This can be understood only if you know the TGraph history: At the beginning of ROOT TGraph was a graphical object only. Like TLine and it behaved the same way. With time it was promoted as an analysis object like TH1. I agree we could have implemented a such constructor.
But, if we want to be consistent we need to duplicate all the normal constructors, not only in TGraph but also for the inherited classes. That makes a total of 14 constructors to be duplicated:
Do we really want this? ROOT classes are often criticized because they offer too many ways to do the same thing. That will not be a simplification of the interface …
Possibly we can add name and title at the end of the constructor parameters list with some default values. But then that will not be consistent with TH1. A such request seems to have many side effects for a little improvement and no added functionality.
Also, this can be implemented. But then, if we want to be consistent we need also to implement it for histograms. Title-setting methods for TH1 are now:
Yes, the standards evolve over years. When ROOT started, last century, the standard plots had 3D effects, the default palette was Rainbow, etc … That’s why we have the TStyle class allowing users, teams of users, and experiments to define their own standards.
For instance, the ATLAS Style is in the list of predefined styles.
We can decide to have square canvases by default, but that be justified by some external constraints, like some publishing instances asking for it and not only one user asking for it. Like we justified the change of the default color map.
ROOT has many tunings. We are now thinking to set them more automatically. But that’s always a difficult balance to find… For now, TStyle can help.