On Wed, Jan 26, 2011 at 9:16 PM, Jae-Joon Lee <lee.j.j...@gmail.com> wrote: > On Thu, Jan 27, 2011 at 10:07 AM, C M <cmpyt...@gmail.com> wrote: >> I know the 2nd problem is that a dictionary cannot have a mutable >> object like a list as a key. But previously, as I said, I was able to >> call line, (with the comma) and it would work. In fact, line, with a >> comma gives this type: >> > > If you just want a hashable object, can you just cast it to a tuple? > > > bars = self.subplot.bar(fake_data, fake_data ) > bars_tuple = tuple(bars) > > bars_tuple can be used as a dictionary key.
Yes, that can work, thanks, but I am still stuck without a bar chart for other reasons (see point #3 below), and I am still confused. I have some questions that if answered can hopefully help me get clearer: 1) What does the comma do exactly? If I put this: "line," I create a matplotlib line object, whereas if I put just "line" I create a list. Does this mean that plot() in mpl returns a tuple that contains one element, which is a mpl line object? (If so, why doesn't it just return the line object itself?) 2) Why does line, followed by plot() return a mpl line object but bars, followed by bar() not return some kind of matplotlib object (like a line)? Why does it instead give the "ValueError: Too many values to unpack" error? 3) I am getting just hammered with the following error *a lot* in date plotting lately: ValueError: ordinal must be >= 1 And I can't figure out what sorts of mistakes or situations are triggering it. More of the traceback above that error is at the end of this message. Does someone know when this error will be thrown when using dates so I can at least know what to check for in my data? Thanks, Che ------ more of Traceback: for ylabel_i in self.subplot.get_yticklabels(): File "C:\Python25\lib\site-packages\matplotlib\axes.py", line 2646, in get_yticklabels self.yaxis.get_ticklabels(minor=minor)) File "C:\Python25\lib\site-packages\matplotlib\axis.py", line 1087, in get_ticklabels return self.get_majorticklabels() File "C:\Python25\lib\site-packages\matplotlib\axis.py", line 1071, in get_majorticklabels ticks = self.get_major_ticks() File "C:\Python25\lib\site-packages\matplotlib\axis.py", line 1169, in get_major_ticks numticks = len(self.get_major_locator()()) File "C:\Python25\lib\site-packages\matplotlib\dates.py", line 743, in __call__ self.refresh() File "C:\Python25\lib\site-packages\matplotlib\dates.py", line 752, in refresh dmin, dmax = self.viewlim_to_dt() File "C:\Python25\lib\site-packages\matplotlib\dates.py", line 524, in viewlim_to_dt return num2date(vmin, self.tz), num2date(vmax, self.tz) File "C:\Python25\lib\site-packages\matplotlib\dates.py", line 289, in num2date if not cbook.iterable(x): return _from_ordinalf(x, tz) File "C:\Python25\lib\site-packages\matplotlib\dates.py", line 203, in _from_ordinalf dt = datetime.datetime.fromordinal(ix) ValueError: ordinal must be >= 1 ------------------------------------------------------------------------------ Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users