Simson Garfinkel wrote: > Hi! > > Below is a sample program. It demonstrates two bugs when plotting date/ > time histograms. > > 1. When the y scale is made "log", the histogram points plot as > lines, but when the y scale is not log, they histogram plots as bars. > I do not think that the look of the bars should change depending on > whether or not the Y scale is logarithmic.
Simson, I verified the strange behavior with log and/or date, but looking at the code did not yield any understanding of what the problems are. I hope someone who has worked on the bar code recently will sort this one out. Definitely, there is at least one major bug that needs to be fixed. > > 2. When the "agg.pdf" is removed, specifying "log" for the yscale > produces a TypeError on the mac (see below) This is mac-specific, and I don't have a mac, so I can't help with this, either. Eric > > > I would really like to know how to plot a histogram with real > bars ,rather than little lines. > > Thanks! > > import matplotlib > matplotlib.use('agg.pdf') > > if __name__=="__main__": > import datetime > import numpy as np > import matplotlib > import matplotlib.pyplot as pyplot > import matplotlib.dates as mdates > import matplotlib.mlab as mlab > > dates_and_counts = [[datetime.datetime(90,i,1), i*10] for i in > range(1,13)] > > dates, counts = zip(*dates_and_counts) > > years = mdates.YearLocator() # every year > months = mdates.MonthLocator() # every month > yearsFmt = mdates.DateFormatter('%Y') > > fig = pyplot.figure() > ax = fig.add_subplot(111) > ax.bar(dates,counts) > > ax.set_ylabel('file count') > ax.set_xlabel('file modification time (mtime)') > > ax.set_yscale('log') > > ax.xaxis.set_major_locator(years) > ax.xaxis.set_major_formatter(yearsFmt) > > datemin = datetime.date(min(dates).year, 1, 1) > datemax = datetime.date(max(dates).year, 1, 1) > ax.set_xlim(datemin, datemax) > ax.set_ylim(0,max(counts)) > > # format the coords message box > def price(x): return '$%1.2f'%x > ax.format_xdata = mdates.DateFormatter('%Y-%m-%d') > ax.format_ydata = price > ax.grid(True) > > # rotates and right aligns the x labels, and moves the bottom of the > # axes up to make room for them > fig.autofmt_xdate() > pyplot.savefig("hist.pdf",format='pdf') > > > > 12:12 PM m:~$ python f.py > Traceback (most recent call last): > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/figure.py", line 772, in draw > for a in self.axes: a.draw(renderer) > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/axes.py", line 1601, in draw > a.draw(renderer) > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/axis.py", line 710, in draw > tick.draw(renderer) > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/axis.py", line 193, in draw > self.label1.draw(renderer) > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/text.py", line 502, in draw > ismath=ismath) > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/backends/backend_macosx.py", line > 120, in draw_text > self._draw_mathtext(gc, x, y, s, prop, angle) > File "/Library/Frameworks/Python.framework/Versions/2.6/lib/ > python2.6/site-packages/matplotlib/backends/backend_macosx.py", line > 112, in _draw_mathtext > gc.draw_mathtext(x, y, angle, 255 - image.as_array()) > TypeError: image has incorrect type (should be uint8) > 12:12 PM m:~$ % > V/r, > > > Simson Garfinkel > > > > ------------------------------------------------------------------------------ > Check out the new SourceForge.net Marketplace. > It is the best place to buy or sell services for > just about anything Open Source. > http://p.sf.net/sfu/Xq1LFB > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ Check out the new SourceForge.net Marketplace. It is the best place to buy or sell services for just about anything Open Source. http://p.sf.net/sfu/Xq1LFB _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users