From: matthew a. <ma...@ca...> - 2004-02-02 04:04:20
|
Hi, I am happily using matplotlib-0.50e. I tried eps output and it worked very nicely. The problem with plot lines not being clipped by a manual axis in the PS backend also seems to have been fixed. ... I have some feedback on the default tick behaviour. matplotlib seems to pick a number of ticks, and then divides through to get the tick values. This results in some ugly long tick labels, making it hard to quickly gauge the range between two points on a graph. E.g. if the y range of a plot is 1.927 to 1.948, then matplotlib puts ticks at (1.927, 1.931, 1.935, ..., 1.948) I think it would be better (and closer to the plotting behaviour of other software) if matplotlib picked ticks that were "round", even if that means the endpoints of the axes are slightly outside the range of the data. So the ticks for the example above would become: (1.925, 1.930, 1.935, ..., 1.950) I guess this would be more complicated to implement than the current algorithm, but it would make life easier when interpreting graphs from matplotlib! ... Another slight niggle. If I set the axis range manually, then if a data point is exactly equal to the end of the axis range then it won't be plotted. Making the axis range slightly longer is clumsy. This also violates the principle of least surprise, because automatic axis ranges do not have this behaviour. A simple way to see the problem is to compare the output of the two plots below: >>> xvals = arange(0.0, 1.0, 0.1) >>> plot(xvals, [sin(x) for x in xvals]) [<matplotlib.lines.Line2D instance at 0x93fa844>] >>> show() >>> plot(xvals, [sin(x) for x in xvals]) [<matplotlib.lines.Line2D instance at 0x9249d2c>] >>> autoaxis = axis() >>> autoaxis [0.0, 0.90000000000000002, 0.0, 0.80000000000000004] >>> axis(autoaxis) >>> show() Presumably the logic for picking the datapoints to plot should use <= not <. Cheers, Matthew. |