From: Andrea R. <ari...@pi...> - 2004-10-18 13:28:00
Attachments:
amelia.eps
|
Hi, I was playing with manual ticks when I've discovered what I think is a bug (PyX v0.6.3). Here is a minimal script that exhibits this misbehaviour: import pyx p = pyx.path.line(0, 0, 4, 0) # I prepare a straight line # I start to define my own ticks list so that major ticks are # interleaved with minor ones. myTicks = [pyx.graph.axis.tick.tick(0., label = "0", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(0.1, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(0.2, label = "0.2", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(0.3, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(0.4, label = "0.4", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(0.5, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(0.6, label = "0.6", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(0.7, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(0.8, label = "0.8", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(0.9, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(1.0, label = "1", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(1.1, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(1.2, label = "1.2", labelattrs = [pyx.text.mathmode]), pyx.graph.axis.tick.tick(1.3, label = "", ticklevel = 1), pyx.graph.axis.tick.tick(1.4, label = "1.4", labelattrs = [pyx.text.mathmode]),] # And now I plot the axis. c = pyx.canvas.canvas() c.insert(pyx.graph.axis.pathaxis(p, pyx.graph.axis.lin(min = 0, max = 1.4, manualticks = myTicks))) c.writeEPSfile("amelia.eps") Very simple example indeed, but look at the resulting eps file (I attach to the email what I get) and especially to the 0.5 tick. It should be a minor tick (as I defined it), but it's major one! I've no idea about where the bug could be, nevertheless I hope this can be of any help. Cheers, Andrea. |
From: Andre W. <wo...@us...> - 2004-10-19 08:02:40
|
Hi, On 18.10.04, Andrea Riciputi wrote: > c.insert(pyx.graph.axis.pathaxis(p, pyx.graph.axis.lin(min = 0, max = > 1.4, manualticks = myTicks))) > > Very simple example indeed, but look at the resulting eps file (I > attach to the email what I get) and especially to the 0.5 tick. It > should be a minor tick (as I defined it), but it's major one! > > I've no idea about where the bug could be, nevertheless I hope this can > be of any help. Sure it can. The idea is, that you can just add a few ticks to an automatically created ticks. If you want to disable automatically created ticks, you just need to set parter=None in the axis constructor. Unfortunately, as I've found out now by your example, that the manual set ticks do not win against ticks created by the parter as it is stated in the manual. The problem is, that merging of the ticks is the wrong operation here. I'll just try to correct that for the future. But beside that its the intended behavior. Might still be worth a discussion, but I think its a nice feature to be able to mix ticks which are set manually and which are created automatically. André -- by _ _ _ Dr. André Wobst / \ \ / ) wo...@us..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript figures with Python & TeX (_/ \_)_/\_/ visit http://pyx.sourceforge.net/ |
From: Andrea R. <ari...@pi...> - 2004-10-19 08:47:52
|
Thanks for your explanation, adding parter=None works as expected. The problem arose because the manual says that manual ticks list overtake automatic ticks, maybe a little further explanation (in the manual) should be useful. However I agree with you that beeing able to mix automatic and manual ticks is a nice feature. Cheers, Andrea. On 19 Oct 2004, at 07:37, Andre Wobst wrote: > Sure it can. The idea is, that you can just add a few ticks to an > automatically created ticks. If you want to disable automatically > created ticks, you just need to set parter=None in the axis > constructor. Unfortunately, as I've found out now by your example, > that the manual set ticks do not win against ticks created by the > parter as it is stated in the manual. The problem is, that merging of > the ticks is the wrong operation here. I'll just try to correct that > for the future. But beside that its the intended behavior. Might still > be worth a discussion, but I think its a nice feature to be able to > mix ticks which are set manually and which are created automatically. |
From: Andre W. <wo...@us...> - 2004-10-19 13:42:21
|
Hi Andrea, On 19.10.04, Andrea Riciputi wrote: > The > problem arose because the manual says that manual ticks list overtake > automatic ticks, maybe a little further explanation (in the manual) > should be useful. Right. But instead of *fixing* the manual I just fixed it in the source, since I think we should really do it like the manual told it all the time. The reason is, that the manual way to do it allows you to remove a tick at a certain position without disableing the partitioner. That might be useful ... So thanks for your report, it got fixed for the future. André -- by _ _ _ Dr. André Wobst / \ \ / ) wo...@us..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript figures with Python & TeX (_/ \_)_/\_/ visit http://pyx.sourceforge.net/ |