You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
(12) |
Sep
(12) |
Oct
(56) |
Nov
(65) |
Dec
(37) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(59) |
Feb
(78) |
Mar
(153) |
Apr
(205) |
May
(184) |
Jun
(123) |
Jul
(171) |
Aug
(156) |
Sep
(190) |
Oct
(120) |
Nov
(154) |
Dec
(223) |
2005 |
Jan
(184) |
Feb
(267) |
Mar
(214) |
Apr
(286) |
May
(320) |
Jun
(299) |
Jul
(348) |
Aug
(283) |
Sep
(355) |
Oct
(293) |
Nov
(232) |
Dec
(203) |
2006 |
Jan
(352) |
Feb
(358) |
Mar
(403) |
Apr
(313) |
May
(165) |
Jun
(281) |
Jul
(316) |
Aug
(228) |
Sep
(279) |
Oct
(243) |
Nov
(315) |
Dec
(345) |
2007 |
Jan
(260) |
Feb
(323) |
Mar
(340) |
Apr
(319) |
May
(290) |
Jun
(296) |
Jul
(221) |
Aug
(292) |
Sep
(242) |
Oct
(248) |
Nov
(242) |
Dec
(332) |
2008 |
Jan
(312) |
Feb
(359) |
Mar
(454) |
Apr
(287) |
May
(340) |
Jun
(450) |
Jul
(403) |
Aug
(324) |
Sep
(349) |
Oct
(385) |
Nov
(363) |
Dec
(437) |
2009 |
Jan
(500) |
Feb
(301) |
Mar
(409) |
Apr
(486) |
May
(545) |
Jun
(391) |
Jul
(518) |
Aug
(497) |
Sep
(492) |
Oct
(429) |
Nov
(357) |
Dec
(310) |
2010 |
Jan
(371) |
Feb
(657) |
Mar
(519) |
Apr
(432) |
May
(312) |
Jun
(416) |
Jul
(477) |
Aug
(386) |
Sep
(419) |
Oct
(435) |
Nov
(320) |
Dec
(202) |
2011 |
Jan
(321) |
Feb
(413) |
Mar
(299) |
Apr
(215) |
May
(284) |
Jun
(203) |
Jul
(207) |
Aug
(314) |
Sep
(321) |
Oct
(259) |
Nov
(347) |
Dec
(209) |
2012 |
Jan
(322) |
Feb
(414) |
Mar
(377) |
Apr
(179) |
May
(173) |
Jun
(234) |
Jul
(295) |
Aug
(239) |
Sep
(276) |
Oct
(355) |
Nov
(144) |
Dec
(108) |
2013 |
Jan
(170) |
Feb
(89) |
Mar
(204) |
Apr
(133) |
May
(142) |
Jun
(89) |
Jul
(160) |
Aug
(180) |
Sep
(69) |
Oct
(136) |
Nov
(83) |
Dec
(32) |
2014 |
Jan
(71) |
Feb
(90) |
Mar
(161) |
Apr
(117) |
May
(78) |
Jun
(94) |
Jul
(60) |
Aug
(83) |
Sep
(102) |
Oct
(132) |
Nov
(154) |
Dec
(96) |
2015 |
Jan
(45) |
Feb
(138) |
Mar
(176) |
Apr
(132) |
May
(119) |
Jun
(124) |
Jul
(77) |
Aug
(31) |
Sep
(34) |
Oct
(22) |
Nov
(23) |
Dec
(9) |
2016 |
Jan
(26) |
Feb
(17) |
Mar
(10) |
Apr
(8) |
May
(4) |
Jun
(8) |
Jul
(6) |
Aug
(5) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
2017 |
Jan
(5) |
Feb
(7) |
Mar
(1) |
Apr
(5) |
May
|
Jun
(3) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
1
|
2
(9) |
3
(4) |
4
(3) |
5
(10) |
6
(2) |
7
|
8
(5) |
9
(3) |
10
(8) |
11
(18) |
12
(4) |
13
|
14
|
15
(1) |
16
(2) |
17
(11) |
18
(5) |
19
(2) |
20
|
21
|
22
(3) |
23
(1) |
24
(2) |
25
|
26
|
27
|
28
|
29
|
30
|
31
(3) |
|
|
|
Dear matplotlib users, I would like to know if there is in matplotlib the following Matlab function: *p=patch(x(TRI'),y(TRI'),u(TRI'),u(TRI'));* *set(p,'FaceColor','interp','EdgeColor','black');* where TRI are the coordinate of many non regular rectangles. I would like to do that because I have a not-structured grid whose elements are irregular rectangles. I would like to plot a 3D surface of the values on each points of the grid. Thanks in advance to everyone
Hi Jody, what exactly du you mean - the plot windows size? I tried this: fig = plt.figure(figsize=(8.4,5.76)) But still the same problem. Regards -- View this message in context: http://matplotlib.1069221.n5.nabble.com/Pyplot-contour-plot-clabel-padding-tp44554p44557.html Sent from the matplotlib - users mailing list archive at Nabble.com.
On 2014年12月04日 15:40, Joe Kington wrote: > Nbagg is non-interactive, similar to Agg. No events other than draw events > are supported, as far as I know. If that's the case, the release notes should probably make that clear. Right now at http://matplotlib.org/users/whats_new.html#the-nbagg-backend it says: "Phil Elson added a new backend, named "nbagg", which enables interactive figures in a live IPython notebook session." The word "interactive" certainly could lead people to believe that the backend is, in fact, interactive. -- Brendan Barnwell "Do not follow where the path may lead. Go, instead, where there is no path, and leave a trail." --author unknown
Hi Your code wans't included, but try setting your x and y limits *before* the call to clabel. I think that the problem is that clabel makes a space in the contours according to how large your font is, but if you then resize the plot (zoom in) then the blank space is too large for the labels. Cheers, Jody > On Dec 4, 2014, at 17:47 PM, Sappy85 <rob...@gm...> wrote: > > I have trouble with matplotlib / pyplot / basemap. I plot contour lines (air > pressure) on a map. I use clabel to show the value of the contour lines. But > the problem: the padding between the value and the contour line is too much. > I have found the parameter "inline_spacing", which i have set to zero. But > there is still to much free space. Any ideas? > > <http://matplotlib.1069221.n5.nabble.com/file/n44554/mslp.png> > > My code is as follows: > > > > > Thanks a lot. > > > > -- > View this message in context: http://matplotlib.1069221.n5.nabble.com/Pyplot-contour-plot-clabel-padding-tp44554.html > Sent from the matplotlib - users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
I have trouble with matplotlib / pyplot / basemap. I plot contour lines (air pressure) on a map. I use clabel to show the value of the contour lines. But the problem: the padding between the value and the contour line is too much. I have found the parameter "inline_spacing", which i have set to zero. But there is still to much free space. Any ideas? <http://matplotlib.1069221.n5.nabble.com/file/n44554/mslp.png> My code is as follows: Thanks a lot. -- View this message in context: http://matplotlib.1069221.n5.nabble.com/Pyplot-contour-plot-clabel-padding-tp44554.html Sent from the matplotlib - users mailing list archive at Nabble.com.
Thanks for the response Joe. I guess keyboard events are just not implemented yet. Mouse events (at least button_press_event) do seem to work. -- View this message in context: http://matplotlib.1069221.n5.nabble.com/Key-events-using-nbagg-backend-tp44551p44553.html Sent from the matplotlib - users mailing list archive at Nabble.com.
Nbagg is non-interactive, similar to Agg. No events other than draw events are supported, as far as I know. I think there are long term plans to change that (eg, webagg and mplh5canvas), but it's a fairly tricky problem. How that helps clarify why things aren't working, anyway. -Joe On Dec 4, 2014 11:04 AM, "reem17" <elwin@u.northwestern.edu> wrote: > I'm using matplotlib version 1.4.2 on linux and am having trouble getting > key > event > callbacks when using the nbagg backend in an ipython notebook (i've tried > in > firefox and chromium). > The key press events seem to not be processed (no matter what key I try to > press). This code does work with the qt backend. > > %matplotlib nbagg > import matplotlib.pyplot as plt > f=plt.figure() > plt.plot([1,2,3,4]) > def handler(event): > plt.plot([4,3,2,1]) > f.canvas.mpl_connect('key_press_event',handler); > > > Thanks for any help. > > > > -- > View this message in context: > http://matplotlib.1069221.n5.nabble.com/Key-events-using-nbagg-backend-tp44551.html > Sent from the matplotlib - users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
I'm using matplotlib version 1.4.2 on linux and am having trouble getting key event callbacks when using the nbagg backend in an ipython notebook (i've tried in firefox and chromium). The key press events seem to not be processed (no matter what key I try to press). This code does work with the qt backend. %matplotlib nbagg import matplotlib.pyplot as plt f=plt.figure() plt.plot([1,2,3,4]) def handler(event): plt.plot([4,3,2,1]) f.canvas.mpl_connect('key_press_event',handler); Thanks for any help. -- View this message in context: http://matplotlib.1069221.n5.nabble.com/Key-events-using-nbagg-backend-tp44551.html Sent from the matplotlib - users mailing list archive at Nabble.com.
Hello, try doing: import matplotlib.pyplot as plt import random rolls = list() for i in range(1000): rolls.append(random.randint(1,6)) plt.hist(rolls, bins=6) plt.show() Reason why your histogram is weird is because you only can have 6 bins in your example. But the default bin number for hist function is 10. The borders of bins are therefore set at half intervals. When you roll 1, bin 0 to 0.6 gets incremented, when you roll 2.2 bin 2-2.6 gets incremented, but the bin 0.6-2.2 never does. Follow me? (also I just made those numbers up...) Point is only the bottom bins of your roll values are filled which leaves a gap in your image. Dino 2014年12月03日 21:51 GMT+01:00 Amit Saha <ami...@gm...>: > On Thu, Dec 4, 2014 at 6:45 AM, Brendan Barnwell <bre...@br...> wrote: >> On 2014年12月03日 12:39, Amit Saha wrote: >>> >>> Hi, >>> >>> Please find attached a simple histogram created using the hist() >>> function. Any idea why the last two bars are squeezed into each other? >>> Is there a simple way to fix this while plotting? >> >> >> It looks like the bins are set up so that there are empty bins >> between each of the other bars. How are you setting the bins? You could >> try adjusting the bin boundaries. > > Thanks for the reply. This is my program: > > import matplotlib.pyplot as plt > import random > > def roll(): > return random.randint(1, 6) > > if __name__ == '__main__': > rolls = [] > for i in range(1000): > rolls.append(roll()) > # create a histogram plot > plt.hist(rolls) > plt.show() > > > So, just using the hist() function for now. > > Thanks, Amit. > >> >> -- >> Brendan Barnwell >> "Do not follow where the path may lead. Go, instead, where there is no >> path, and leave a trail." >> --author unknown > > > > -- > http://echorand.me > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
On Thu, Dec 4, 2014 at 6:45 AM, Brendan Barnwell <bre...@br...> wrote: > On 2014年12月03日 12:39, Amit Saha wrote: >> >> Hi, >> >> Please find attached a simple histogram created using the hist() >> function. Any idea why the last two bars are squeezed into each other? >> Is there a simple way to fix this while plotting? > > > It looks like the bins are set up so that there are empty bins > between each of the other bars. How are you setting the bins? You could > try adjusting the bin boundaries. Thanks for the reply. This is my program: import matplotlib.pyplot as plt import random def roll(): return random.randint(1, 6) if __name__ == '__main__': rolls = [] for i in range(1000): rolls.append(roll()) # create a histogram plot plt.hist(rolls) plt.show() So, just using the hist() function for now. Thanks, Amit. > > -- > Brendan Barnwell > "Do not follow where the path may lead. Go, instead, where there is no > path, and leave a trail." > --author unknown -- http://echorand.me
On 2014年12月03日 12:39, Amit Saha wrote: > Hi, > > Please find attached a simple histogram created using the hist() > function. Any idea why the last two bars are squeezed into each other? > Is there a simple way to fix this while plotting? It looks like the bins are set up so that there are empty bins between each of the other bars. How are you setting the bins? You could try adjusting the bin boundaries. -- Brendan Barnwell "Do not follow where the path may lead. Go, instead, where there is no path, and leave a trail." --author unknown
Hi, Please find attached a simple histogram created using the hist() function. Any idea why the last two bars are squeezed into each other? Is there a simple way to fix this while plotting? Thanks, Amit.
Ok, then this looks like a legitimate bug in span_where(). It probably isn't applying units, somehow. This isn't really a problem with pandas, it is an issue where we aren't being consistent in applying units for all plotting functions. Could you file a bug report, please? Cheers! Ben Root On Tue, Dec 2, 2014 at 11:15 AM, Fabien <fab...@gm...> wrote: > On 02.12.2014 16:59, Benjamin Root wrote: > > Does the workaround posted here fix things for you? > > > https://github.com/matplotlib/matplotlib/issues/3727#issuecomment-60899590 > > sorry it doesn't. > > I updated the test case below (including the workaround, I hope I got it > right). The strange thing is that fill_between() works fine, but > pan_where() is the problem. > > Thanks! > > #------------------------------------------- > import pandas as pd > import numpy as np > from datetime import datetime as dt > import matplotlib.pyplot as plt > import matplotlib.collections as collections > span_where = collections.BrokenBarHCollection.span_where > import matplotlib.units as units > > units.registry[np.datetime64] = pd.tseries.converter.DatetimeConverter() > > # init the dataframe > time = pd.date_range(pd.datetime(1950,1,1), periods=5, freq='MS') > df = pd.DataFrame(np.arange(5), index=time, columns=['data']) > df['cond'] = df['data'] >= 3 > > # This is working (but its not what I want) > x = np.arange(5) > fig = plt.figure() > ax = fig.add_subplot(111) > plt.plot(x, df['data'], 'k') > c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') > ax.add_collection(c) > plt.show() > > #This is not > x = df.index.values > fig = plt.figure() > ax = fig.add_subplot(111) > plt.plot(x, df['data'], 'k') > c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') > ax.add_collection(c) > plt.show() > > #This is producing an error > x = df.index > fig = plt.figure() > ax = fig.add_subplot(111) > plt.plot(x, df['data'], 'k') > c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') > ax.add_collection(c) > plt.show() > #------------------------------------------- > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
OK I just filled a bug report: https://github.com/matplotlib/matplotlib/issues/3872 my first bug report ever! On 02.12.2014 17:15, Fabien wrote: > On 02.12.2014 16:59, Benjamin Root wrote: >> Does the workaround posted here fix things for you? >> https://github.com/matplotlib/matplotlib/issues/3727#issuecomment-60899590 > > sorry it doesn't. > > I updated the test case below (including the workaround, I hope I got it > right). The strange thing is that fill_between() works fine, but > pan_where() is the problem. > > Thanks! > > #------------------------------------------- > import pandas as pd > import numpy as np > from datetime import datetime as dt > import matplotlib.pyplot as plt > import matplotlib.collections as collections > span_where = collections.BrokenBarHCollection.span_where > import matplotlib.units as units > > units.registry[np.datetime64] = pd.tseries.converter.DatetimeConverter() > > # init the dataframe > time = pd.date_range(pd.datetime(1950,1,1), periods=5, freq='MS') > df = pd.DataFrame(np.arange(5), index=time, columns=['data']) > df['cond'] = df['data'] >= 3 > > # This is working (but its not what I want) > x = np.arange(5) > fig = plt.figure() > ax = fig.add_subplot(111) > plt.plot(x, df['data'], 'k') > c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') > ax.add_collection(c) > plt.show() > > #This is not > x = df.index.values > fig = plt.figure() > ax = fig.add_subplot(111) > plt.plot(x, df['data'], 'k') > c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') > ax.add_collection(c) > plt.show() > > #This is producing an error > x = df.index > fig = plt.figure() > ax = fig.add_subplot(111) > plt.plot(x, df['data'], 'k') > c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') > ax.add_collection(c) > plt.show() > #-------------------------------------------
On 02.12.2014 16:59, Benjamin Root wrote: > Does the workaround posted here fix things for you? > https://github.com/matplotlib/matplotlib/issues/3727#issuecomment-60899590 sorry it doesn't. I updated the test case below (including the workaround, I hope I got it right). The strange thing is that fill_between() works fine, but pan_where() is the problem. Thanks! #------------------------------------------- import pandas as pd import numpy as np from datetime import datetime as dt import matplotlib.pyplot as plt import matplotlib.collections as collections span_where = collections.BrokenBarHCollection.span_where import matplotlib.units as units units.registry[np.datetime64] = pd.tseries.converter.DatetimeConverter() # init the dataframe time = pd.date_range(pd.datetime(1950,1,1), periods=5, freq='MS') df = pd.DataFrame(np.arange(5), index=time, columns=['data']) df['cond'] = df['data'] >= 3 # This is working (but its not what I want) x = np.arange(5) fig = plt.figure() ax = fig.add_subplot(111) plt.plot(x, df['data'], 'k') c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') ax.add_collection(c) plt.show() #This is not x = df.index.values fig = plt.figure() ax = fig.add_subplot(111) plt.plot(x, df['data'], 'k') c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') ax.add_collection(c) plt.show() #This is producing an error x = df.index fig = plt.figure() ax = fig.add_subplot(111) plt.plot(x, df['data'], 'k') c = span_where(x, ymin=0, ymax=4, where=df['cond'], color='green') ax.add_collection(c) plt.show() #-------------------------------------------
Does the workaround posted here fix things for you? https://github.com/matplotlib/matplotlib/issues/3727#issuecomment-60899590 On Tue, Dec 2, 2014 at 10:43 AM, Fabien <fab...@gm...> wrote: > On 02.12.2014 16:34, Benjamin Root wrote: > > Please provide the full traceback > > sure, I pasted the traceback below. Here are the pandas infos: > > In [17]: df.info() > <class 'pandas.core.frame.DataFrame'> > DatetimeIndex: 5 entries, 1950年01月01日 00:00:00 to 1950年05月01日 00:00:00 > Freq: MS > Data columns (total 2 columns): > data 5 non-null int64 > cond 5 non-null bool > dtypes: bool(1), int64(1) > memory usage: 85.0 bytes > > In [18]: df.index > Out[18]: > <class 'pandas.tseries.index.DatetimeIndex'> > [1950年01月01日, ..., 1950年05月01日] > Length: 5, Freq: MS, Timezone: None > > > In [19]: df.index.values > Out[19]: > array(['1950-01-01T00:00:00.000000000Z', '1950-02-01T00:00:00.000000000Z', > '1950-03-01T00:00:00.000000000Z', '1950-04-01T00:00:00.000000000Z', > '1950-05-01T00:00:00.000000000Z'], dtype='datetime64[ns]') > > > Traceback: > > In [16]: c = span_where(df.index, ymin=0, ymax=4, where=df['cond'], > color='green') > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > <ipython-input-16-d033044a6db2> in <module>() > ----> 1 c = span_where(df.index, ymin=0, ymax=4, where=df['cond'], > color='green') > > > /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py > in span_where(x, ymin, ymax, where, **kwargs) > 871 > 872 collection = BrokenBarHCollection( > --> 873 xranges, [ymin, ymax - ymin], **kwargs) > 874 return collection > 875 > > > /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py > in __init__(self, xranges, yrange, **kwargs) > 851 (xmin + xwidth, ymin), > 852 (xmin, ymin)] for xmin, xwidth in xranges] > --> 853 PolyCollection.__init__(self, verts, **kwargs) > 854 > 855 @staticmethod > > > /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py > in __init__(self, verts, sizes, closed, **kwargs) > 799 Collection.__init__(self, **kwargs) > 800 self.set_sizes(sizes) > --> 801 self.set_verts(verts, closed) > 802 > 803 def set_verts(self, verts, closed=True): > > > /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py > in set_verts(self, verts, closed) > 819 codes[0] = mpath.Path.MOVETO > 820 codes[-1] = mpath.Path.CLOSEPOLY > --> 821 self._paths.append(mpath.Path(xy, codes)) > 822 else: > 823 self._paths.append(mpath.Path(xy)) > > > /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/path.py > in __init__(self, vertices, codes, _interpolation_steps, closed, readonly) > 135 vertices = vertices.astype(np.float_).filled(np.nan) > 136 else: > --> 137 vertices = np.asarray(vertices, np.float_) > 138 > 139 if codes is not None: > > > /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/numpy/core/numeric.py > in asarray(a, dtype, order) > 460 > 461 """ > --> 462 return array(a, dtype, copy=False, order=order) > 463 > 464 def asanyarray(a, dtype=None, order=None): > > TypeError: float() argument must be a string or a number > > > > > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
On 02.12.2014 16:34, Benjamin Root wrote: > Please provide the full traceback sure, I pasted the traceback below. Here are the pandas infos: In [17]: df.info() <class 'pandas.core.frame.DataFrame'> DatetimeIndex: 5 entries, 1950年01月01日 00:00:00 to 1950年05月01日 00:00:00 Freq: MS Data columns (total 2 columns): data 5 non-null int64 cond 5 non-null bool dtypes: bool(1), int64(1) memory usage: 85.0 bytes In [18]: df.index Out[18]: <class 'pandas.tseries.index.DatetimeIndex'> [1950年01月01日, ..., 1950年05月01日] Length: 5, Freq: MS, Timezone: None In [19]: df.index.values Out[19]: array(['1950-01-01T00:00:00.000000000Z', '1950-02-01T00:00:00.000000000Z', '1950-03-01T00:00:00.000000000Z', '1950-04-01T00:00:00.000000000Z', '1950-05-01T00:00:00.000000000Z'], dtype='datetime64[ns]') Traceback: In [16]: c = span_where(df.index, ymin=0, ymax=4, where=df['cond'], color='green') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-16-d033044a6db2> in <module>() ----> 1 c = span_where(df.index, ymin=0, ymax=4, where=df['cond'], color='green') /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py in span_where(x, ymin, ymax, where, **kwargs) 871 872 collection = BrokenBarHCollection( --> 873 xranges, [ymin, ymax - ymin], **kwargs) 874 return collection 875 /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py in __init__(self, xranges, yrange, **kwargs) 851 (xmin + xwidth, ymin), 852 (xmin, ymin)] for xmin, xwidth in xranges] --> 853 PolyCollection.__init__(self, verts, **kwargs) 854 855 @staticmethod /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py in __init__(self, verts, sizes, closed, **kwargs) 799 Collection.__init__(self, **kwargs) 800 self.set_sizes(sizes) --> 801 self.set_verts(verts, closed) 802 803 def set_verts(self, verts, closed=True): /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/collections.py in set_verts(self, verts, closed) 819 codes[0] = mpath.Path.MOVETO 820 codes[-1] = mpath.Path.CLOSEPOLY --> 821 self._paths.append(mpath.Path(xy, codes)) 822 else: 823 self._paths.append(mpath.Path(xy)) /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/matplotlib/path.py in __init__(self, vertices, codes, _interpolation_steps, closed, readonly) 135 vertices = vertices.astype(np.float_).filled(np.nan) 136 else: --> 137 vertices = np.asarray(vertices, np.float_) 138 139 if codes is not None: /home/mowglie/.pyvirtualenvs/py3.3/lib/python3.3/site-packages/numpy/core/numeric.py in asarray(a, dtype, order) 460 461 """ --> 462 return array(a, dtype, copy=False, order=order) 463 464 def asanyarray(a, dtype=None, order=None): TypeError: float() argument must be a string or a number
You didn't label any of the series that you put on the graph, so the legend has no idea what to call anything thing. Like the warning (not error) says, use the label parameter on your calls to plot, e.g., ax1.plot(..., label='Concentration') or whatever. Note though, that you're mixing up interfaces in your script as written. MPL's many interfaces are kind of mess, but you seem reasonably familiar with the OO interface, so stick to that. What I mean is once you start messing with ax1, and ax2 directly, don't revert back to call to plt. As written, you'll only get a legend on ax2, but you haven't plotted anything there. If you want a legend on ax1, use ax1.legend. -p On Tue, Dec 2, 2014 at 1:59 AM, Tommy Carstensen <tom...@gm... > wrote: > In gnuplot it is quite easy to create two axes, but I can't figure out > how to do it in matplotlib. I'm trying this: > > import matplotlib > matplotlib.use('Agg') > import matplotlib.pyplot as plt > > for key1 in keys1: > ax1.plot(x, y, style, label=label, color=color, linewidth=3) > ax1.set_xlabel(xlabel) > ax1.set_ylabel(ylabel1) > ax2.set_ylabel(ylabel2) > plt.legend(loc='lower right', shadow=True) > plt.suptitle(title, fontsize=14, fontweight='bold') > axes = plt.gca() > axes.set_ylim([0,1]) > plt.grid(b=True, which='major', color='k', linestyle='--') > plt.savefig('{}.png'.format(key1), dpi=600) > plt.close() > plt.clf() > > But I get this error: > lib/python3.3/site-packages/matplotlib/axes.py:4749: UserWarning: No > labeled objects found. Use label='...' kwarg on individual plots. > warnings.warn("No labeled objects found. " > > What am I doing wrong? Thanks. > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
Please provide the full traceback. Could you also show df.info()? In any case, I suspect that the problem is that pandas recently started using datetime64 for their timeseries, and matplotlib hasn't implemented the unit converter for it. There was a post recently showing how to add pandas's converter to matplotlib's unit framework, but I can't find it right now... Cheers! Ben Root On Tue, Dec 2, 2014 at 9:24 AM, Fabien <fab...@gm...> wrote: > Folks, > > I'm trying to use BrokenBarHCollection with pandas timeseries object. > > Here's a minimal example: (python 3.3, pandas 0.15.1, matplotlib 1.4.2) > > #----------------------------------------------------- > import pandas as pd > import numpy as np > from datetime import datetime as dt > import matplotlib.pyplot as plt > import matplotlib.collections as collections > span_where = collections.BrokenBarHCollection.span_where > > # init the dataframe > time = pd.date_range(pd.datetime(1950,1,1), periods=5, freq='MS') > df = pd.DataFrame(np.arange(5), index=time, columns=['data']) > df['cond'] = df['data'] == 3 > > # Make the plot > fig = plt.figure() > ax = fig.add_subplot(111) > df['data'].plot(ax=ax, c='black') > c = span_where(df.index, ymin=0, ymax=4, where=df['cond'], > facecolor='green', alpha=0.5) > #----------------------------------------------------- > > I get the error: > "TypeError: float() argument must be a string or a number" > > Basically, span_where() is not happy with my x values which are a panda > timeserie. I tried several stuffs (df.index.to_*) but there is something > I still don't get in the internal representation of dates in matplolib. > > Any hint? Thanks a lot! > > Fabien > > > > > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > > http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
Folks, I'm trying to use BrokenBarHCollection with pandas timeseries object. Here's a minimal example: (python 3.3, pandas 0.15.1, matplotlib 1.4.2) #----------------------------------------------------- import pandas as pd import numpy as np from datetime import datetime as dt import matplotlib.pyplot as plt import matplotlib.collections as collections span_where = collections.BrokenBarHCollection.span_where # init the dataframe time = pd.date_range(pd.datetime(1950,1,1), periods=5, freq='MS') df = pd.DataFrame(np.arange(5), index=time, columns=['data']) df['cond'] = df['data'] == 3 # Make the plot fig = plt.figure() ax = fig.add_subplot(111) df['data'].plot(ax=ax, c='black') c = span_where(df.index, ymin=0, ymax=4, where=df['cond'], facecolor='green', alpha=0.5) #----------------------------------------------------- I get the error: "TypeError: float() argument must be a string or a number" Basically, span_where() is not happy with my x values which are a panda timeserie. I tried several stuffs (df.index.to_*) but there is something I still don't get in the internal representation of dates in matplolib. Any hint? Thanks a lot! Fabien
In gnuplot it is quite easy to create two axes, but I can't figure out how to do it in matplotlib. I'm trying this: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt for key1 in keys1: ax1.plot(x, y, style, label=label, color=color, linewidth=3) ax1.set_xlabel(xlabel) ax1.set_ylabel(ylabel1) ax2.set_ylabel(ylabel2) plt.legend(loc='lower right', shadow=True) plt.suptitle(title, fontsize=14, fontweight='bold') axes = plt.gca() axes.set_ylim([0,1]) plt.grid(b=True, which='major', color='k', linestyle='--') plt.savefig('{}.png'.format(key1), dpi=600) plt.close() plt.clf() But I get this error: lib/python3.3/site-packages/matplotlib/axes.py:4749: UserWarning: No labeled objects found. Use label='...' kwarg on individual plots. warnings.warn("No labeled objects found. " What am I doing wrong? Thanks.