@@ -5091,11 +5091,27 @@ def test_broken_barh_empty():
5091
5091
ax .broken_barh ([], (.1 , .5 ))
5092
5092
5093
5093
5094
- def test_pandas_pcolormesh ():
5095
- pd = pytest .importorskip ('pandas' )
5096
- from pandas .tseries import converter
5097
- converter .register ()
5094
+ def _pandas_wrapper (func ):
5095
+ '''Decorator to centralize pandas setup / conditional import'''
5096
+ import functools
5097
+
5098
+ @functools .wraps (func )
5099
+ def wrapped_for_pandas (* args , ** kwargs ):
5100
+ pytest .importorskip ('pandas' )
5101
+ try :
5102
+ from pandas .plotting import (
5103
+ register_matplotlib_converters as register )
5104
+ except ImportError :
5105
+ from pandas .tseries .converter import register
5106
+ register ()
5107
+ return func (* args , ** kwargs )
5108
+
5109
+ return wrapped_for_pandas
5098
5110
5111
+
5112
+ @_pandas_wrapper
5113
+ def test_pandas_pcolormesh ():
5114
+ import pandas as pd
5099
5115
time = pd .date_range ('2000-01-01' , periods = 10 )
5100
5116
depth = np .arange (20 )
5101
5117
data = np .random .rand (20 , 10 )
@@ -5104,10 +5120,9 @@ def test_pandas_pcolormesh():
5104
5120
ax .pcolormesh (time , depth , data )
5105
5121
5106
5122
5123
+ @_pandas_wrapper
5107
5124
def test_pandas_indexing_dates ():
5108
- pd = pytest .importorskip ('pandas' )
5109
- from pandas .tseries import converter
5110
- converter .register ()
5125
+ import pandas as pd
5111
5126
5112
5127
dates = np .arange ('2005-02' , '2005-03' , dtype = 'datetime64[D]' )
5113
5128
values = np .sin (np .array (range (len (dates ))))
@@ -5119,10 +5134,9 @@ def test_pandas_indexing_dates():
5119
5134
ax .plot ('dates' , 'values' , data = without_zero_index )
5120
5135
5121
5136
5137
+ @_pandas_wrapper
5122
5138
def test_pandas_errorbar_indexing ():
5123
- pd = pytest .importorskip ('pandas' )
5124
- from pandas .tseries import converter
5125
- converter .register ()
5139
+ import pandas as pd
5126
5140
5127
5141
df = pd .DataFrame (np .random .uniform (size = (5 , 4 )),
5128
5142
columns = ['x' , 'y' , 'xe' , 'ye' ],
@@ -5131,30 +5145,28 @@ def test_pandas_errorbar_indexing():
5131
5145
ax .errorbar ('x' , 'y' , xerr = 'xe' , yerr = 'ye' , data = df )
5132
5146
5133
5147
5148
+ @_pandas_wrapper
5134
5149
def test_pandas_indexing_hist ():
5135
- pd = pytest .importorskip ('pandas' )
5136
- from pandas .tseries import converter
5137
- converter .register ()
5150
+ import pandas as pd
5138
5151
5139
5152
ser_1 = pd .Series (data = [1 , 2 , 2 , 3 , 3 , 4 , 4 , 4 , 4 , 5 ])
5140
5153
ser_2 = ser_1 .iloc [1 :]
5141
5154
fig , axes = plt .subplots ()
5142
5155
axes .hist (ser_2 )
5143
5156
5144
5157
5158
+ @_pandas_wrapper
5145
5159
def test_pandas_bar_align_center ():
5146
5160
# Tests fix for issue 8767
5147
- pd = pytest .importorskip ('pandas' )
5148
- from pandas .tseries import converter
5149
- converter .register ()
5161
+ import pandas as pd
5150
5162
5151
5163
df = pd .DataFrame ({'a' : range (2 ), 'b' : range (2 )})
5152
5164
5153
5165
fig , ax = plt .subplots (1 )
5154
5166
5155
- rect = ax .bar (df .loc [df ['a' ] == 1 , 'b' ],
5156
- df .loc [df ['a' ] == 1 , 'b' ],
5157
- align = 'center' )
5167
+ ax .bar (df .loc [df ['a' ] == 1 , 'b' ],
5168
+ df .loc [df ['a' ] == 1 , 'b' ],
5169
+ align = 'center' )
5158
5170
5159
5171
fig .canvas .draw ()
5160
5172
0 commit comments