@@ -885,28 +885,16 @@ def _iter_data(self, data=None, keep_index=False, fillna=None):
885
885
if fillna is not None :
886
886
data = data .fillna (fillna )
887
887
888
- from pandas .core .frame import DataFrame
889
- if isinstance (data , (Series , np .ndarray , Index )):
890
- label = self .label if self .label is not None else data .name
888
+ if self .sort_columns :
889
+ columns = com ._try_sort (data .columns )
890
+ else :
891
+ columns = data .columns
892
+
893
+ for col in columns :
891
894
if keep_index is True :
892
- yield label , data
895
+ yield col , data [ col ]
893
896
else :
894
- yield label , np .asarray (data )
895
- elif isinstance (data , DataFrame ):
896
- if self .sort_columns :
897
- columns = com ._try_sort (data .columns )
898
- else :
899
- columns = data .columns
900
-
901
- for col in columns :
902
- # # is this right?
903
- # empty = df[col].count() == 0
904
- # values = df[col].values if not empty else np.zeros(len(df))
905
-
906
- if keep_index is True :
907
- yield col , data [col ]
908
- else :
909
- yield col , data [col ].values
897
+ yield col , data [col ].values
910
898
911
899
@property
912
900
def nseries (self ):
@@ -1006,7 +994,15 @@ def result(self):
1006
994
return self .axes [0 ]
1007
995
1008
996
def _compute_plot_data (self ):
1009
- numeric_data = self .data .convert_objects ()._get_numeric_data ()
997
+ data = self .data
998
+
999
+ if isinstance (data , Series ):
1000
+ label = self .kwds .pop ('label' , None )
1001
+ if label is None and data .name is None :
1002
+ label = 'None'
1003
+ data = data .to_frame (name = label )
1004
+
1005
+ numeric_data = data .convert_objects ()._get_numeric_data ()
1010
1006
1011
1007
try :
1012
1008
is_empty = numeric_data .empty
@@ -1027,12 +1023,7 @@ def _add_table(self):
1027
1023
if self .table is False :
1028
1024
return
1029
1025
elif self .table is True :
1030
- from pandas .core .frame import DataFrame
1031
- if isinstance (self .data , Series ):
1032
- data = DataFrame (self .data , columns = [self .data .name ])
1033
- elif isinstance (self .data , DataFrame ):
1034
- data = self .data
1035
- data = data .transpose ()
1026
+ data = self .data .transpose ()
1036
1027
else :
1037
1028
data = self .table
1038
1029
ax = self ._get_ax (0 )
@@ -1099,18 +1090,15 @@ def _apply_axis_properties(self, axis, rot=None, fontsize=None):
1099
1090
1100
1091
@property
1101
1092
def legend_title (self ):
1102
- if hasattr (self .data , 'columns' ):
1103
- if not isinstance (self .data .columns , MultiIndex ):
1104
- name = self .data .columns .name
1105
- if name is not None :
1106
- name = com .pprint_thing (name )
1107
- return name
1108
- else :
1109
- stringified = map (com .pprint_thing ,
1110
- self .data .columns .names )
1111
- return ',' .join (stringified )
1093
+ if not isinstance (self .data .columns , MultiIndex ):
1094
+ name = self .data .columns .name
1095
+ if name is not None :
1096
+ name = com .pprint_thing (name )
1097
+ return name
1112
1098
else :
1113
- return None
1099
+ stringified = map (com .pprint_thing ,
1100
+ self .data .columns .names )
1101
+ return ',' .join (stringified )
1114
1102
1115
1103
def _add_legend_handle (self , handle , label , index = None ):
1116
1104
if not label is None :
@@ -1256,12 +1244,10 @@ def _get_ax(self, i):
1256
1244
return ax
1257
1245
1258
1246
def on_right (self , i ):
1259
- from pandas .core .frame import DataFrame
1260
1247
if isinstance (self .secondary_y , bool ):
1261
1248
return self .secondary_y
1262
1249
1263
- if (isinstance (self .data , DataFrame ) and
1264
- isinstance (self .secondary_y , (tuple , list , np .ndarray , Index ))):
1250
+ if isinstance (self .secondary_y , (tuple , list , np .ndarray , Index )):
1265
1251
return self .data .columns [i ] in self .secondary_y
1266
1252
1267
1253
def _get_style (self , i , col_name ):
@@ -1553,16 +1539,14 @@ def __init__(self, data, **kwargs):
1553
1539
self .x_compat = bool (self .kwds .pop ('x_compat' ))
1554
1540
1555
1541
def _index_freq (self ):
1556
- from pandas .core .frame import DataFrame
1557
- if isinstance (self .data , (Series , DataFrame )):
1558
- freq = getattr (self .data .index , 'freq' , None )
1559
- if freq is None :
1560
- freq = getattr (self .data .index , 'inferred_freq' , None )
1561
- if freq == 'B' :
1562
- weekdays = np .unique (self .data .index .dayofweek )
1563
- if (5 in weekdays ) or (6 in weekdays ):
1564
- freq = None
1565
- return freq
1542
+ freq = getattr (self .data .index , 'freq' , None )
1543
+ if freq is None :
1544
+ freq = getattr (self .data .index , 'inferred_freq' , None )
1545
+ if freq == 'B' :
1546
+ weekdays = np .unique (self .data .index .dayofweek )
1547
+ if (5 in weekdays ) or (6 in weekdays ):
1548
+ freq = None
1549
+ return freq
1566
1550
1567
1551
def _is_dynamic_freq (self , freq ):
1568
1552
if isinstance (freq , DateOffset ):
@@ -1574,9 +1558,7 @@ def _is_dynamic_freq(self, freq):
1574
1558
1575
1559
def _no_base (self , freq ):
1576
1560
# hack this for 0.10.1, creating more technical debt...sigh
1577
- from pandas .core .frame import DataFrame
1578
- if (isinstance (self .data , (Series , DataFrame ))
1579
- and isinstance (self .data .index , DatetimeIndex )):
1561
+ if isinstance (self .data .index , DatetimeIndex ):
1580
1562
base = frequencies .get_freq (freq )
1581
1563
x = self .data .index
1582
1564
if (base <= frequencies .FreqGroup .FR_DAY ):
@@ -1686,28 +1668,24 @@ def _update_prior(self, y):
1686
1668
def _maybe_convert_index (self , data ):
1687
1669
# tsplot converts automatically, but don't want to convert index
1688
1670
# over and over for DataFrames
1689
- from pandas .core .frame import DataFrame
1690
- if (isinstance (data .index , DatetimeIndex ) and
1691
- isinstance (data , DataFrame )):
1671
+ if isinstance (data .index , DatetimeIndex ):
1692
1672
freq = getattr (data .index , 'freq' , None )
1693
1673
1694
1674
if freq is None :
1695
1675
freq = getattr (data .index , 'inferred_freq' , None )
1696
1676
if isinstance (freq , DateOffset ):
1697
1677
freq = freq .rule_code
1698
- freq = frequencies .get_base_alias (freq )
1699
- freq = frequencies .get_period_alias (freq )
1700
1678
1701
1679
if freq is None :
1702
1680
ax = self ._get_ax (0 )
1703
1681
freq = getattr (ax , 'freq' , None )
1704
1682
1683
+ freq = frequencies .get_base_alias (freq )
1684
+ freq = frequencies .get_period_alias (freq )
1685
+
1705
1686
if freq is None :
1706
1687
raise ValueError ('Could not get frequency alias for plotting' )
1707
-
1708
- data = DataFrame (data .values ,
1709
- index = data .index .to_period (freq = freq ),
1710
- columns = data .columns )
1688
+ data .index = data .index .to_period (freq = freq )
1711
1689
return data
1712
1690
1713
1691
def _post_plot_logic (self ):
@@ -2521,9 +2499,7 @@ def plot_series(data, kind='line', ax=None, # Series unique
2521
2499
if ax is None and len (plt .get_fignums ()) > 0 :
2522
2500
ax = _gca ()
2523
2501
ax = getattr (ax , 'left_ax' , ax )
2524
- # is there harm in this?
2525
- if label is None :
2526
- label = data .name
2502
+
2527
2503
return _plot (data , kind = kind , ax = ax ,
2528
2504
figsize = figsize , use_index = use_index , title = title ,
2529
2505
grid = grid , legend = legend ,
0 commit comments