Skip to content

Commit

Permalink
BUG: secondary y axis could not be set to log scale (#25545)
Browse files Browse the repository at this point in the history
  • Loading branch information
johan12345 committed Mar 7, 2019
1 parent 3e652ac commit bb53dae
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
2 changes: 1 addition & 1 deletion doc/source/whatsnew/v0.24.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ Bug Fixes

**Visualization**

-
- Bug in :meth:`Series.plot` where a secondary y axis could not be set to log scale (:issue:`25545`)
-
-

Expand Down
5 changes: 4 additions & 1 deletion pandas/plotting/_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,9 @@ def _maybe_right_yaxis(self, ax, axes_num):

if not self._has_plotted_object(orig_ax): # no data on left y
orig_ax.get_yaxis().set_visible(False)

if self.logy or self.loglog:
new_ax.set_yscale('log')
return new_ax

def _setup_subplots(self):
Expand Down Expand Up @@ -613,7 +616,7 @@ def _get_index_name(self):

@classmethod
def _get_ax_layer(cls, ax, primary=True):
"""get left (primary) or right (secondary) axes"""
"""get left (primary) or right () axes"""
if primary:
return getattr(ax, 'left_ax', ax)
else:
Expand Down
12 changes: 12 additions & 0 deletions pandas/tests/plotting/test_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -570,6 +570,18 @@ def test_df_series_secondary_legend(self):
assert ax.get_yaxis().get_visible()
tm.close()

@pytest.mark.slow
def test_secondary_logy(self):
# GH 25545
s1 = Series(np.random.randn(30))
s2 = Series(np.random.randn(30))

ax1 = s1.plot(logy=True)
ax2 = s2.plot(secondary_y=True, logy=True)

assert ax1.get_yscale() == 'log'
assert ax2.get_yscale() == 'log'

@pytest.mark.slow
def test_plot_fails_with_dupe_color_and_style(self):
x = Series(randn(2))
Expand Down

0 comments on commit bb53dae

Please sign in to comment.