SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

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)



Showing 9 results of 9

From: Benjamin R. <ben...@ou...> - 2014年12月02日 19:08:15
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
>
From: Fabien <fab...@gm...> - 2014年12月02日 18:21:39
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()
> #-------------------------------------------
From: Fabien <fab...@gm...> - 2014年12月02日 16:15:51
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()
#-------------------------------------------
From: Benjamin R. <ben...@ou...> - 2014年12月02日 16:00:21
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
>
From: Fabien <fab...@gm...> - 2014年12月02日 15:43:48
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
From: Paul H. <pmh...@gm...> - 2014年12月02日 15:36:28
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
>
From: Benjamin R. <ben...@ou...> - 2014年12月02日 15:34:33
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
>
From: Fabien <fab...@gm...> - 2014年12月02日 14:30:20
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
From: Tommy C. <tom...@gm...> - 2014年12月02日 10:00:12
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.

Showing 9 results of 9

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /