|
From: Christoph B. <us...@be...> - 2015-02-21 09:54:03
|
Hi Ethan, I had submitted a patch to update and fix the behavior of multiplot's margins and spacing option, http://sourceforge.net/p/gnuplot/patches/713/ You had improved the patch, so that * the default units are `screen`, and not `char` (as I had): * the ordering of <top> and <bottom> doesn't matter and is swapped internally if required. Seems, like you committed your updated patch only to CVS, but applied my old patch to the 5.0 branch. Check the following script, which behaves as expected with 5.1 CVS, but not with the stable branch. All three plots should be identical: set multiplot layout 2,2 \ margins screen 0.1,0.9,0.9,0.1 spacing screen 0.1 \ title 'Margins order <top>,<bottom>' do for [i=1:4] {plot i*x } unset multiplot pause -1 set multiplot layout 2,2 \ margins screen 0.1,0.9,0.1,0.9 spacing screen 0.1 \ title 'Margins order <bottom>, <top>' do for [i=1:4] {plot i*x } unset multiplot pause -1 set multiplot layout 2,2 \ margins 0.1,0.9,0.1,0.9 spacing 0.1 \ title 'No explicit units, should default to "screen"' do for [i=1:4] {plot i*x } unset multiplot Thank you, Christoph |
|
From: sfeam <sf...@us...> - 2015-02-21 22:48:12
|
On Saturday, 21 February 2015 10:53:53 AM Christoph Bersch wrote: > Hi Ethan, > > I had submitted a patch to update and fix the behavior of multiplot's > margins and spacing option, http://sourceforge.net/p/gnuplot/patches/713/ > > You had improved the patch, so that > > * the default units are `screen`, and not `char` (as I had): > * the ordering of <top> and <bottom> doesn't matter and is swapped > internally if required. > > Seems, like you committed your updated patch only to CVS, but applied my > old patch to the 5.0 branch. > > Check the following script, which behaves as expected with 5.1 CVS, but > not with the stable branch. The idea is to not break anything in 5.0. Bugfixes and minor changes that seem fool-proof can go directly into both 5.0 and 5.1. My preference is that patches that are not convincingly fool-proof should get a testing period in 5.1 first. If no problems turn up, then they can bee applied to 5.0 before the next patchlevel release. If problems or objections do turn up, they can be repaired or reverted without affecting 5.0 at any point. I keep a queue of patches that are in testing in 5.1 waiting for backporting (or whatever you like to call it) into 5.0 Currently the queue contains 5 patches: sample_interval plot sample [a=min:max:interval] using ... toggle_command "toggle" from console command rather than mouse click set_margins_order to left, right, bottom, top multiplot_spacing (the patch you are referring to) times_sign_for_iso8859 '×' rather than 'x' in "%h" format The last 2 or 3 of those have probably had sufficient time in 5.1 with no reported complaint or problem. The first two I'm not so sure about. Ethan > All three plots should be identical: > > set multiplot layout 2,2 \ > margins screen 0.1,0.9,0.9,0.1 spacing screen 0.1 \ > title 'Margins order <top>,<bottom>' > do for [i=1:4] {plot i*x } > unset multiplot > pause -1 > > set multiplot layout 2,2 \ > margins screen 0.1,0.9,0.1,0.9 spacing screen 0.1 \ > title 'Margins order <bottom>, <top>' > do for [i=1:4] {plot i*x } > unset multiplot > pause -1 > > set multiplot layout 2,2 \ > margins 0.1,0.9,0.1,0.9 spacing 0.1 \ > title 'No explicit units, should default to "screen"' > do for [i=1:4] {plot i*x } > unset multiplot > > Thank you, > Christoph |
|
From: Christoph B. <us...@be...> - 2015-02-22 19:18:47
|
Am 21.02.2015 um 23:46 schrieb sfeam:
> On Saturday, 21 February 2015 10:53:53 AM Christoph Bersch wrote:
>>
>> Seems, like you committed your updated patch only to CVS, but applied my
>> old patch to the 5.0 branch.
>>
>> Check the following script, which behaves as expected with 5.1 CVS, but
>> not with the stable branch.
>
> The idea is to not break anything in 5.0.
Yes, that's why I asked. Because the current status of `set multiplot
layout margins` behavior in the 5.0 branch breaks with the behavior of
the 5.0 release version as it assumes different default units for the
values given to this option. But as long as you still have it in your
queue, it's fine :)
Another thing related to this is:
`set margin` and `set [lrbt]margin` use `char` as default unit, whereas
`set multiplot layout margins` uses `screen` as default unit. That was
the reason why I proposed to use the same behavior for all those commands.
And, the revised patch for `set multiplot layout margins` uses a sticky
`screen` or `char` keyword, so
set multiplot margins screen 0.1, 0.9, 0.9, 0.1
would use `screen` for all values, whereas
set margin screen 0.1, 0.9, 0.9, 0.1
uses `screen` only for the first value. Should we adapt the behavior of
`set multiplot margins`, so that we are consistent?
I had chosen the sticky variant, because in my use cases I always used
the same units for all values, and I didn't want to repeat the same
keyword four time (also like the coordinate parsing in `set object
polygon` does).
Best,
Christoph
|