def test_general_plot(): """ Test general plot -- whether Hist can be plotted properly. """ h = Hist( axis.Regular( 50, -5, 5, name="A", label="a [units]", underflow=False, overflow=False ), ).fill(np.random.normal(size=10)) assert h.plot(color="green", ls="--", lw=3) h = Hist( axis.Regular( 50, -5, 5, name="A", label="a [units]", underflow=False, overflow=False ), axis.Regular( 50, -4, 4, name="B", label="b [units]", underflow=False, overflow=False ), ).fill(np.random.normal(size=10), np.random.normal(size=10)) assert h.plot(cmap="cividis") # dimension error h = Hist( axis.Regular( 50, -5, 5, name="A", label="a [units]", underflow=False, overflow=False ), axis.Regular( 50, -4, 4, name="B", label="b [units]", underflow=False, overflow=False ), axis.Regular( 50, -4, 4, name="C", label="c [units]", underflow=False, overflow=False ), ).fill( np.random.normal(size=10), np.random.normal(size=10), np.random.normal(size=10) ) with pytest.raises(Exception): h.plot() # wrong kwargs names with pytest.raises(Exception): h.project("A").plot(abc="red") with pytest.raises(Exception): h.project("A", "C").plot(abc="red") # wrong kwargs type with pytest.raises(Exception): h.project("B").plot(ls="red") with pytest.raises(Exception): h.project("A", "C").plot(cmap=0.1) plt.close("all")
def test_plot1d_auto_handling(): """ Test plot() by comparing against a reference image generated via `pytest --mpl-generate-path=tests/baseline` """ np.random.seed(42) h = Hist( axis.Regular(10, 0, 10, name="variable", label="variable"), axis.StrCategory("", name="dataset", growth=True), ) h_nameless = Hist( axis.Regular(10, 0, 10), axis.StrCategory("", growth=True), ) h.fill(dataset="A", variable=np.random.normal(3, 2, 100)) h.fill(dataset="B", variable=np.random.normal(5, 2, 100)) h.fill(dataset="C", variable=np.random.normal(7, 2, 100)) h_nameless.fill(np.random.normal(3, 2, 1000), "A") h_nameless.fill(np.random.normal(5, 2, 1000), "B") h_nameless.fill(np.random.normal(7, 2, 1000), "C") fig, (ax1, ax2) = plt.subplots(2, 2, figsize=(14, 10)) assert h.plot(ax=ax1[0]) assert h_nameless.plot(ax=ax2[0]) # Discrete axis plotting not yet implemented # assert h.plot(ax=ax1[1], overlay='variable') # assert h.plot(ax=ax2[1], overlay=1) return fig