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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users