|
import pytest |
|
|
|
from pandas import DataFrame |
|
from pandas.tests.plotting.common import ( |
|
_check_plot_works, |
|
_check_ticks_props, |
|
_gen_two_subplots, |
|
) |
|
|
|
plt = pytest.importorskip("matplotlib.pyplot") |
|
|
|
|
|
class TestCommon: |
|
def test__check_ticks_props(self): |
|
|
|
df = DataFrame({"b": [0, 1, 0], "a": [1, 2, 3]}) |
|
ax = _check_plot_works(df.plot, rot=30) |
|
ax.yaxis.set_tick_params(rotation=30) |
|
msg = "expected 0.00000 but got " |
|
with pytest.raises(AssertionError, match=msg): |
|
_check_ticks_props(ax, xrot=0) |
|
with pytest.raises(AssertionError, match=msg): |
|
_check_ticks_props(ax, xlabelsize=0) |
|
with pytest.raises(AssertionError, match=msg): |
|
_check_ticks_props(ax, yrot=0) |
|
with pytest.raises(AssertionError, match=msg): |
|
_check_ticks_props(ax, ylabelsize=0) |
|
|
|
def test__gen_two_subplots_with_ax(self): |
|
fig = plt.gcf() |
|
gen = _gen_two_subplots(f=lambda **kwargs: None, fig=fig, ax="test") |
|
|
|
next(gen) |
|
assert fig.get_axes() == [] |
|
|
|
next(gen) |
|
axes = fig.get_axes() |
|
assert len(axes) == 1 |
|
subplot_geometry = list(axes[0].get_subplotspec().get_geometry()[:-1]) |
|
subplot_geometry[-1] += 1 |
|
assert subplot_geometry == [2, 1, 2] |
|
|
|
def test_colorbar_layout(self): |
|
fig = plt.figure() |
|
|
|
axes = fig.subplot_mosaic( |
|
""" |
|
AB |
|
CC |
|
""" |
|
) |
|
|
|
x = [1, 2, 3] |
|
y = [1, 2, 3] |
|
|
|
cs0 = axes["A"].scatter(x, y) |
|
axes["B"].scatter(x, y) |
|
|
|
fig.colorbar(cs0, ax=[axes["A"], axes["B"]], location="right") |
|
DataFrame(x).plot(ax=axes["C"]) |
|
|