Skip to content

Commit 59ca005

Browse files
committed
BUG: Fixed plot label shows as None. #8905
1 parent 7bd1b24 commit 59ca005

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

doc/source/whatsnew/v0.15.2.txt

+1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ Bug Fixes
122122
- Bug in ``merge`` where ``how='left'`` and ``sort=False`` would not preserve left frame order (:issue:`7331`)
123123

124124
- Fix negative step support for label-based slices (:issue:`8753`)
125+
- Fixed given label showing as None (:issue:`#8905`)
125126

126127
Old behavior:
127128

pandas/tools/plotting.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1589,7 +1589,9 @@ def _make_plot(self):
15891589
errors = self._get_errorbars(label=label, index=i)
15901590
kwds = dict(kwds, **errors)
15911591

1592-
label = com.pprint_thing(label) # .encode('utf-8')
1592+
if label is not None or self.legend:
1593+
label = com.pprint_thing(label) # .encode('utf-8')
1594+
15931595
kwds['label'] = label
15941596

15951597
newlines = plotf(ax, x, y, style=style, column_num=i, **kwds)
@@ -2283,7 +2285,7 @@ def _plot(data, x=None, y=None, subplots=False,
22832285
if com.is_integer(y) and not data.columns.holds_integer():
22842286
y = data.columns[y]
22852287
label = x if x is not None else data.index.name
2286-
label = kwds.pop('label', label)
2288+
label = kwds.get('label', label)
22872289
series = data[y].copy() # Don't modify
22882290
series.index.name = label
22892291

pandas/tseries/tests/test_plotting.py

+14
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,20 @@ def test_nonnumeric_exclude(self):
8989

9090
self.assertRaises(TypeError, df['A'].plot)
9191

92+
@slow
93+
def test_legend_added(self):
94+
df = DataFrame(np.random.rand(2, 4), columns=['a', 'b', 'c', 'd'])
95+
a_plot = df.plot(kind='scatter', x='a', y='b',
96+
color='DarkBlue', label='Label')
97+
b_plot = df.plot(kind='line', x='a', y='b',
98+
color='DarkBlue', label="foo")
99+
c_plot = df.plot(kind='line', x='a', y='b',
100+
color='DarkBlue', label=None, legend=False)
101+
102+
self.assertEqual(a_plot.legend().texts[0].get_text(), 'Label')
103+
self.assertEqual(b_plot.legend().texts[0].get_text(), 'foo')
104+
self.assertEqual(c_plot.legend(), None)
105+
92106
@slow
93107
def test_tsplot(self):
94108
from pandas.tseries.plotting import tsplot

0 commit comments

Comments
 (0)