Hello All, I am having lots of very frustrating little problems with Matplotlib.
1. Here is an example of one problem: the x-axis looks awful even though I coded a tick locator and tick formatter special: http://www.nabble.com/file/p22989017/inE.png I think I know what caused this, too. While plotting, Python gave the error/warning "DeprecationWarning: integer argument expected, got float tzinfo=rr._ tzinfo". With many very similar data sets, it doesn't give that error and draws nice tick marks like this: http://www.nabble.com/file/p22989017/31%2B2009.png Is the error caused by the fact that the data doesn't fill the whole X-axis? That would be an unfortunate reason to fail, especially considering the second problem... 2. Here is another problem: GTK on my MacBook always successfully changes the X-axis limits when I say plt.xlim(number1, number2). Using the Agg backend on an Ubuntu server (which doesn't have GTK because it is headless), xlim NEVER works. Ubuntu with Agg draws a graph fine, but it uses whatever limits it would have used default. Example from Ubuntu with Agg: http://www.nabble.com/file/p22989017/Matplotlib%2Bgraph%2B-%2BExemplifies%2Bdate%2Bformatting%2Band%2Bxlim%2Bbugs.png Example from my MacBook with GTK: http://www.nabble.com/file/p22989017/22%2B2009.png 3. The final problem is also demonstrated by the two example images in problem #2 above: Agg completely ignores my tick formatter, and perhaps also my tick locator. Why? Here is all of the relevant Matplotlib code I am using: plt.clf() ax = plt.subplot(111) if dateMin: plt.xlim(xmin=dateMin, xmax=dateMax) plt.plot(yDates, xIntensity) xmin, xmax = plt.xlim() xrange = num2date(xmax)-num2date(xmin) if xrange < datetime.timedelta(hours=24): widthInUnits = divideDelta(xrange, datetime.timedelta(hours=1)) stepRaw = widthInUnits/5. #The denominator here is the maximum number of ticks on the x axis. So putting 5 in the denominator, as I have done here, means there will be up to 5 tick marks. step = floor(stepRaw+1) majorFormatter = DateFormatter('%I:%M %p') majorLocator = HourLocator(interval=step) elif xrange < datetime.timedelta(days=5): widthInUnits = divideDelta(xrange, datetime.timedelta(hours=12)) stepRaw = widthInUnits/7. step = floor(stepRaw+1) majorFormatter = DateFormatter('%m/%d\n%I%p') majorLocator = HourLocator(interval=step*12) elif xrange < datetime.timedelta(days=300): widthInUnits = divideDelta(xrange, datetime.timedelta(days=1)) stepRaw = widthInUnits/8. step = floor(stepRaw+1) majorFormatter = DateFormatter('%m/%d') majorLocator = DayLocator(interval=step) else: widthInUnits = divideDelta(xrange, datetime.timedelta(days=30)) stepRaw = widthInUnits/7. step = floor(stepRaw+1) majorFormatter = DateFormatter('%b\n%Y') majorLocator = MonthLocator(interval=int(step)) ax.xaxis.set_major_locator(majorLocator) ax.xaxis.set_major_formatter(majorFormatter) if dateMark: for mark in dateMark: l = plt.axvline(x=mark, color='r') plt.savefig(str(filePath+'/'+fileNameExt)) Thank you, I hope somebody can help. -- View this message in context: http://www.nabble.com/Lots-of-little-problems-with-appearance-%28Agg-vs.-GTK%2C-xlim%2C-tick-locators%29-tp22989017p22989017.html Sent from the matplotlib - users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users